diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index aad28a2d8..b4bd59b43 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: elixir:1.8.1 +image: elixir:1.9.4 variables: &global_variables POSTGRES_DB: pleroma_test @@ -170,8 +170,7 @@ stop_review_app: amd64: stage: release - # TODO: Replace with upstream image when 1.9.0 comes out - image: rinpatch/elixir:1.9.0-rc.0 + image: elixir:1.10.3 only: &release-only - stable@pleroma/pleroma - develop@pleroma/pleroma @@ -208,8 +207,7 @@ amd64-musl: stage: release artifacts: *release-artifacts only: *release-only - # TODO: Replace with upstream image when 1.9.0 comes out - image: rinpatch/elixir:1.9.0-rc.0-alpine + image: elixir:1.10.3-alpine cache: *release-cache variables: *release-variables before_script: &before-release-musl @@ -225,8 +223,7 @@ arm: only: *release-only tags: - arm32 - # TODO: Replace with upstream image when 1.9.0 comes out - image: rinpatch/elixir:1.9.0-rc.0-arm + image: elixir:1.10.3 cache: *release-cache variables: *release-variables before_script: *before-release @@ -238,8 +235,7 @@ arm-musl: only: *release-only tags: - arm32 - # TODO: Replace with upstream image when 1.9.0 comes out - image: rinpatch/elixir:1.9.0-rc.0-arm-alpine + image: elixir:1.10.3-alpine cache: *release-cache variables: *release-variables before_script: *before-release-musl @@ -251,8 +247,7 @@ arm64: only: *release-only tags: - arm - # TODO: Replace with upstream image when 1.9.0 comes out - image: rinpatch/elixir:1.9.0-rc.0-arm64 + image: elixir:1.10.3 cache: *release-cache variables: *release-variables before_script: *before-release @@ -265,7 +260,7 @@ arm64-musl: tags: - arm # TODO: Replace with upstream image when 1.9.0 comes out - image: rinpatch/elixir:1.9.0-rc.0-arm64-alpine + image: elixir:1.10.3-alpine cache: *release-cache variables: *release-variables before_script: *before-release-musl diff --git a/CHANGELOG.md b/CHANGELOG.md index feda41320..5b6928dcd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,32 +6,60 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [unreleased] ### Changed +- **Breaking:** Elixir >=1.9 is now required (was >= 1.8) +- In Conversations, return only direct messages as `last_status` +- Using the `only_media` filter on timelines will now exclude reblog media +- MFR policy to set global expiration for all local Create activities +- OGP rich media parser merged with TwitterCard +- Configuration: `:instance, rewrite_policy` moved to `:mrf, policies`, `:instance, :mrf_transparency` moved to `:mrf, :transparency`, `:instance, :mrf_transparency_exclusions` moved to `:mrf, :transparency_exclusions`. Old config namespace is deprecated. +
API Changes + - **Breaking:** Emoji API: changed methods and renamed routes.
+
+ Admin API Changes + +- Status visibility stats: now can return stats per instance. + +- Mix task to refresh counter cache (`mix pleroma.refresh_counter_cache`) +
+ ### Removed - **Breaking:** removed `with_move` parameter from notifications timeline. ### Added + +- Chats: Added support for federated chats. For details, see the docs. +- ActivityPub: Added support for existing AP ids for instances migrated from Mastodon. +- Instance: Add `background_image` to configuration and `/api/v1/instance` - Instance: Extend `/api/v1/instance` with Pleroma-specific information. - NodeInfo: `pleroma:api/v1/notifications:include_types_filter` to the `features` list. - NodeInfo: `pleroma_emoji_reactions` to the `features` list. - Configuration: `:restrict_unauthenticated` setting, restrict access for unauthenticated users to timelines (public and federate), user profiles and statuses. - Configuration: Add `:database_config_whitelist` setting to whitelist settings which can be configured from AdminFE. +- Configuration: `filename_display_max_length` option to set filename truncate limit, if filename display enabled (0 = no limit). - New HTTP adapter [gun](https://github.com/ninenines/gun). Gun adapter requires minimum OTP version of 22.2 otherwise Pleroma won’t start. For hackney OTP update is not required. - Mix task to create trusted OAuth App. +- Mix task to reset MFA for user accounts - Notifications: Added `follow_request` notification type. - Added `:reject_deletes` group to SimplePolicy +- MRF (`EmojiStealPolicy`): New MRF Policy which allows to automatically download emojis from remote instances +- Support pagination in emoji packs API (for packs and for files in pack) +
API Changes +- Mastodon API: Add pleroma.parents_visible field to statuses. - Mastodon API: Extended `/api/v1/instance`. - Mastodon API: Support for `include_types` in `/api/v1/notifications`. - Mastodon API: Added `/api/v1/notifications/:id/dismiss` endpoint. - Mastodon API: Add support for filtering replies in public and home timelines +- Mastodon API: Support for `bot` field in `/api/v1/accounts/update_credentials` - Admin API: endpoints for create/update/delete OAuth Apps. - Admin API: endpoint for status view. +- OTP: Add command to reload emoji packs
### Fixed @@ -40,12 +68,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Fix follower/blocks import when nicknames starts with @ - Filtering of push notifications on activities from blocked domains - Resolving Peertube accounts with Webfinger +- `blob:` urls not being allowed by connect-src CSP +- Mastodon API: fix `GET /api/v1/notifications` not returning the full result set ## [Unreleased (patch)] ### Fixed - Healthcheck reporting the number of memory currently used, rather than allocated in total -- `InsertSkeletonsForDeletedUsers` failing on some instances +- `InsertSkeletonsForDeletedUsers` failing on some instances ## [2.0.3] - 2020-05-02 @@ -78,6 +108,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). 2. Run database migrations (inside Pleroma directory): - OTP: `./bin/pleroma_ctl migrate` - From Source: `mix ecto.migrate` +3. Reset status visibility counters (inside Pleroma directory): + - OTP: `./bin/pleroma_ctl refresh_counter_cache` + - From Source: `mix pleroma.refresh_counter_cache` ## [2.0.2] - 2020-04-08 diff --git a/README.md b/README.md index 7fc1fd381..6ca3118fb 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,16 @@ Currently Pleroma is not packaged by any OS/Distros, but if you want to package ### Docker While we don’t provide docker files, other people have written very good ones. Take a look at or . +### Compilation Troubleshooting +If you ever encounter compilation issues during the updating of Pleroma, you can try these commands and see if they fix things: + +- `mix deps.clean --all` +- `mix local.rebar` +- `mix local.hex` +- `rm -r _build` + +If you are not developing Pleroma, it is better to use the OTP release, which comes with everything precompiled. + ## Documentation - Latest Released revision: - Latest Git revision: diff --git a/benchmarks/load_testing/activities.ex b/benchmarks/load_testing/activities.ex index 482e42fc1..074ded457 100644 --- a/benchmarks/load_testing/activities.ex +++ b/benchmarks/load_testing/activities.ex @@ -22,8 +22,21 @@ defmodule Pleroma.LoadTesting.Activities do @max_concurrency 10 @visibility ~w(public private direct unlisted) - @types ~w(simple emoji mentions hell_thread attachment tag like reblog simple_thread remote) - @groups ~w(user friends non_friends) + @types [ + :simple, + :emoji, + :mentions, + :hell_thread, + :attachment, + :tag, + :like, + :reblog, + :simple_thread + ] + @groups [:friends_local, :friends_remote, :non_friends_local, :non_friends_local] + @remote_groups [:friends_remote, :non_friends_remote] + @friends_groups [:friends_local, :friends_remote] + @non_friends_groups [:non_friends_local, :non_friends_remote] @spec generate(User.t(), keyword()) :: :ok def generate(user, opts \\ []) do @@ -34,33 +47,24 @@ def generate(user, opts \\ []) do opts = Keyword.merge(@defaults, opts) - friends = - user - |> Users.get_users(limit: opts[:friends_used], local: :local, friends?: true) - |> Enum.shuffle() + users = Users.prepare_users(user, opts) - non_friends = - user - |> Users.get_users(limit: opts[:non_friends_used], local: :local, friends?: false) - |> Enum.shuffle() + {:ok, _} = Agent.start_link(fn -> users[:non_friends_remote] end, name: :non_friends_remote) task_data = for visibility <- @visibility, type <- @types, - group <- @groups, + group <- [:user | @groups], do: {visibility, type, group} IO.puts("Starting generating #{opts[:iterations]} iterations of activities...") - friends_thread = Enum.take(friends, 5) - non_friends_thread = Enum.take(friends, 5) - public_long_thread = fn -> - generate_long_thread("public", user, friends_thread, non_friends_thread, opts) + generate_long_thread("public", users, opts) end private_long_thread = fn -> - generate_long_thread("private", user, friends_thread, non_friends_thread, opts) + generate_long_thread("private", users, opts) end iterations = opts[:iterations] @@ -73,10 +77,10 @@ def generate(user, opts \\ []) do i when i == iterations - 2 -> spawn(public_long_thread) spawn(private_long_thread) - generate_activities(user, friends, non_friends, Enum.shuffle(task_data), opts) + generate_activities(users, Enum.shuffle(task_data), opts) _ -> - generate_activities(user, friends, non_friends, Enum.shuffle(task_data), opts) + generate_activities(users, Enum.shuffle(task_data), opts) end ) end) @@ -123,22 +127,22 @@ def generate_tagged_activities(opts \\ []) do Enum.each(1..activity_count, fn _ -> random = :rand.uniform() i = Enum.find_index(intervals, fn {lower, upper} -> lower <= random && upper > random end) - CommonAPI.post(Enum.random(users), %{"status" => "a post with the tag #tag_#{i}"}) + CommonAPI.post(Enum.random(users), %{status: "a post with the tag #tag_#{i}"}) end) end - defp generate_long_thread(visibility, user, friends, non_friends, _opts) do + defp generate_long_thread(visibility, users, _opts) do group = if visibility == "public", - do: "friends", - else: "user" + do: :friends_local, + else: :user tasks = get_reply_tasks(visibility, group) |> Stream.cycle() |> Enum.take(50) {:ok, activity} = - CommonAPI.post(user, %{ - "status" => "Start of #{visibility} long thread", - "visibility" => visibility + CommonAPI.post(users[:user], %{ + status: "Start of #{visibility} long thread", + visibility: visibility }) Agent.update(:benchmark_state, fn state -> @@ -150,31 +154,28 @@ defp generate_long_thread(visibility, user, friends, non_friends, _opts) do Map.put(state, key, activity) end) - acc = {activity.id, ["@" <> user.nickname, "reply to long thread"]} - insert_replies_for_long_thread(tasks, visibility, user, friends, non_friends, acc) + acc = {activity.id, ["@" <> users[:user].nickname, "reply to long thread"]} + insert_replies_for_long_thread(tasks, visibility, users, acc) IO.puts("Generating #{visibility} long thread ended\n") end - defp insert_replies_for_long_thread(tasks, visibility, user, friends, non_friends, acc) do + defp insert_replies_for_long_thread(tasks, visibility, users, acc) do Enum.reduce(tasks, acc, fn - "friend", {id, data} -> - friend = Enum.random(friends) - insert_reply(friend, List.delete(data, "@" <> friend.nickname), id, visibility) - - "non_friend", {id, data} -> - non_friend = Enum.random(non_friends) - insert_reply(non_friend, List.delete(data, "@" <> non_friend.nickname), id, visibility) - - "user", {id, data} -> + :user, {id, data} -> + user = users[:user] insert_reply(user, List.delete(data, "@" <> user.nickname), id, visibility) + + group, {id, data} -> + replier = Enum.random(users[group]) + insert_reply(replier, List.delete(data, "@" <> replier.nickname), id, visibility) end) end - defp generate_activities(user, friends, non_friends, task_data, opts) do + defp generate_activities(users, task_data, opts) do Task.async_stream( task_data, fn {visibility, type, group} -> - insert_activity(type, visibility, group, user, friends, non_friends, opts) + insert_activity(type, visibility, group, users, opts) end, max_concurrency: @max_concurrency, timeout: 30_000 @@ -182,67 +183,104 @@ defp generate_activities(user, friends, non_friends, task_data, opts) do |> Stream.run() end - defp insert_activity("simple", visibility, group, user, friends, non_friends, _opts) do - {:ok, _activity} = + defp insert_local_activity(visibility, group, users, status) do + {:ok, _} = group - |> get_actor(user, friends, non_friends) - |> CommonAPI.post(%{"status" => "Simple status", "visibility" => visibility}) + |> get_actor(users) + |> CommonAPI.post(%{status: status, visibility: visibility}) end - defp insert_activity("emoji", visibility, group, user, friends, non_friends, _opts) do - {:ok, _activity} = - group - |> get_actor(user, friends, non_friends) - |> CommonAPI.post(%{ - "status" => "Simple status with emoji :firefox:", - "visibility" => visibility - }) + defp insert_remote_activity(visibility, group, users, status) do + actor = get_actor(group, users) + {act_data, obj_data} = prepare_activity_data(actor, visibility, users[:user]) + {activity_data, object_data} = other_data(actor, status) + + activity_data + |> Map.merge(act_data) + |> Map.put("object", Map.merge(object_data, obj_data)) + |> Pleroma.Web.ActivityPub.ActivityPub.insert(false) end - defp insert_activity("mentions", visibility, group, user, friends, non_friends, _opts) do + defp user_mentions(users) do user_mentions = - get_random_mentions(friends, Enum.random(0..3)) ++ - get_random_mentions(non_friends, Enum.random(0..3)) + Enum.reduce( + @groups, + [], + fn group, acc -> + acc ++ get_random_mentions(users[group], Enum.random(0..2)) + end + ) - user_mentions = - if Enum.random([true, false]), - do: ["@" <> user.nickname | user_mentions], - else: user_mentions - - {:ok, _activity} = - group - |> get_actor(user, friends, non_friends) - |> CommonAPI.post(%{ - "status" => Enum.join(user_mentions, ", ") <> " simple status with mentions", - "visibility" => visibility - }) + if Enum.random([true, false]), + do: ["@" <> users[:user].nickname | user_mentions], + else: user_mentions end - defp insert_activity("hell_thread", visibility, group, user, friends, non_friends, _opts) do - mentions = - with {:ok, nil} <- Cachex.get(:user_cache, "hell_thread_mentions") do - cached = - ([user | Enum.take(friends, 10)] ++ Enum.take(non_friends, 10)) - |> Enum.map(&"@#{&1.nickname}") - |> Enum.join(", ") + defp hell_thread_mentions(users) do + with {:ok, nil} <- Cachex.get(:user_cache, "hell_thread_mentions") do + cached = + @groups + |> Enum.reduce([users[:user]], fn group, acc -> + acc ++ Enum.take(users[group], 5) + end) + |> Enum.map(&"@#{&1.nickname}") + |> Enum.join(", ") - Cachex.put(:user_cache, "hell_thread_mentions", cached) - cached - else - {:ok, cached} -> cached - end - - {:ok, _activity} = - group - |> get_actor(user, friends, non_friends) - |> CommonAPI.post(%{ - "status" => mentions <> " hell thread status", - "visibility" => visibility - }) + Cachex.put(:user_cache, "hell_thread_mentions", cached) + cached + else + {:ok, cached} -> cached + end end - defp insert_activity("attachment", visibility, group, user, friends, non_friends, _opts) do - actor = get_actor(group, user, friends, non_friends) + defp insert_activity(:simple, visibility, group, users, _opts) + when group in @remote_groups do + insert_remote_activity(visibility, group, users, "Remote status") + end + + defp insert_activity(:simple, visibility, group, users, _opts) do + insert_local_activity(visibility, group, users, "Simple status") + end + + defp insert_activity(:emoji, visibility, group, users, _opts) + when group in @remote_groups do + insert_remote_activity(visibility, group, users, "Remote status with emoji :firefox:") + end + + defp insert_activity(:emoji, visibility, group, users, _opts) do + insert_local_activity(visibility, group, users, "Simple status with emoji :firefox:") + end + + defp insert_activity(:mentions, visibility, group, users, _opts) + when group in @remote_groups do + mentions = user_mentions(users) + + status = Enum.join(mentions, ", ") <> " remote status with mentions" + + insert_remote_activity(visibility, group, users, status) + end + + defp insert_activity(:mentions, visibility, group, users, _opts) do + mentions = user_mentions(users) + + status = Enum.join(mentions, ", ") <> " simple status with mentions" + insert_remote_activity(visibility, group, users, status) + end + + defp insert_activity(:hell_thread, visibility, group, users, _) + when group in @remote_groups do + mentions = hell_thread_mentions(users) + insert_remote_activity(visibility, group, users, mentions <> " remote hell thread status") + end + + defp insert_activity(:hell_thread, visibility, group, users, _opts) do + mentions = hell_thread_mentions(users) + + insert_local_activity(visibility, group, users, mentions <> " hell thread status") + end + + defp insert_activity(:attachment, visibility, group, users, _opts) do + actor = get_actor(group, users) obj_data = %{ "actor" => actor.ap_id, @@ -262,118 +300,94 @@ defp insert_activity("attachment", visibility, group, user, friends, non_friends {:ok, _activity} = CommonAPI.post(actor, %{ - "status" => "Post with attachment", - "visibility" => visibility, - "media_ids" => [object.id] + status: "Post with attachment", + visibility: visibility, + media_ids: [object.id] }) end - defp insert_activity("tag", visibility, group, user, friends, non_friends, _opts) do - {:ok, _activity} = - group - |> get_actor(user, friends, non_friends) - |> CommonAPI.post(%{"status" => "Status with #tag", "visibility" => visibility}) + defp insert_activity(:tag, visibility, group, users, _opts) do + insert_local_activity(visibility, group, users, "Status with #tag") end - defp insert_activity("like", visibility, group, user, friends, non_friends, opts) do - actor = get_actor(group, user, friends, non_friends) + defp insert_activity(:like, visibility, group, users, opts) do + actor = get_actor(group, users) with activity_id when not is_nil(activity_id) <- get_random_create_activity_id(), {:ok, _activity} <- CommonAPI.favorite(actor, activity_id) do :ok else {:error, _} -> - insert_activity("like", visibility, group, user, friends, non_friends, opts) + insert_activity(:like, visibility, group, users, opts) nil -> Process.sleep(15) - insert_activity("like", visibility, group, user, friends, non_friends, opts) + insert_activity(:like, visibility, group, users, opts) end end - defp insert_activity("reblog", visibility, group, user, friends, non_friends, opts) do - actor = get_actor(group, user, friends, non_friends) + defp insert_activity(:reblog, visibility, group, users, opts) do + actor = get_actor(group, users) with activity_id when not is_nil(activity_id) <- get_random_create_activity_id(), - {:ok, _activity, _object} <- CommonAPI.repeat(activity_id, actor) do + {:ok, _activity} <- CommonAPI.repeat(activity_id, actor) do :ok else {:error, _} -> - insert_activity("reblog", visibility, group, user, friends, non_friends, opts) + insert_activity(:reblog, visibility, group, users, opts) nil -> Process.sleep(15) - insert_activity("reblog", visibility, group, user, friends, non_friends, opts) + insert_activity(:reblog, visibility, group, users, opts) end end - defp insert_activity("simple_thread", visibility, group, user, friends, non_friends, _opts) - when visibility in ["public", "unlisted", "private"] do - actor = get_actor(group, user, friends, non_friends) - tasks = get_reply_tasks(visibility, group) - - {:ok, activity} = - CommonAPI.post(user, %{"status" => "Simple status", "visibility" => visibility}) - - acc = {activity.id, ["@" <> actor.nickname, "reply to status"]} - insert_replies(tasks, visibility, user, friends, non_friends, acc) - end - - defp insert_activity("simple_thread", "direct", group, user, friends, non_friends, _opts) do - actor = get_actor(group, user, friends, non_friends) + defp insert_activity(:simple_thread, "direct", group, users, _opts) do + actor = get_actor(group, users) tasks = get_reply_tasks("direct", group) list = case group do - "non_friends" -> - Enum.take(non_friends, 3) + :user -> + group = Enum.random(@friends_groups) + Enum.take(users[group], 3) _ -> - Enum.take(friends, 3) + Enum.take(users[group], 3) end data = Enum.map(list, &("@" <> &1.nickname)) {:ok, activity} = CommonAPI.post(actor, %{ - "status" => Enum.join(data, ", ") <> "simple status", - "visibility" => "direct" + status: Enum.join(data, ", ") <> "simple status", + visibility: "direct" }) - acc = {activity.id, ["@" <> user.nickname | data] ++ ["reply to status"]} - insert_direct_replies(tasks, user, list, acc) + acc = {activity.id, ["@" <> users[:user].nickname | data] ++ ["reply to status"]} + insert_direct_replies(tasks, users[:user], list, acc) end - defp insert_activity("remote", _, "user", _, _, _, _), do: :ok + defp insert_activity(:simple_thread, visibility, group, users, _opts) do + actor = get_actor(group, users) + tasks = get_reply_tasks(visibility, group) - defp insert_activity("remote", visibility, group, user, _friends, _non_friends, opts) do - remote_friends = - Users.get_users(user, limit: opts[:friends_used], local: :external, friends?: true) + {:ok, activity} = + CommonAPI.post(users[:user], %{status: "Simple status", visibility: visibility}) - remote_non_friends = - Users.get_users(user, limit: opts[:non_friends_used], local: :external, friends?: false) - - actor = get_actor(group, user, remote_friends, remote_non_friends) - - {act_data, obj_data} = prepare_activity_data(actor, visibility, user) - {activity_data, object_data} = other_data(actor) - - activity_data - |> Map.merge(act_data) - |> Map.put("object", Map.merge(object_data, obj_data)) - |> Pleroma.Web.ActivityPub.ActivityPub.insert(false) + acc = {activity.id, ["@" <> actor.nickname, "reply to status"]} + insert_replies(tasks, visibility, users, acc) end - defp get_actor("user", user, _friends, _non_friends), do: user - defp get_actor("friends", _user, friends, _non_friends), do: Enum.random(friends) - defp get_actor("non_friends", _user, _friends, non_friends), do: Enum.random(non_friends) + defp get_actor(:user, %{user: user}), do: user + defp get_actor(group, users), do: Enum.random(users[group]) - defp other_data(actor) do + defp other_data(actor, content) do %{host: host} = URI.parse(actor.ap_id) datetime = DateTime.utc_now() - context_id = "http://#{host}:4000/contexts/#{UUID.generate()}" - activity_id = "http://#{host}:4000/activities/#{UUID.generate()}" - object_id = "http://#{host}:4000/objects/#{UUID.generate()}" + context_id = "https://#{host}/contexts/#{UUID.generate()}" + activity_id = "https://#{host}/activities/#{UUID.generate()}" + object_id = "https://#{host}/objects/#{UUID.generate()}" activity_data = %{ "actor" => actor.ap_id, @@ -390,7 +404,7 @@ defp other_data(actor) do "attributedTo" => actor.ap_id, "bcc" => [], "bto" => [], - "content" => "Remote post", + "content" => content, "context" => context_id, "conversation" => context_id, "emoji" => %{}, @@ -476,60 +490,74 @@ defp prepare_activity_data(_actor, "direct", mention) do {act_data, obj_data} end - defp get_reply_tasks("public", "user"), do: ~w(friend non_friend user) - defp get_reply_tasks("public", "friends"), do: ~w(non_friend user friend) - defp get_reply_tasks("public", "non_friends"), do: ~w(user friend non_friend) + defp get_reply_tasks("public", :user) do + [:friends_local, :friends_remote, :non_friends_local, :non_friends_remote, :user] + end - defp get_reply_tasks(visibility, "user") when visibility in ["unlisted", "private"], - do: ~w(friend user friend) + defp get_reply_tasks("public", group) when group in @friends_groups do + [:non_friends_local, :non_friends_remote, :user, :friends_local, :friends_remote] + end - defp get_reply_tasks(visibility, "friends") when visibility in ["unlisted", "private"], - do: ~w(user friend user) + defp get_reply_tasks("public", group) when group in @non_friends_groups do + [:user, :friends_local, :friends_remote, :non_friends_local, :non_friends_remote] + end - defp get_reply_tasks(visibility, "non_friends") when visibility in ["unlisted", "private"], - do: [] + defp get_reply_tasks(visibility, :user) when visibility in ["unlisted", "private"] do + [:friends_local, :friends_remote, :user, :friends_local, :friends_remote] + end - defp get_reply_tasks("direct", "user"), do: ~w(friend user friend) - defp get_reply_tasks("direct", "friends"), do: ~w(user friend user) - defp get_reply_tasks("direct", "non_friends"), do: ~w(user non_friend user) + defp get_reply_tasks(visibility, group) + when visibility in ["unlisted", "private"] and group in @friends_groups do + [:user, :friends_remote, :friends_local, :user] + end - defp insert_replies(tasks, visibility, user, friends, non_friends, acc) do + defp get_reply_tasks(visibility, group) + when visibility in ["unlisted", "private"] and + group in @non_friends_groups, + do: [] + + defp get_reply_tasks("direct", :user), do: [:friends_local, :user, :friends_remote] + + defp get_reply_tasks("direct", group) when group in @friends_groups, + do: [:user, group, :user] + + defp get_reply_tasks("direct", group) when group in @non_friends_groups do + [:user, :non_friends_remote, :user, :non_friends_local] + end + + defp insert_replies(tasks, visibility, users, acc) do Enum.reduce(tasks, acc, fn - "friend", {id, data} -> - friend = Enum.random(friends) - insert_reply(friend, data, id, visibility) + :user, {id, data} -> + insert_reply(users[:user], data, id, visibility) - "non_friend", {id, data} -> - non_friend = Enum.random(non_friends) - insert_reply(non_friend, data, id, visibility) - - "user", {id, data} -> - insert_reply(user, data, id, visibility) + group, {id, data} -> + replier = Enum.random(users[group]) + insert_reply(replier, data, id, visibility) end) end defp insert_direct_replies(tasks, user, list, acc) do Enum.reduce(tasks, acc, fn - group, {id, data} when group in ["friend", "non_friend"] -> + :user, {id, data} -> + {reply_id, _} = insert_reply(user, List.delete(data, "@" <> user.nickname), id, "direct") + {reply_id, data} + + _, {id, data} -> actor = Enum.random(list) {reply_id, _} = insert_reply(actor, List.delete(data, "@" <> actor.nickname), id, "direct") {reply_id, data} - - "user", {id, data} -> - {reply_id, _} = insert_reply(user, List.delete(data, "@" <> user.nickname), id, "direct") - {reply_id, data} end) end defp insert_reply(actor, data, activity_id, visibility) do {:ok, reply} = CommonAPI.post(actor, %{ - "status" => Enum.join(data, ", "), - "visibility" => visibility, - "in_reply_to_status_id" => activity_id + status: Enum.join(data, ", "), + visibility: visibility, + in_reply_to_status_id: activity_id }) {reply.id, ["@" <> actor.nickname | data]} diff --git a/benchmarks/load_testing/fetcher.ex b/benchmarks/load_testing/fetcher.ex index 12c30f6f5..15fd06c3d 100644 --- a/benchmarks/load_testing/fetcher.ex +++ b/benchmarks/load_testing/fetcher.ex @@ -36,6 +36,7 @@ defp fetch_timelines(user) do fetch_home_timeline(user) fetch_direct_timeline(user) fetch_public_timeline(user) + fetch_public_timeline(user, :with_blocks) fetch_public_timeline(user, :local) fetch_public_timeline(user, :tag) fetch_notifications(user) @@ -51,12 +52,12 @@ defp render_views(user) do defp opts_for_home_timeline(user) do %{ - "blocking_user" => user, - "count" => "20", - "muting_user" => user, - "type" => ["Create", "Announce"], - "user" => user, - "with_muted" => "true" + blocking_user: user, + count: "20", + muting_user: user, + type: ["Create", "Announce"], + user: user, + with_muted: true } end @@ -69,17 +70,17 @@ defp fetch_home_timeline(user) do ActivityPub.fetch_activities(recipients, opts) |> Enum.reverse() |> List.last() second_page_last = - ActivityPub.fetch_activities(recipients, Map.put(opts, "max_id", first_page_last.id)) + ActivityPub.fetch_activities(recipients, Map.put(opts, :max_id, first_page_last.id)) |> Enum.reverse() |> List.last() third_page_last = - ActivityPub.fetch_activities(recipients, Map.put(opts, "max_id", second_page_last.id)) + ActivityPub.fetch_activities(recipients, Map.put(opts, :max_id, second_page_last.id)) |> Enum.reverse() |> List.last() forth_page_last = - ActivityPub.fetch_activities(recipients, Map.put(opts, "max_id", third_page_last.id)) + ActivityPub.fetch_activities(recipients, Map.put(opts, :max_id, third_page_last.id)) |> Enum.reverse() |> List.last() @@ -89,19 +90,19 @@ defp fetch_home_timeline(user) do }, inputs: %{ "1 page" => opts, - "2 page" => Map.put(opts, "max_id", first_page_last.id), - "3 page" => Map.put(opts, "max_id", second_page_last.id), - "4 page" => Map.put(opts, "max_id", third_page_last.id), - "5 page" => Map.put(opts, "max_id", forth_page_last.id), - "1 page only media" => Map.put(opts, "only_media", "true"), + "2 page" => Map.put(opts, :max_id, first_page_last.id), + "3 page" => Map.put(opts, :max_id, second_page_last.id), + "4 page" => Map.put(opts, :max_id, third_page_last.id), + "5 page" => Map.put(opts, :max_id, forth_page_last.id), + "1 page only media" => Map.put(opts, :only_media, true), "2 page only media" => - Map.put(opts, "max_id", first_page_last.id) |> Map.put("only_media", "true"), + Map.put(opts, :max_id, first_page_last.id) |> Map.put(:only_media, true), "3 page only media" => - Map.put(opts, "max_id", second_page_last.id) |> Map.put("only_media", "true"), + Map.put(opts, :max_id, second_page_last.id) |> Map.put(:only_media, true), "4 page only media" => - Map.put(opts, "max_id", third_page_last.id) |> Map.put("only_media", "true"), + Map.put(opts, :max_id, third_page_last.id) |> Map.put(:only_media, true), "5 page only media" => - Map.put(opts, "max_id", forth_page_last.id) |> Map.put("only_media", "true") + Map.put(opts, :max_id, forth_page_last.id) |> Map.put(:only_media, true) }, formatters: formatters() ) @@ -109,12 +110,12 @@ defp fetch_home_timeline(user) do defp opts_for_direct_timeline(user) do %{ - :visibility => "direct", - "blocking_user" => user, - "count" => "20", - "type" => "Create", - "user" => user, - "with_muted" => "true" + visibility: "direct", + blocking_user: user, + count: "20", + type: "Create", + user: user, + with_muted: true } end @@ -129,7 +130,7 @@ defp fetch_direct_timeline(user) do |> Pagination.fetch_paginated(opts) |> List.last() - opts2 = Map.put(opts, "max_id", first_page_last.id) + opts2 = Map.put(opts, :max_id, first_page_last.id) second_page_last = recipients @@ -137,7 +138,7 @@ defp fetch_direct_timeline(user) do |> Pagination.fetch_paginated(opts2) |> List.last() - opts3 = Map.put(opts, "max_id", second_page_last.id) + opts3 = Map.put(opts, :max_id, second_page_last.id) third_page_last = recipients @@ -145,7 +146,7 @@ defp fetch_direct_timeline(user) do |> Pagination.fetch_paginated(opts3) |> List.last() - opts4 = Map.put(opts, "max_id", third_page_last.id) + opts4 = Map.put(opts, :max_id, third_page_last.id) forth_page_last = recipients @@ -164,7 +165,7 @@ defp fetch_direct_timeline(user) do "2 page" => opts2, "3 page" => opts3, "4 page" => opts4, - "5 page" => Map.put(opts4, "max_id", forth_page_last.id) + "5 page" => Map.put(opts4, :max_id, forth_page_last.id) }, formatters: formatters() ) @@ -172,34 +173,34 @@ defp fetch_direct_timeline(user) do defp opts_for_public_timeline(user) do %{ - "type" => ["Create", "Announce"], - "local_only" => false, - "blocking_user" => user, - "muting_user" => user + type: ["Create", "Announce"], + local_only: false, + blocking_user: user, + muting_user: user } end defp opts_for_public_timeline(user, :local) do %{ - "type" => ["Create", "Announce"], - "local_only" => true, - "blocking_user" => user, - "muting_user" => user + type: ["Create", "Announce"], + local_only: true, + blocking_user: user, + muting_user: user } end defp opts_for_public_timeline(user, :tag) do %{ - "blocking_user" => user, - "count" => "20", - "local_only" => nil, - "muting_user" => user, - "tag" => ["tag"], - "tag_all" => [], - "tag_reject" => [], - "type" => "Create", - "user" => user, - "with_muted" => "true" + blocking_user: user, + count: "20", + local_only: nil, + muting_user: user, + tag: ["tag"], + tag_all: [], + tag_reject: [], + type: "Create", + user: user, + with_muted: true } end @@ -222,24 +223,72 @@ defp fetch_public_timeline(user, :tag) do end defp fetch_public_timeline(user, :only_media) do - opts = opts_for_public_timeline(user) |> Map.put("only_media", "true") + opts = opts_for_public_timeline(user) |> Map.put(:only_media, true) fetch_public_timeline(opts, "public timeline only media") end + defp fetch_public_timeline(user, :with_blocks) do + opts = opts_for_public_timeline(user) + + remote_non_friends = Agent.get(:non_friends_remote, & &1) + + Benchee.run(%{ + "public timeline without blocks" => fn -> + ActivityPub.fetch_public_activities(opts) + end + }) + + Enum.each(remote_non_friends, fn non_friend -> + {:ok, _} = User.block(user, non_friend) + end) + + user = User.get_by_id(user.id) + + opts = Map.put(opts, :blocking_user, user) + + Benchee.run(%{ + "public timeline with user block" => fn -> + ActivityPub.fetch_public_activities(opts) + end + }) + + domains = + Enum.reduce(remote_non_friends, [], fn non_friend, domains -> + {:ok, _user} = User.unblock(user, non_friend) + %{host: host} = URI.parse(non_friend.ap_id) + [host | domains] + end) + + domains = Enum.uniq(domains) + + Enum.each(domains, fn domain -> + {:ok, _} = User.block_domain(user, domain) + end) + + user = User.get_by_id(user.id) + opts = Map.put(opts, :blocking_user, user) + + Benchee.run(%{ + "public timeline with domain block" => fn -> + ActivityPub.fetch_public_activities(opts) + end + }) + end + defp fetch_public_timeline(opts, title) when is_binary(title) do first_page_last = ActivityPub.fetch_public_activities(opts) |> List.last() second_page_last = - ActivityPub.fetch_public_activities(Map.put(opts, "max_id", first_page_last.id)) + ActivityPub.fetch_public_activities(Map.put(opts, :max_id, first_page_last.id)) |> List.last() third_page_last = - ActivityPub.fetch_public_activities(Map.put(opts, "max_id", second_page_last.id)) + ActivityPub.fetch_public_activities(Map.put(opts, :max_id, second_page_last.id)) |> List.last() forth_page_last = - ActivityPub.fetch_public_activities(Map.put(opts, "max_id", third_page_last.id)) + ActivityPub.fetch_public_activities(Map.put(opts, :max_id, third_page_last.id)) |> List.last() Benchee.run( @@ -250,17 +299,17 @@ defp fetch_public_timeline(opts, title) when is_binary(title) do }, inputs: %{ "1 page" => opts, - "2 page" => Map.put(opts, "max_id", first_page_last.id), - "3 page" => Map.put(opts, "max_id", second_page_last.id), - "4 page" => Map.put(opts, "max_id", third_page_last.id), - "5 page" => Map.put(opts, "max_id", forth_page_last.id) + "2 page" => Map.put(opts, :max_id, first_page_last.id), + "3 page" => Map.put(opts, :max_id, second_page_last.id), + "4 page" => Map.put(opts, :max_id, third_page_last.id), + "5 page" => Map.put(opts, :max_id, forth_page_last.id) }, formatters: formatters() ) end defp opts_for_notifications do - %{"count" => "20", "with_muted" => "true"} + %{count: "20", with_muted: true} end defp fetch_notifications(user) do @@ -269,15 +318,15 @@ defp fetch_notifications(user) do first_page_last = MastodonAPI.get_notifications(user, opts) |> List.last() second_page_last = - MastodonAPI.get_notifications(user, Map.put(opts, "max_id", first_page_last.id)) + MastodonAPI.get_notifications(user, Map.put(opts, :max_id, first_page_last.id)) |> List.last() third_page_last = - MastodonAPI.get_notifications(user, Map.put(opts, "max_id", second_page_last.id)) + MastodonAPI.get_notifications(user, Map.put(opts, :max_id, second_page_last.id)) |> List.last() forth_page_last = - MastodonAPI.get_notifications(user, Map.put(opts, "max_id", third_page_last.id)) + MastodonAPI.get_notifications(user, Map.put(opts, :max_id, third_page_last.id)) |> List.last() Benchee.run( @@ -288,10 +337,10 @@ defp fetch_notifications(user) do }, inputs: %{ "1 page" => opts, - "2 page" => Map.put(opts, "max_id", first_page_last.id), - "3 page" => Map.put(opts, "max_id", second_page_last.id), - "4 page" => Map.put(opts, "max_id", third_page_last.id), - "5 page" => Map.put(opts, "max_id", forth_page_last.id) + "2 page" => Map.put(opts, :max_id, first_page_last.id), + "3 page" => Map.put(opts, :max_id, second_page_last.id), + "4 page" => Map.put(opts, :max_id, third_page_last.id), + "5 page" => Map.put(opts, :max_id, forth_page_last.id) }, formatters: formatters() ) @@ -301,13 +350,13 @@ defp fetch_favourites(user) do first_page_last = ActivityPub.fetch_favourites(user) |> List.last() second_page_last = - ActivityPub.fetch_favourites(user, %{"max_id" => first_page_last.id}) |> List.last() + ActivityPub.fetch_favourites(user, %{:max_id => first_page_last.id}) |> List.last() third_page_last = - ActivityPub.fetch_favourites(user, %{"max_id" => second_page_last.id}) |> List.last() + ActivityPub.fetch_favourites(user, %{:max_id => second_page_last.id}) |> List.last() forth_page_last = - ActivityPub.fetch_favourites(user, %{"max_id" => third_page_last.id}) |> List.last() + ActivityPub.fetch_favourites(user, %{:max_id => third_page_last.id}) |> List.last() Benchee.run( %{ @@ -317,10 +366,10 @@ defp fetch_favourites(user) do }, inputs: %{ "1 page" => %{}, - "2 page" => %{"max_id" => first_page_last.id}, - "3 page" => %{"max_id" => second_page_last.id}, - "4 page" => %{"max_id" => third_page_last.id}, - "5 page" => %{"max_id" => forth_page_last.id} + "2 page" => %{:max_id => first_page_last.id}, + "3 page" => %{:max_id => second_page_last.id}, + "4 page" => %{:max_id => third_page_last.id}, + "5 page" => %{:max_id => forth_page_last.id} }, formatters: formatters() ) @@ -328,8 +377,8 @@ defp fetch_favourites(user) do defp opts_for_long_thread(user) do %{ - "blocking_user" => user, - "user" => user + blocking_user: user, + user: user } end @@ -339,9 +388,9 @@ defp fetch_long_thread(user) do opts = opts_for_long_thread(user) - private_input = {private.data["context"], Map.put(opts, "exclude_id", private.id)} + private_input = {private.data["context"], Map.put(opts, :exclude_id, private.id)} - public_input = {public.data["context"], Map.put(opts, "exclude_id", public.id)} + public_input = {public.data["context"], Map.put(opts, :exclude_id, public.id)} Benchee.run( %{ @@ -387,56 +436,47 @@ defp render_timelines(user) do favourites = ActivityPub.fetch_favourites(user) - output_relationships = - !!Pleroma.Config.get([:extensions, :output_relationships_in_statuses_by_default]) - Benchee.run( %{ "Rendering home timeline" => fn -> StatusView.render("index.json", %{ activities: home_activities, for: user, - as: :activity, - skip_relationships: !output_relationships + as: :activity }) end, "Rendering direct timeline" => fn -> StatusView.render("index.json", %{ activities: direct_activities, for: user, - as: :activity, - skip_relationships: !output_relationships + as: :activity }) end, "Rendering public timeline" => fn -> StatusView.render("index.json", %{ activities: public_activities, for: user, - as: :activity, - skip_relationships: !output_relationships + as: :activity }) end, "Rendering tag timeline" => fn -> StatusView.render("index.json", %{ activities: tag_activities, for: user, - as: :activity, - skip_relationships: !output_relationships + as: :activity }) end, "Rendering notifications" => fn -> Pleroma.Web.MastodonAPI.NotificationView.render("index.json", %{ notifications: notifications, - for: user, - skip_relationships: !output_relationships + for: user }) end, "Rendering favourites timeline" => fn -> StatusView.render("index.json", %{ activities: favourites, for: user, - as: :activity, - skip_relationships: !output_relationships + as: :activity }) end }, @@ -470,13 +510,13 @@ defp render_long_thread(user) do public_context = ActivityPub.fetch_activities_for_context( public.data["context"], - Map.put(fetch_opts, "exclude_id", public.id) + Map.put(fetch_opts, :exclude_id, public.id) ) private_context = ActivityPub.fetch_activities_for_context( private.data["context"], - Map.put(fetch_opts, "exclude_id", private.id) + Map.put(fetch_opts, :exclude_id, private.id) ) Benchee.run( @@ -507,14 +547,14 @@ defp fetch_timelines_with_reply_filtering(user) do end, "Public timeline with reply filtering - following" => fn -> public_params - |> Map.put("reply_visibility", "following") - |> Map.put("reply_filtering_user", user) + |> Map.put(:reply_visibility, "following") + |> Map.put(:reply_filtering_user, user) |> ActivityPub.fetch_public_activities() end, "Public timeline with reply filtering - self" => fn -> public_params - |> Map.put("reply_visibility", "self") - |> Map.put("reply_filtering_user", user) + |> Map.put(:reply_visibility, "self") + |> Map.put(:reply_filtering_user, user) |> ActivityPub.fetch_public_activities() end }, @@ -533,16 +573,16 @@ defp fetch_timelines_with_reply_filtering(user) do "Home timeline with reply filtering - following" => fn -> private_params = private_params - |> Map.put("reply_filtering_user", user) - |> Map.put("reply_visibility", "following") + |> Map.put(:reply_filtering_user, user) + |> Map.put(:reply_visibility, "following") ActivityPub.fetch_activities(recipients, private_params) end, "Home timeline with reply filtering - self" => fn -> private_params = private_params - |> Map.put("reply_filtering_user", user) - |> Map.put("reply_visibility", "self") + |> Map.put(:reply_filtering_user, user) + |> Map.put(:reply_visibility, "self") ActivityPub.fetch_activities(recipients, private_params) end diff --git a/benchmarks/load_testing/users.ex b/benchmarks/load_testing/users.ex index e4d0b22ff..6cf3958c1 100644 --- a/benchmarks/load_testing/users.ex +++ b/benchmarks/load_testing/users.ex @@ -27,7 +27,7 @@ def generate(opts \\ []) do make_friends(main_user, opts[:friends]) - Repo.get(User, main_user.id) + User.get_by_id(main_user.id) end def generate_users(max) do @@ -166,4 +166,24 @@ defp run_stream(users, main_user) do ) |> Stream.run() end + + @spec prepare_users(User.t(), keyword()) :: map() + def prepare_users(user, opts) do + friends_limit = opts[:friends_used] + non_friends_limit = opts[:non_friends_used] + + %{ + user: user, + friends_local: fetch_users(user, friends_limit, :local, true), + friends_remote: fetch_users(user, friends_limit, :external, true), + non_friends_local: fetch_users(user, non_friends_limit, :local, false), + non_friends_remote: fetch_users(user, non_friends_limit, :external, false) + } + end + + defp fetch_users(user, limit, local, friends?) do + user + |> get_users(limit: limit, local: local, friends?: friends?) + |> Enum.shuffle() + end end diff --git a/benchmarks/mix/tasks/pleroma/benchmarks/tags.ex b/benchmarks/mix/tasks/pleroma/benchmarks/tags.ex index 657403202..c051335a5 100644 --- a/benchmarks/mix/tasks/pleroma/benchmarks/tags.ex +++ b/benchmarks/mix/tasks/pleroma/benchmarks/tags.ex @@ -5,7 +5,6 @@ defmodule Mix.Tasks.Pleroma.Benchmarks.Tags do import Ecto.Query alias Pleroma.Repo - alias Pleroma.Web.MastodonAPI.TimelineController def run(_args) do Mix.Pleroma.start_pleroma() @@ -37,7 +36,7 @@ def run(_args) do Benchee.run( %{ "Hashtag fetching, any" => fn tags -> - TimelineController.hashtag_fetching( + hashtag_fetching( %{ "any" => tags }, @@ -47,7 +46,7 @@ def run(_args) do end, # Will always return zero results because no overlapping hashtags are generated. "Hashtag fetching, all" => fn tags -> - TimelineController.hashtag_fetching( + hashtag_fetching( %{ "all" => tags }, @@ -67,7 +66,7 @@ def run(_args) do Benchee.run( %{ "Hashtag fetching" => fn tag -> - TimelineController.hashtag_fetching( + hashtag_fetching( %{ "tag" => tag }, @@ -80,4 +79,35 @@ def run(_args) do time: 5 ) end + + defp hashtag_fetching(params, user, local_only) do + tags = + [params["tag"], params["any"]] + |> List.flatten() + |> Enum.uniq() + |> Enum.filter(& &1) + |> Enum.map(&String.downcase(&1)) + + tag_all = + params + |> Map.get("all", []) + |> Enum.map(&String.downcase(&1)) + + tag_reject = + params + |> Map.get("none", []) + |> Enum.map(&String.downcase(&1)) + + _activities = + params + |> Map.put(:type, "Create") + |> Map.put(:local_only, local_only) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:user, user) + |> Map.put(:tag, tags) + |> Map.put(:tag_all, tag_all) + |> Map.put(:tag_reject, tag_reject) + |> Pleroma.Web.ActivityPub.ActivityPub.fetch_public_activities() + end end diff --git a/config/config.exs b/config/config.exs index e703c1632..9b550920c 100644 --- a/config/config.exs +++ b/config/config.exs @@ -71,7 +71,8 @@ follow_redirect: true, pool: :upload ] - ] + ], + filename_display_max_length: 30 config :pleroma, Pleroma.Uploaders.Local, uploads: "uploads" @@ -170,7 +171,8 @@ "application/ld+json" => ["activity+json"] } -config :tesla, adapter: Tesla.Adapter.Gun +config :tesla, adapter: Tesla.Adapter.Hackney + # Configures http settings, upstream proxy etc. config :pleroma, :http, proxy_url: nil, @@ -182,7 +184,9 @@ name: "Pleroma", email: "example@example.com", notify_email: "noreply@example.com", - description: "A Pleroma instance, an alternative fediverse server", + description: "Pleroma: An efficient and flexible fediverse server", + background_image: "/images/city.jpg", + instance_thumbnail: "/instance/thumbnail.jpeg", limit: 5_000, chat_limit: 5_000, remote_limit: 100_000, @@ -206,7 +210,6 @@ Pleroma.Web.ActivityPub.Publisher ], allow_relay: true, - rewrite_policy: Pleroma.Web.ActivityPub.MRF.NoOpPolicy, public: true, quarantined_instances: [], managed_config: true, @@ -217,8 +220,6 @@ "text/markdown", "text/bbcode" ], - mrf_transparency: true, - mrf_transparency_exclusions: [], autofollowed_nicknames: [], max_pinned_statuses: 1, attachment_links: false, @@ -251,8 +252,6 @@ ] ] -config :pleroma, :extensions, output_relationships_in_statuses_by_default: true - config :pleroma, :feed, post_title: %{ max_length: 100, @@ -273,20 +272,33 @@ config :pleroma, :frontend_configurations, pleroma_fe: %{ - theme: "pleroma-dark", - logo: "/static/logo.png", + alwaysShowSubjectInput: true, background: "/images/city.jpg", - redirectRootNoLogin: "/main/all", - redirectRootLogin: "/main/friends", - showInstanceSpecificPanel: true, - scopeOptionsEnabled: false, - formattingOptionsEnabled: false, collapseMessageWithSubject: false, + disableChat: false, + greentext: false, + hideFilteredStatuses: false, + hideMutedPosts: false, hidePostStats: false, + hideSitename: false, hideUserStats: false, + loginMethod: "password", + logo: "/static/logo.png", + logoMargin: ".1em", + logoMask: true, + minimalScopesMode: false, + noAttachmentLinks: false, + nsfwCensorImage: "", + postContentType: "text/plain", + redirectRootLogin: "/main/friends", + redirectRootNoLogin: "/main/all", scopeCopy: true, + sidebarRight: false, + showFeaturesPanel: true, + showInstanceSpecificPanel: false, subjectLineBehavior: "email", - alwaysShowSubjectInput: true + theme: "pleroma-dark", + webPushNotifications: false }, masto_fe: %{ showInstanceSpecificPanel: true @@ -357,6 +369,8 @@ config :pleroma, :mrf_subchain, match_actor: %{} +config :pleroma, :mrf_activity_expiration, days: 365 + config :pleroma, :mrf_vocabulary, accept: [], reject: [] @@ -371,13 +385,16 @@ ignore_tld: ["local", "localdomain", "lan"], parsers: [ Pleroma.Web.RichMedia.Parsers.TwitterCard, - Pleroma.Web.RichMedia.Parsers.OGP, Pleroma.Web.RichMedia.Parsers.OEmbed ], ttl_setters: [Pleroma.Web.RichMedia.Parser.TTL.AwsSignedUrl] config :pleroma, :media_proxy, enabled: false, + invalidation: [ + enabled: false, + provider: Pleroma.Web.MediaProxy.Invalidation.Script + ], proxy_opts: [ redirect_on_failure: false, max_body_length: 25 * 1_048_576, @@ -388,6 +405,13 @@ ], whitelist: [] +config :pleroma, Pleroma.Web.MediaProxy.Invalidation.Http, + method: :purge, + headers: [], + options: [] + +config :pleroma, Pleroma.Web.MediaProxy.Invalidation.Script, script_path: nil + config :pleroma, :chat, enabled: true config :phoenix, :format_encoders, json: Jason @@ -410,6 +434,12 @@ ], unfurl_nsfw: false +config :pleroma, Pleroma.Web.Preload, + providers: [ + Pleroma.Web.Preload.Providers.Instance, + Pleroma.Web.Preload.Providers.StatusNet + ] + config :pleroma, :http_security, enabled: true, sts: false, @@ -666,6 +696,15 @@ config :pleroma, Pleroma.Web.ApiSpec.CastAndValidate, strict: false +config :pleroma, :mrf, + policies: Pleroma.Web.ActivityPub.MRF.NoOpPolicy, + transparency: true, + transparency_exclusions: [] + +config :tzdata, :http_client, Pleroma.HTTP.Tzdata + +config :ex_aws, http_client: Pleroma.HTTP.ExAws + # Import environment specific config. This must remain at the bottom # of this file so it overrides the configuration defined above. import_config "#{Mix.env()}.exs" diff --git a/config/description.exs b/config/description.exs index a800d7823..f54ac2a2a 100644 --- a/config/description.exs +++ b/config/description.exs @@ -119,6 +119,11 @@ ] } ] + }, + %{ + key: :filename_display_max_length, + type: :integer, + description: "Set max length of a filename to display. 0 = no limit. Default: 30" } ] }, @@ -679,31 +684,11 @@ 7 ] }, - %{ - key: :federation_publisher_modules, - type: {:list, :module}, - description: - "List of modules for federation publishing. Module names are shortened (removed leading `Pleroma.Web.` part), but on adding custom module you need to use full name.", - suggestions: [ - Pleroma.Web.ActivityPub.Publisher - ] - }, %{ key: :allow_relay, type: :boolean, description: "Enable Pleroma's Relay, which makes it possible to follow a whole instance" }, - %{ - key: :rewrite_policy, - type: [:module, {:list, :module}], - description: - "A list of enabled MRF policies. Module names are shortened (removed leading `Pleroma.Web.ActivityPub.MRF.` part), but on adding custom module you need to use full name.", - suggestions: - Generator.list_modules_in_dir( - "lib/pleroma/web/activity_pub/mrf", - "Elixir.Pleroma.Web.ActivityPub.MRF." - ) - }, %{ key: :public, type: :boolean, @@ -746,23 +731,6 @@ "text/bbcode" ] }, - %{ - key: :mrf_transparency, - label: "MRF transparency", - type: :boolean, - description: - "Make the content of your Message Rewrite Facility settings public (via nodeinfo)" - }, - %{ - key: :mrf_transparency_exclusions, - label: "MRF transparency exclusions", - type: {:list, :string}, - description: - "Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value.", - suggestions: [ - "exclusion.com" - ] - }, %{ key: :extended_nickname_format, type: :boolean, @@ -978,6 +946,13 @@ ] } ] + }, + %{ + key: :instance_thumbnail, + type: :string, + description: + "The instance thumbnail can be any image that represents your instance and is used by some apps or services when they display information about your instance.", + suggestions: ["/instance/thumbnail.jpeg"] } ] }, @@ -1121,11 +1096,12 @@ logoMask: true, minimalScopesMode: false, noAttachmentLinks: false, - nsfwCensorImage: "", + nsfwCensorImage: "/static/img/nsfw.74818f9.png", postContentType: "text/plain", redirectRootLogin: "/main/friends", redirectRootNoLogin: "/main/all", scopeCopy: true, + sidebarRight: false, showFeaturesPanel: true, showInstanceSpecificPanel: false, subjectLineBehavior: "email", @@ -1234,7 +1210,7 @@ type: :string, description: "URL of the image to use for hiding NSFW media attachments in the timeline.", - suggestions: ["/static/img/nsfw.png"] + suggestions: ["/static/img/nsfw.74818f9.png"] }, %{ key: :postContentType, @@ -1265,6 +1241,12 @@ type: :boolean, description: "Copy the scope (private/unlisted/public) in replies to posts by default" }, + %{ + key: :sidebarRight, + label: "Sidebar on Right", + type: :boolean, + description: "Change alignment of sidebar and panels to the right." + }, %{ key: :showFeaturesPanel, label: "Show instance features panel", @@ -1348,6 +1330,12 @@ suggestions: [ :pleroma_fox_tan ] + }, + %{ + key: :default_user_avatar, + type: :string, + description: "URL of the default user avatar.", + suggestions: ["/images/avi.png"] } ] }, @@ -1455,6 +1443,21 @@ } ] }, + %{ + group: :pleroma, + key: :mrf_activity_expiration, + label: "MRF Activity Expiration Policy", + type: :group, + description: "Adds expiration to all local Create Note activities", + children: [ + %{ + key: :days, + type: :integer, + description: "Default global expiration time for all local Create activities (in days)", + suggestions: [90, 365] + } + ] + }, %{ group: :pleroma, key: :mrf_subchain, @@ -1592,14 +1595,12 @@ # %{ # group: :pleroma, # key: :mrf_user_allowlist, - # type: :group, + # type: :map, # description: # "The keys in this section are the domain names that the policy should apply to." <> # " Each key should be assigned a list of users that should be allowed through by their ActivityPub ID", - # children: [ - # ["example.org": ["https://example.org/users/admin"]], # suggestions: [ - # ["example.org": ["https://example.org/users/admin"]] + # %{"example.org" => ["https://example.org/users/admin"]} # ] # ] # }, @@ -1621,6 +1622,31 @@ "The base URL to access a user-uploaded file. Useful when you want to proxy the media files via another host/CDN fronts.", suggestions: ["https://example.com"] }, + %{ + key: :invalidation, + type: :keyword, + descpiption: "", + suggestions: [ + enabled: true, + provider: Pleroma.Web.MediaProxy.Invalidation.Script + ], + children: [ + %{ + key: :enabled, + type: :boolean, + description: "Enables invalidate media cache" + }, + %{ + key: :provider, + type: :module, + description: "Module which will be used to cache purge.", + suggestions: [ + Pleroma.Web.MediaProxy.Invalidation.Script, + Pleroma.Web.MediaProxy.Invalidation.Http + ] + } + ] + }, %{ key: :proxy_opts, type: :keyword, @@ -1693,6 +1719,45 @@ } ] }, + %{ + group: :pleroma, + key: Pleroma.Web.MediaProxy.Invalidation.Http, + type: :group, + description: "HTTP invalidate settings", + children: [ + %{ + key: :method, + type: :atom, + description: "HTTP method of request. Default: :purge" + }, + %{ + key: :headers, + type: {:list, :tuple}, + description: "HTTP headers of request.", + suggestions: [{"x-refresh", 1}] + }, + %{ + key: :options, + type: :keyword, + description: "Request options.", + suggestions: [params: %{ts: "xxx"}] + } + ] + }, + %{ + group: :pleroma, + key: Pleroma.Web.MediaProxy.Invalidation.Script, + type: :group, + description: "Script invalidate settings", + children: [ + %{ + key: :script_path, + type: :string, + description: "Path to shell script. Which will run purge cache.", + suggestions: ["./installation/nginx-cache-purge.sh.example"] + } + ] + }, %{ group: :pleroma, key: :gopher, @@ -1902,12 +1967,6 @@ (see https://github.com/sorentwo/oban/issues/52). """, children: [ - %{ - key: :repo, - type: :module, - description: "Application's Ecto repo", - suggestions: [Pleroma.Repo] - }, %{ key: :verbose, type: {:dropdown, :atom}, @@ -2081,9 +2140,7 @@ description: "List of Rich Media parsers. Module names are shortened (removed leading `Pleroma.Web.RichMedia.Parsers.` part), but on adding custom module you need to use full name.", suggestions: [ - Pleroma.Web.RichMedia.Parsers.MetaTagsParser, Pleroma.Web.RichMedia.Parsers.OEmbed, - Pleroma.Web.RichMedia.Parsers.OGP, Pleroma.Web.RichMedia.Parsers.TwitterCard ] }, @@ -2682,18 +2739,6 @@ } ] }, - %{ - group: :http_signatures, - type: :group, - description: "HTTP Signatures settings", - children: [ - %{ - key: :adapter, - type: :module, - suggestions: [Pleroma.Signature] - } - ] - }, %{ group: :pleroma, key: :http, @@ -3316,5 +3361,41 @@ suggestions: [false] } ] + }, + %{ + group: :pleroma, + key: :mrf, + type: :group, + description: "General MRF settings", + children: [ + %{ + key: :policies, + type: [:module, {:list, :module}], + description: + "A list of MRF policies enabled. Module names are shortened (removed leading `Pleroma.Web.ActivityPub.MRF.` part), but on adding custom module you need to use full name.", + suggestions: + Generator.list_modules_in_dir( + "lib/pleroma/web/activity_pub/mrf", + "Elixir.Pleroma.Web.ActivityPub.MRF." + ) + }, + %{ + key: :transparency, + label: "MRF transparency", + type: :boolean, + description: + "Make the content of your Message Rewrite Facility settings public (via nodeinfo)" + }, + %{ + key: :transparency_exclusions, + label: "MRF transparency exclusions", + type: {:list, :string}, + description: + "Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value.", + suggestions: [ + "exclusion.com" + ] + } + ] } ] diff --git a/docs/API/admin_api.md b/docs/API/admin_api.md index c455047cc..baf895d90 100644 --- a/docs/API/admin_api.md +++ b/docs/API/admin_api.md @@ -488,30 +488,52 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret ### Change the user's email, password, display and settings-related fields -- Params: - - `email` - - `password` - - `name` - - `bio` - - `avatar` - - `locked` - - `no_rich_text` - - `default_scope` - - `banner` - - `hide_follows` - - `hide_followers` - - `hide_followers_count` - - `hide_follows_count` - - `hide_favorites` - - `allow_following_move` - - `background` - - `show_role` - - `skip_thread_containment` - - `fields` - - `discoverable` - - `actor_type` +* Params: + * `email` + * `password` + * `name` + * `bio` + * `avatar` + * `locked` + * `no_rich_text` + * `default_scope` + * `banner` + * `hide_follows` + * `hide_followers` + * `hide_followers_count` + * `hide_follows_count` + * `hide_favorites` + * `allow_following_move` + * `background` + * `show_role` + * `skip_thread_containment` + * `fields` + * `discoverable` + * `actor_type` -- Response: none (code `200`) +* Responses: + +Status: 200 + +```json +{"status": "success"} +``` + +Status: 400 + +```json +{"errors": + {"actor_type": "is invalid"}, + {"email": "has invalid format"}, + ... + } +``` + +Status: 404 + +```json +{"error": "Not found"} +``` ## `GET /api/pleroma/admin/reports` @@ -531,7 +553,7 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret ```json { - "totalReports" : 1, + "total" : 1, "reports": [ { "account": { @@ -752,7 +774,7 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret - 400 Bad Request `"Invalid parameters"` when `status` is missing - On success: `204`, empty response -## `POST /api/pleroma/admin/reports/:report_id/notes/:id` +## `DELETE /api/pleroma/admin/reports/:report_id/notes/:id` ### Delete report note @@ -1096,6 +1118,10 @@ Loads json generated from `config/descriptions.exs`. ### Stats +- Query Params: + - *optional* `instance`: **string** instance hostname (without protocol) to get stats for +- Example: `https://mypleroma.org/api/pleroma/admin/stats?instance=lain.com` + - Response: ```json @@ -1208,4 +1234,66 @@ Loads json generated from `config/descriptions.exs`. - Response: - On success: `204`, empty response - On failure: - - 400 Bad Request `"Invalid parameters"` when `status` is missing \ No newline at end of file + - 400 Bad Request `"Invalid parameters"` when `status` is missing + +## `GET /api/pleroma/admin/media_proxy_caches` + +### Get a list of all banned MediaProxy URLs in Cachex + +- Authentication: required +- Params: +- *optional* `page`: **integer** page number +- *optional* `page_size`: **integer** number of log entries per page (default is `50`) + +- Response: + +``` json +{ + "urls": [ + "http://example.com/media/a688346.jpg", + "http://example.com/media/fb1f4d.jpg" + ] +} + +``` + +## `POST /api/pleroma/admin/media_proxy_caches/delete` + +### Remove a banned MediaProxy URL from Cachex + +- Authentication: required +- Params: + - `urls` (array) + +- Response: + +``` json +{ + "urls": [ + "http://example.com/media/a688346.jpg", + "http://example.com/media/fb1f4d.jpg" + ] +} + +``` + +## `POST /api/pleroma/admin/media_proxy_caches/purge` + +### Purge a MediaProxy URL + +- Authentication: required +- Params: + - `urls` (array) + - `ban` (boolean) + +- Response: + +``` json +{ + "urls": [ + "http://example.com/media/a688346.jpg", + "http://example.com/media/fb1f4d.jpg" + ] +} + +``` diff --git a/docs/API/chats.md b/docs/API/chats.md new file mode 100644 index 000000000..aa6119670 --- /dev/null +++ b/docs/API/chats.md @@ -0,0 +1,248 @@ +# Chats + +Chats are a way to represent an IM-style conversation between two actors. They are not the same as direct messages and they are not `Status`es, even though they have a lot in common. + +## Why Chats? + +There are no 'visibility levels' in ActivityPub, their definition is purely a Mastodon convention. Direct Messaging between users on the fediverse has mostly been modeled by using ActivityPub addressing following Mastodon conventions on normal `Note` objects. In this case, a 'direct message' would be a message that has no followers addressed and also does not address the special public actor, but just the recipients in the `to` field. It would still be a `Note` and is presented with other `Note`s as a `Status` in the API. + +This is an awkward setup for a few reasons: + +- As DMs generally still follow the usual `Status` conventions, it is easy to accidentally pull somebody into a DM thread by mentioning them. (e.g. "I hate @badguy so much") +- It is possible to go from a publicly addressed `Status` to a DM reply, back to public, then to a 'followers only' reply, and so on. This can be become very confusing, as it is unclear which user can see which part of the conversation. +- The standard `Status` format of implicit addressing also leads to rather ugly results if you try to display the messages as a chat, because all the recipients are always mentioned by name in the message. +- As direct messages are posted with the same api call (and usually same frontend component) as public messages, accidentally making a public message private or vice versa can happen easily. Client bugs can also lead to this, accidentally making private messages public. + +As a measure to improve this situation, the `Conversation` concept and related Pleroma extensions were introduced. While it made it possible to work around a few of the issues, many of the problems remained and it didn't see much adoption because it was too complicated to use correctly. + +## Chats explained +For this reasons, Chats are a new and different entity, both in the API as well as in ActivityPub. A quick overview: + +- Chats are meant to represent an instant message conversation between two actors. For now these are only 1-on-1 conversations, but the other actor can be a group in the future. +- Chat messages have the ActivityPub type `ChatMessage`. They are not `Note`s. Servers that don't understand them will just drop them. +- The only addressing allowed in `ChatMessage`s is one single ActivityPub actor in the `to` field. +- There's always only one Chat between two actors. If you start chatting with someone and later start a 'new' Chat, the old Chat will be continued. +- `ChatMessage`s are posted with a different api, making it very hard to accidentally send a message to the wrong person. +- `ChatMessage`s don't show up in the existing timelines. +- Chats can never go from private to public. They are always private between the two actors. + +## Caveats + +- Chats are NOT E2E encrypted (yet). Security is still the same as email. + +## API + +In general, the way to send a `ChatMessage` is to first create a `Chat`, then post a message to that `Chat`. `Group`s will later be supported by making them a sub-type of `Account`. + +This is the overview of using the API. The API is also documented via OpenAPI, so you can view it and play with it by pointing SwaggerUI or a similar OpenAPI tool to `https://yourinstance.tld/api/openapi`. + +### Creating or getting a chat. + +To create or get an existing Chat for a certain recipient (identified by Account ID) +you can call: + +`POST /api/v1/pleroma/chats/by-account-id/:account_id` + +The account id is the normal FlakeId of the user +``` +POST /api/v1/pleroma/chats/by-account-id/someflakeid +``` + +If you already have the id of a chat, you can also use + +``` +GET /api/v1/pleroma/chats/:id +``` + +There will only ever be ONE Chat for you and a given recipient, so this call +will return the same Chat if you already have one with that user. + +Returned data: + +```json +{ + "account": { + "id": "someflakeid", + "username": "somenick", + ... + }, + "id" : "1", + "unread" : 2, + "last_message" : {...}, // The last message in that chat + "updated_at": "2020-04-21T15:11:46.000Z" +} +``` + +### Marking a chat as read + +To mark a number of messages in a chat up to a certain message as read, you can use + +`POST /api/v1/pleroma/chats/:id/read` + + +Parameters: +- last_read_id: Given this id, all chat messages until this one will be marked as read. Required. + + +Returned data: + +```json +{ + "account": { + "id": "someflakeid", + "username": "somenick", + ... + }, + "id" : "1", + "unread" : 0, + "updated_at": "2020-04-21T15:11:46.000Z" +} +``` + +### Marking a single chat message as read + +To set the `unread` property of a message to `false` + +`POST /api/v1/pleroma/chats/:id/messages/:message_id/read` + +Returned data: + +The modified chat message + +### Getting a list of Chats + +`GET /api/v1/pleroma/chats` + +This will return a list of chats that you have been involved in, sorted by their +last update (so new chats will be at the top). + +Returned data: + +```json +[ + { + "account": { + "id": "someflakeid", + "username": "somenick", + ... + }, + "id" : "1", + "unread" : 2, + "last_message" : {...}, // The last message in that chat + "updated_at": "2020-04-21T15:11:46.000Z" + } +] +``` + +The recipient of messages that are sent to this chat is given by their AP ID. +No pagination is implemented for now. + +### Getting the messages for a Chat + +For a given Chat id, you can get the associated messages with + +`GET /api/v1/pleroma/chats/:id/messages` + +This will return all messages, sorted by most recent to least recent. The usual +pagination options are implemented. + +Returned data: + +```json +[ + { + "account_id": "someflakeid", + "chat_id": "1", + "content": "Check this out :firefox:", + "created_at": "2020-04-21T15:11:46.000Z", + "emojis": [ + { + "shortcode": "firefox", + "static_url": "https://dontbulling.me/emoji/Firefox.gif", + "url": "https://dontbulling.me/emoji/Firefox.gif", + "visible_in_picker": false + } + ], + "id": "13", + "unread": true + }, + { + "account_id": "someflakeid", + "chat_id": "1", + "content": "Whats' up?", + "created_at": "2020-04-21T15:06:45.000Z", + "emojis": [], + "id": "12", + "unread": false + } +] +``` + +### Posting a chat message + +Posting a chat message for given Chat id works like this: + +`POST /api/v1/pleroma/chats/:id/messages` + +Parameters: +- content: The text content of the message. Optional if media is attached. +- media_id: The id of an upload that will be attached to the message. + +Currently, no formatting beyond basic escaping and emoji is implemented. + +Returned data: + +```json +{ + "account_id": "someflakeid", + "chat_id": "1", + "content": "Check this out :firefox:", + "created_at": "2020-04-21T15:11:46.000Z", + "emojis": [ + { + "shortcode": "firefox", + "static_url": "https://dontbulling.me/emoji/Firefox.gif", + "url": "https://dontbulling.me/emoji/Firefox.gif", + "visible_in_picker": false + } + ], + "id": "13", + "unread": false +} +``` + +### Deleting a chat message + +Deleting a chat message for given Chat id works like this: + +`DELETE /api/v1/pleroma/chats/:chat_id/messages/:message_id` + +Returned data is the deleted message. + +### Notifications + +There's a new `pleroma:chat_mention` notification, which has this form. It is not given out in the notifications endpoint by default, you need to explicitly request it with `include_types[]=pleroma:chat_mention`: + +```json +{ + "id": "someid", + "type": "pleroma:chat_mention", + "account": { ... } // User account of the sender, + "chat_message": { + "chat_id": "1", + "id": "10", + "content": "Hello", + "account_id": "someflakeid", + "unread": false + }, + "created_at": "somedate" +} +``` + +### Streaming + +There is an additional `user:pleroma_chat` stream. Incoming chat messages will make the current chat be sent to this `user` stream. The `event` of an incoming chat message is `pleroma:chat_update`. The payload is the updated chat with the incoming chat message in the `last_message` field. + +### Web Push + +If you want to receive push messages for this type, you'll need to add the `pleroma:chat_mention` type to your alerts in the push subscription. diff --git a/docs/API/differences_in_mastoapi_responses.md b/docs/API/differences_in_mastoapi_responses.md index 6d37d9008..13920e5f9 100644 --- a/docs/API/differences_in_mastoapi_responses.md +++ b/docs/API/differences_in_mastoapi_responses.md @@ -6,10 +6,6 @@ A Pleroma instance can be identified by " (compatible; Pleroma Pleroma uses 128-bit ids as opposed to Mastodon's 64 bits. However just like Mastodon's ids they are lexically sortable strings -## Attachment cap - -Some apps operate under the assumption that no more than 4 attachments can be returned or uploaded. Pleroma however does not enforce any limits on attachment count neither when returning the status object nor when posting. - ## Timelines Adding the parameter `with_muted=true` to the timeline queries will also return activities by muted (not by blocked!) users. @@ -31,13 +27,22 @@ Has these additional fields under the `pleroma` object: - `expires_at`: a datetime (iso8601) that states when the post will expire (be deleted automatically), or empty if the post won't expire - `thread_muted`: true if the thread the post belongs to is muted - `emoji_reactions`: A list with emoji / reaction maps. The format is `{name: "☕", count: 1, me: true}`. Contains no information about the reacting users, for that use the `/statuses/:id/reactions` endpoint. +- `parent_visible`: If the parent of this post is visible to the user or not. -## Attachments +## Media Attachments Has these additional fields under the `pleroma` object: - `mime_type`: mime type of the attachment. +### Attachment cap + +Some apps operate under the assumption that no more than 4 attachments can be returned or uploaded. Pleroma however does not enforce any limits on attachment count neither when returning the status object nor when posting. + +### Limitations + +Pleroma does not process remote images and therefore cannot include fields such as `meta` and `blurhash`. It does not support focal points or aspect ratios. The frontend is expected to handle it. + ## Accounts The `id` parameter can also be the `nickname` of the user. This only works in these endpoints, not the deeper nested ones for following etc. @@ -47,11 +52,14 @@ The `id` parameter can also be the `nickname` of the user. This only works in th Has these additional fields under the `pleroma` object: +- `ap_id`: nullable URL string, ActivityPub id of the user +- `background_image`: nullable URL string, background image of the user - `tags`: Lists an array of tags for the user -- `relationship{}`: Includes fields as documented for Mastodon API https://docs.joinmastodon.org/entities/relationship/ +- `relationship` (object): Includes fields as documented for Mastodon API https://docs.joinmastodon.org/entities/relationship/ - `is_moderator`: boolean, nullable, true if user is a moderator - `is_admin`: boolean, nullable, true if user is an admin - `confirmation_pending`: boolean, true if a new user account is waiting on email confirmation to be activated +- `hide_favorites`: boolean, true when the user has hiding favorites enabled - `hide_followers`: boolean, true when the user has follower hiding enabled - `hide_follows`: boolean, true when the user has follow hiding enabled - `hide_followers_count`: boolean, true when the user has follower stat hiding enabled @@ -62,6 +70,7 @@ Has these additional fields under the `pleroma` object: - `allow_following_move`: boolean, true when the user allows automatically follow moved following accounts - `unread_conversation_count`: The count of unread conversations. Only returned to the account owner. - `unread_notifications_count`: The count of unread notifications. Only returned to the account owner. +- `notification_settings`: object, can be absent. See `/api/pleroma/notification_settings` for the parameters/keys returned. ### Source @@ -216,6 +225,7 @@ Has theses additional parameters (which are the same as in Pleroma-API): - `avatar_upload_limit`: The same for avatars - `background_upload_limit`: The same for backgrounds - `banner_upload_limit`: The same for banners +- `background_image`: A background image that frontends can use - `pleroma.metadata.features`: A list of supported features - `pleroma.metadata.federation`: The federation restrictions of this instance - `vapid_public_key`: The public key needed for push messages @@ -225,3 +235,47 @@ Has theses additional parameters (which are the same as in Pleroma-API): Has these additional fields under the `pleroma` object: - `unread_count`: contains number unread notifications + +## Streaming + +There is an additional `user:pleroma_chat` stream. Incoming chat messages will make the current chat be sent to this `user` stream. The `event` of an incoming chat message is `pleroma:chat_update`. The payload is the updated chat with the incoming chat message in the `last_message` field. + +## Not implemented + +Pleroma is generally compatible with the Mastodon 2.7.2 API, but some newer features and non-essential features are omitted. These features usually return an HTTP 200 status code, but with an empty response. While they may be added in the future, they are considered low priority. + +### Suggestions + +*Added in Mastodon 2.4.3* + +- `GET /api/v1/suggestions`: Returns an empty array, `[]` + +### Trends + +*Added in Mastodon 3.0.0* + +- `GET /api/v1/trends`: Returns an empty array, `[]` + +### Identity proofs + +*Added in Mastodon 2.8.0* + +- `GET /api/v1/identity_proofs`: Returns an empty array, `[]` + +### Endorsements + +*Added in Mastodon 2.5.0* + +- `GET /api/v1/endorsements`: Returns an empty array, `[]` + +### Profile directory + +*Added in Mastodon 3.0.0* + +- `GET /api/v1/directory`: Returns HTTP 404 + +### Featured tags + +*Added in Mastodon 3.0.0* + +- `GET /api/v1/featured_tags`: Returns HTTP 404 diff --git a/docs/API/pleroma_api.md b/docs/API/pleroma_api.md index 5895613a3..b7eee5192 100644 --- a/docs/API/pleroma_api.md +++ b/docs/API/pleroma_api.md @@ -265,7 +265,7 @@ See [Admin-API](admin_api.md) * Method `PUT` * Authentication: required * Params: - * `image`: Multipart image + * `file`: Multipart image * Response: JSON. Returns a mastodon media attachment entity when successful, otherwise returns HTTP 415 `{"error": "error_msg"}` * Example response: @@ -358,7 +358,7 @@ The status posting endpoint takes an additional parameter, `in_reply_to_conversa * `recipients`: A list of ids of users that should receive posts to this conversation. This will replace the current list of recipients, so submit the full list. The owner of owner of the conversation will always be part of the set of recipients, though. * Response: JSON, statuses (200 - healthy, 503 unhealthy) -## `GET /api/v1/pleroma/conversations/read` +## `POST /api/v1/pleroma/conversations/read` ### Marks all user's conversations as read. * Method `POST` * Authentication: required @@ -426,7 +426,7 @@ The status posting endpoint takes an additional parameter, `in_reply_to_conversa * Authentication: required * Params: * `file`: file needs to be uploaded with the multipart request or link to remote file. - * `shortcode`: (*optional*) shortcode for new emoji, must be uniq for all emoji. If not sended, shortcode will be taken from original filename. + * `shortcode`: (*optional*) shortcode for new emoji, must be unique for all emoji. If not sended, shortcode will be taken from original filename. * `filename`: (*optional*) new emoji file name. If not specified will be taken from original filename. * Response: JSON, list of files for updated pack (hashmap -> shortcode => filename) with status 200, either error status with error message. @@ -450,18 +450,44 @@ The status posting endpoint takes an additional parameter, `in_reply_to_conversa * Response: JSON, list with updated files for updated pack (hashmap -> shortcode => filename) with status 200, either error status with error message. ## `GET /api/pleroma/emoji/packs` + ### Lists local custom emoji packs + * Method `GET` * Authentication: not required -* Params: None -* Response: JSON, "ok" and 200 status and the JSON hashmap of pack name to pack contents +* Params: + * `page`: page number for packs (default 1) + * `page_size`: page size for packs (default 50) +* Response: `packs` key with JSON hashmap of pack name to pack contents and `count` key for count of packs. + +```json +{ + "packs": { + "pack_name": {...}, // pack contents + ... + }, + "count": 0 // packs count +} +``` ## `GET /api/pleroma/emoji/packs/:name` + ### Get pack.json for the pack + * Method `GET` * Authentication: not required -* Params: None -* Response: JSON, pack json with `files` and `pack` keys with 200 status or 404 if the pack does not exist +* Params: + * `page`: page number for files (default 1) + * `page_size`: page size for files (default 30) +* Response: JSON, pack json with `files`, `files_count` and `pack` keys with 200 status or 404 if the pack does not exist. + +```json +{ + "files": {...}, + "files_count": 0, // emoji count in pack + "pack": {...} +} +``` ## `GET /api/pleroma/emoji/packs/:name/archive` ### Requests a local pack archive from the instance @@ -536,7 +562,7 @@ Emoji reactions work a lot like favourites do. They make it possible to react to ``` ## `GET /api/v1/pleroma/statuses/:id/reactions/:emoji` -### Get an object of emoji to account mappings with accounts that reacted to the post for a specific emoji` +### Get an object of emoji to account mappings with accounts that reacted to the post for a specific emoji * Method: `GET` * Authentication: optional * Params: None diff --git a/docs/administration/CLI_tasks/database.md b/docs/administration/CLI_tasks/database.md index ff400c8ed..647f6f274 100644 --- a/docs/administration/CLI_tasks/database.md +++ b/docs/administration/CLI_tasks/database.md @@ -69,3 +69,32 @@ mix pleroma.database update_users_following_followers_counts ```sh tab="From Source" mix pleroma.database fix_likes_collections ``` + +## Vacuum the database + +### Analyze + +Running an `analyze` vacuum job can improve performance by updating statistics used by the query planner. **It is safe to cancel this.** + +```sh tab="OTP" +./bin/pleroma_ctl database vacuum analyze +``` + +```sh tab="From Source" +mix pleroma.database vacuum analyze +``` + +### Full + +Running a `full` vacuum job rebuilds your entire database by reading all of the data and rewriting it into smaller +and more compact files with an optimized layout. This process will take a long time and use additional disk space as +it builds the files side-by-side the existing database files. It can make your database faster and use less disk space, +but should only be run if necessary. **It is safe to cancel this.** + +```sh tab="OTP" +./bin/pleroma_ctl database vacuum full +``` + +```sh tab="From Source" +mix pleroma.database vacuum full +``` \ No newline at end of file diff --git a/docs/administration/CLI_tasks/emoji.md b/docs/administration/CLI_tasks/emoji.md index 3d524a52b..ddcb7e62c 100644 --- a/docs/administration/CLI_tasks/emoji.md +++ b/docs/administration/CLI_tasks/emoji.md @@ -44,3 +44,11 @@ Currently, only .zip archives are recognized as remote pack files and packs are The manifest entry will either be written to a newly created `pack_name.json` file (pack name is asked in questions) or appended to the existing one, *replacing* the old pack with the same name if it was in the file previously. The file list will be written to the file specified previously, *replacing* that file. You _should_ check that the file list doesn't contain anything you don't need in the pack, that is, anything that is not an emoji (the whole pack is downloaded, but only emoji files are extracted). + +## Reload emoji packs + +```sh tab="OTP" +./bin/pleroma_ctl emoji reload +``` + +This command only works with OTP releases. diff --git a/docs/administration/CLI_tasks/user.md b/docs/administration/CLI_tasks/user.md index f535dad82..1e6f4a8b4 100644 --- a/docs/administration/CLI_tasks/user.md +++ b/docs/administration/CLI_tasks/user.md @@ -95,33 +95,33 @@ mix pleroma.user sign_out ``` -## Deactivate or activate a user +## Deactivate or activate a user ```sh tab="OTP" - ./bin/pleroma_ctl user toggle_activated + ./bin/pleroma_ctl user toggle_activated ``` ```sh tab="From Source" -mix pleroma.user toggle_activated +mix pleroma.user toggle_activated ``` -## Unsubscribe local users from a user and deactivate the user +## Deactivate a user and unsubscribes local users from the user ```sh tab="OTP" - ./bin/pleroma_ctl user unsubscribe NICKNAME + ./bin/pleroma_ctl user deactivate NICKNAME ``` ```sh tab="From Source" -mix pleroma.user unsubscribe NICKNAME +mix pleroma.user deactivate NICKNAME ``` -## Unsubscribe local users from an instance and deactivate all accounts on it +## Deactivate all accounts from an instance and unsubscribe local users on it ```sh tab="OTP" - ./bin/pleroma_ctl user unsubscribe_all_from_instance + ./bin/pleroma_ctl user deactivate_all_from_instance ``` ```sh tab="From Source" -mix pleroma.user unsubscribe_all_from_instance +mix pleroma.user deactivate_all_from_instance ``` @@ -135,6 +135,16 @@ mix pleroma.user reset_password ``` +## Disable Multi Factor Authentication (MFA/2FA) for a user +```sh tab="OTP" + ./bin/pleroma_ctl user reset_mfa +``` + +```sh tab="From Source" +mix pleroma.user reset_mfa +``` + + ## Set the value of the given user's settings ```sh tab="OTP" ./bin/pleroma_ctl user set [option ...] @@ -177,4 +187,3 @@ mix pleroma.user untag ```sh tab="From Source" mix pleroma.user toggle_confirmed ``` - diff --git a/docs/ap_extensions.md b/docs/ap_extensions.md new file mode 100644 index 000000000..c4550a1ac --- /dev/null +++ b/docs/ap_extensions.md @@ -0,0 +1,35 @@ +# ChatMessages + +ChatMessages are the messages sent in 1-on-1 chats. They are similar to +`Note`s, but the addresing is done by having a single AP actor in the `to` +field. Addressing multiple actors is not allowed. These messages are always +private, there is no public version of them. They are created with a `Create` +activity. + +Example: + +```json +{ + "actor": "http://2hu.gensokyo/users/raymoo", + "id": "http://2hu.gensokyo/objects/1", + "object": { + "attributedTo": "http://2hu.gensokyo/users/raymoo", + "content": "You expected a cute girl? Too bad.", + "id": "http://2hu.gensokyo/objects/2", + "published": "2020-02-12T14:08:20Z", + "to": [ + "http://2hu.gensokyo/users/marisa" + ], + "type": "ChatMessage" + }, + "published": "2018-02-12T14:08:20Z", + "to": [ + "http://2hu.gensokyo/users/marisa" + ], + "type": "Create" +} +``` + +This setup does not prevent multi-user chats, but these will have to go through +a `Group`, which will be the recipient of the messages and then `Announce` them +to the users in the `Group`. diff --git a/docs/clients.md b/docs/clients.md index 7f98dc7b1..ea751637e 100644 --- a/docs/clients.md +++ b/docs/clients.md @@ -42,6 +42,12 @@ Feel free to contact us to be added to this list! - Platforms: SailfishOS - Features: No Streaming +### Husky +- Source code: +- Contact: [@Husky@enigmatic.observer](https://enigmatic.observer/users/Husky) +- Platforms: Android +- Features: No Streaming, Emoji Reactions, Text Formatting, FE Stickers + ### Nekonium - Homepage: [F-Droid Repository](https://repo.gdgd.jp.net/), [Google Play](https://play.google.com/store/apps/details?id=com.apps.nekonium), [Amazon](https://www.amazon.co.jp/dp/B076FXPRBC/) - Source: diff --git a/docs/configuration/cheatsheet.md b/docs/configuration/cheatsheet.md index 1078c4e87..6759d5e93 100644 --- a/docs/configuration/cheatsheet.md +++ b/docs/configuration/cheatsheet.md @@ -36,30 +36,15 @@ To add configuration to your config file, you can copy it from the base config. * `federation_incoming_replies_max_depth`: Max. depth of reply-to activities fetching on incoming federation, to prevent out-of-memory situations while fetching very long threads. If set to `nil`, threads of any depth will be fetched. Lower this value if you experience out-of-memory crashes. * `federation_reachability_timeout_days`: Timeout (in days) of each external federation target being unreachable prior to pausing federating to it. * `allow_relay`: Enable Pleroma’s Relay, which makes it possible to follow a whole instance. -* `rewrite_policy`: Message Rewrite Policy, either one or a list. Here are the ones available by default: - * `Pleroma.Web.ActivityPub.MRF.NoOpPolicy`: Doesn’t modify activities (default). - * `Pleroma.Web.ActivityPub.MRF.DropPolicy`: Drops all activities. It generally doesn’t makes sense to use in production. - * `Pleroma.Web.ActivityPub.MRF.SimplePolicy`: Restrict the visibility of activities from certains instances (See [`:mrf_simple`](#mrf_simple)). - * `Pleroma.Web.ActivityPub.MRF.TagPolicy`: Applies policies to individual users based on tags, which can be set using pleroma-fe/admin-fe/any other app that supports Pleroma Admin API. For example it allows marking posts from individual users nsfw (sensitive). - * `Pleroma.Web.ActivityPub.MRF.SubchainPolicy`: Selectively runs other MRF policies when messages match (See [`:mrf_subchain`](#mrf_subchain)). - * `Pleroma.Web.ActivityPub.MRF.RejectNonPublic`: Drops posts with non-public visibility settings (See [`:mrf_rejectnonpublic`](#mrf_rejectnonpublic)). - * `Pleroma.Web.ActivityPub.MRF.EnsureRePrepended`: Rewrites posts to ensure that replies to posts with subjects do not have an identical subject and instead begin with re:. - * `Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicy`: Rejects posts from likely spambots by rejecting posts from new users that contain links. - * `Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy`: Crawls attachments using their MediaProxy URLs so that the MediaProxy cache is primed. - * `Pleroma.Web.ActivityPub.MRF.MentionPolicy`: Drops posts mentioning configurable users. (See [`:mrf_mention`](#mrf_mention)). - * `Pleroma.Web.ActivityPub.MRF.VocabularyPolicy`: Restricts activities to a configured set of vocabulary. (See [`:mrf_vocabulary`](#mrf_vocabulary)). - * `Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy`: Rejects or delists posts based on their age when received. (See [`:mrf_object_age`](#mrf_object_age)). -* `public`: Makes the client API in authentificated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network. +* `public`: Makes the client API in authenticated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network. * `quarantined_instances`: List of ActivityPub instances where private(DMs, followers-only) activities will not be send. * `managed_config`: Whenether the config for pleroma-fe is configured in [:frontend_configurations](#frontend_configurations) or in ``static/config.json``. * `allowed_post_formats`: MIME-type list of formats allowed to be posted (transformed into HTML). -* `mrf_transparency`: Make the content of your Message Rewrite Facility settings public (via nodeinfo). -* `mrf_transparency_exclusions`: Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value. * `extended_nickname_format`: Set to `true` to use extended local nicknames format (allows underscores/dashes). This will break federation with older software for theses nicknames. * `max_pinned_statuses`: The maximum number of pinned statuses. `0` will disable the feature. * `autofollowed_nicknames`: Set to nicknames of (local) users that every new user should automatically follow. -* `no_attachment_links`: Set to true to disable automatically adding attachment link text to statuses. +* `attachment_links`: Set to true to enable automatically adding attachment link text to statuses. * `welcome_message`: A message that will be send to a newly registered users as a direct message. * `welcome_user_nickname`: The nickname of the local user that sends the welcome message. * `max_report_comment_size`: The maximum size of the report comment (Default: `1000`). @@ -77,11 +62,30 @@ To add configuration to your config file, you can copy it from the base config. * `external_user_synchronization`: Enabling following/followers counters synchronization for external users. * `cleanup_attachments`: Remove attachments along with statuses. Does not affect duplicate files and attachments without status. Enabling this will increase load to database when deleting statuses on larger instances. +## Message rewrite facility + +### :mrf +* `policies`: Message Rewrite Policy, either one or a list. Here are the ones available by default: + * `Pleroma.Web.ActivityPub.MRF.NoOpPolicy`: Doesn’t modify activities (default). + * `Pleroma.Web.ActivityPub.MRF.DropPolicy`: Drops all activities. It generally doesn’t makes sense to use in production. + * `Pleroma.Web.ActivityPub.MRF.SimplePolicy`: Restrict the visibility of activities from certains instances (See [`:mrf_simple`](#mrf_simple)). + * `Pleroma.Web.ActivityPub.MRF.TagPolicy`: Applies policies to individual users based on tags, which can be set using pleroma-fe/admin-fe/any other app that supports Pleroma Admin API. For example it allows marking posts from individual users nsfw (sensitive). + * `Pleroma.Web.ActivityPub.MRF.SubchainPolicy`: Selectively runs other MRF policies when messages match (See [`:mrf_subchain`](#mrf_subchain)). + * `Pleroma.Web.ActivityPub.MRF.RejectNonPublic`: Drops posts with non-public visibility settings (See [`:mrf_rejectnonpublic`](#mrf_rejectnonpublic)). + * `Pleroma.Web.ActivityPub.MRF.EnsureRePrepended`: Rewrites posts to ensure that replies to posts with subjects do not have an identical subject and instead begin with re:. + * `Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicy`: Rejects posts from likely spambots by rejecting posts from new users that contain links. + * `Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy`: Crawls attachments using their MediaProxy URLs so that the MediaProxy cache is primed. + * `Pleroma.Web.ActivityPub.MRF.MentionPolicy`: Drops posts mentioning configurable users. (See [`:mrf_mention`](#mrf_mention)). + * `Pleroma.Web.ActivityPub.MRF.VocabularyPolicy`: Restricts activities to a configured set of vocabulary. (See [`:mrf_vocabulary`](#mrf_vocabulary)). + * `Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy`: Rejects or delists posts based on their age when received. (See [`:mrf_object_age`](#mrf_object_age)). +* `transparency`: Make the content of your Message Rewrite Facility settings public (via nodeinfo). +* `transparency_exclusions`: Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value. + ## Federation ### MRF policies !!! note - Configuring MRF policies is not enough for them to take effect. You have to enable them by specifying their module in `rewrite_policy` under [:instance](#instance) section. + Configuring MRF policies is not enough for them to take effect. You have to enable them by specifying their module in `policies` under [:mrf](#mrf) section. #### :mrf_simple * `media_removal`: List of instances to remove media from. @@ -137,8 +141,9 @@ their ActivityPub ID. An example: ```elixir -config :pleroma, :mrf_user_allowlist, - "example.org": ["https://example.org/users/admin"] +config :pleroma, :mrf_user_allowlist, %{ + "example.org" => ["https://example.org/users/admin"] +} ``` #### :mrf_object_age @@ -149,6 +154,15 @@ config :pleroma, :mrf_user_allowlist, * `:strip_followers` removes followers from the ActivityPub recipient list, ensuring they won't be delivered to home timelines * `:reject` rejects the message entirely +#### mrf_steal_emoji +* `hosts`: List of hosts to steal emojis from +* `rejected_shortcodes`: Regex-list of shortcodes to reject +* `size_limit`: File size limit (in bytes), checked before an emoji is saved to the disk + +#### :mrf_activity_expiration + +* `days`: Default global expiration time for all local Create activities (in days) + ### :activitypub * `unfollow_blocked`: Whether blocks result in people getting unfollowed * `outgoing_blocks`: Whether to federate blocks to other instances @@ -249,6 +263,40 @@ This section describe PWA manifest instance-specific values. Currently this opti * `base_url`: The base URL to access a user-uploaded file. Useful when you want to proxy the media files via another host/CDN fronts. * `proxy_opts`: All options defined in `Pleroma.ReverseProxy` documentation, defaults to `[max_body_length: (25*1_048_576)]`. * `whitelist`: List of domains to bypass the mediaproxy +* `invalidation`: options for remove media from cache after delete object: + * `enabled`: Enables purge cache + * `provider`: Which one of the [purge cache strategy](#purge-cache-strategy) to use. + +### Purge cache strategy + +#### Pleroma.Web.MediaProxy.Invalidation.Script + +This strategy allow perform external shell script to purge cache. +Urls of attachments pass to script as arguments. + +* `script_path`: path to external script. + +Example: +```elixir +config :pleroma, Pleroma.Web.MediaProxy.Invalidation.Script, + script_path: "./installation/nginx-cache-purge.example" +``` + +#### Pleroma.Web.MediaProxy.Invalidation.Http + +This strategy allow perform custom http request to purge cache. + +* `method`: http method. default is `purge` +* `headers`: http headers. +* `options`: request options. + +Example: +```elixir +config :pleroma, Pleroma.Web.MediaProxy.Invalidation.Http, + method: :purge, + headers: [], + options: [] +``` ## Link previews @@ -459,6 +507,7 @@ the source code is here: https://github.com/koto-bank/kocaptcha. The default end * `base_url`: The base URL to access a user-uploaded file. Useful when you want to proxy the media files via another host. * `proxy_remote`: If you're using a remote uploader, Pleroma will proxy media requests instead of redirecting to it. * `proxy_opts`: Proxy options, see `Pleroma.ReverseProxy` documentation. +* `filename_display_max_length`: Set max length of a filename to display. 0 = no limit. Default: 30. !!! warning `strip_exif` has been replaced by `Pleroma.Upload.Filter.Mogrify`. @@ -619,24 +668,6 @@ config :pleroma, :workers, * `enabled: false` corresponds to `config :pleroma, :workers, retries: [federator_outgoing: 1]` * deprecated options: `max_jobs`, `initial_timeout` -### Pleroma.Scheduler - -Configuration for [Quantum](https://github.com/quantum-elixir/quantum-core) jobs scheduler. - -See [Quantum readme](https://github.com/quantum-elixir/quantum-core#usage) for the list of supported options. - -Example: - -```elixir -config :pleroma, Pleroma.Scheduler, - global: true, - overlap: true, - timezone: :utc, - jobs: [{"0 */6 * * * *", {Pleroma.Web.Websub, :refresh_subscriptions, []}}] -``` - -The above example defines a single job which invokes `Pleroma.Web.Websub.refresh_subscriptions()` every 6 hours ("0 */6 * * * *", [crontab format](https://en.wikipedia.org/wiki/Cron)). - ## :web_push_encryption, :vapid_details Web Push Notifications configuration. You can use the mix task `mix web_push.gen.keypair` to generate it. @@ -941,13 +972,13 @@ config :pleroma, :database_config_whitelist, [ Restrict access for unauthenticated users to timelines (public and federate), user profiles and statuses. -* `timelines` - public and federated timelines - * `local` - public timeline +* `timelines`: public and federated timelines + * `local`: public timeline * `federated` -* `profiles` - user profiles +* `profiles`: user profiles * `local` * `remote` -* `activities` - statuses +* `activities`: statuses * `local` * `remote` diff --git a/docs/configuration/howto_theming_your_instance.md b/docs/configuration/howto_theming_your_instance.md index d0daf5b25..cfa00f538 100644 --- a/docs/configuration/howto_theming_your_instance.md +++ b/docs/configuration/howto_theming_your_instance.md @@ -60,7 +60,7 @@ Example of `my-awesome-theme.json` where we add the name "My Awesome Theme" ### Set as default theme -Now we can set the new theme as default in the [Pleroma FE configuration](General-tips-for-customizing-Pleroma-FE.md). +Now we can set the new theme as default in the [Pleroma FE configuration](../../../frontend/CONFIGURATION). Example of adding the new theme in the back-end config files ```elixir diff --git a/docs/configuration/mrf.md b/docs/configuration/mrf.md index d48d0cc99..31c66e098 100644 --- a/docs/configuration/mrf.md +++ b/docs/configuration/mrf.md @@ -34,9 +34,9 @@ config :pleroma, :instance, To use `SimplePolicy`, you must enable it. Do so by adding the following to your `:instance` config object, so that it looks like this: ```elixir -config :pleroma, :instance, +config :pleroma, :mrf, [...] - rewrite_policy: Pleroma.Web.ActivityPub.MRF.SimplePolicy + policies: Pleroma.Web.ActivityPub.MRF.SimplePolicy ``` Once `SimplePolicy` is enabled, you can configure various groups in the `:mrf_simple` config object. These groups are: @@ -58,8 +58,8 @@ Servers should be configured as lists. This example will enable `SimplePolicy`, block media from `illegalporn.biz`, mark media as NSFW from `porn.biz` and `porn.business`, reject messages from `spam.com`, remove messages from `spam.university` from the federated timeline and block reports (flags) from `whiny.whiner`: ```elixir -config :pleroma, :instance, - rewrite_policy: [Pleroma.Web.ActivityPub.MRF.SimplePolicy] +config :pleroma, :mrf, + policies: [Pleroma.Web.ActivityPub.MRF.SimplePolicy] config :pleroma, :mrf_simple, media_removal: ["illegalporn.biz"], @@ -75,7 +75,7 @@ The effects of MRF policies can be very drastic. It is important to use this fun ## Writing your own MRF Policy -As discussed above, the MRF system is a modular system that supports pluggable policies. This means that an admin may write a custom MRF policy in Elixir or any other language that runs on the Erlang VM, by specifying the module name in the `rewrite_policy` config setting. +As discussed above, the MRF system is a modular system that supports pluggable policies. This means that an admin may write a custom MRF policy in Elixir or any other language that runs on the Erlang VM, by specifying the module name in the `policies` config setting. For example, here is a sample policy module which rewrites all messages to "new message content": @@ -125,8 +125,8 @@ end If you save this file as `lib/pleroma/web/activity_pub/mrf/rewrite_policy.ex`, it will be included when you next rebuild Pleroma. You can enable it in the configuration like so: ```elixir -config :pleroma, :instance, - rewrite_policy: [ +config :pleroma, :mrf, + policies: [ Pleroma.Web.ActivityPub.MRF.SimplePolicy, Pleroma.Web.ActivityPub.MRF.RewritePolicy ] diff --git a/docs/configuration/postgresql.md b/docs/configuration/postgresql.md new file mode 100644 index 000000000..6983fb459 --- /dev/null +++ b/docs/configuration/postgresql.md @@ -0,0 +1,31 @@ +# Optimizing your PostgreSQL performance + +Pleroma performance depends to a large extent on good database performance. The default PostgreSQL settings are mostly fine, but often you can get better performance by changing a few settings. + +You can use [PGTune](https://pgtune.leopard.in.ua) to get recommendations for your setup. If you do, set the "Number of Connections" field to 20, as Pleroma will only use 10 concurrent connections anyway. If you don't, it will give you advice that might even hurt your performance. + +We also recommend not using the "Network Storage" option. + +## Example configurations + +Here are some configuration suggestions for PostgreSQL 10+. + +### 1GB RAM, 1 CPU +``` +shared_buffers = 256MB +effective_cache_size = 768MB +maintenance_work_mem = 64MB +work_mem = 13107kB +``` + +### 2GB RAM, 2 CPU +``` +shared_buffers = 512MB +effective_cache_size = 1536MB +maintenance_work_mem = 128MB +work_mem = 26214kB +max_worker_processes = 2 +max_parallel_workers_per_gather = 1 +max_parallel_workers = 2 +``` + diff --git a/docs/configuration/storing_remote_media.md b/docs/configuration/storing_remote_media.md new file mode 100644 index 000000000..c01985d25 --- /dev/null +++ b/docs/configuration/storing_remote_media.md @@ -0,0 +1,38 @@ +# Storing Remote Media + +Pleroma does not store remote/federated media by default. The best way to achieve this is to change Nginx to keep its reverse proxy cache +for a year and to activate the `MediaProxyWarmingPolicy` MRF policy in Pleroma which will automatically fetch all media through the proxy +as soon as the post is received by your instance. + +## Nginx + +``` + proxy_cache_path /long/term/storage/path/pleroma-media-cache levels=1:2 + keys_zone=pleroma_media_cache:10m inactive=1y use_temp_path=off; + + location ~ ^/(media|proxy) { + proxy_cache pleroma_media_cache; + slice 1m; + proxy_cache_key $host$uri$is_args$args$slice_range; + proxy_set_header Range $slice_range; + proxy_http_version 1.1; + proxy_cache_valid 206 301 302 304 1h; + proxy_cache_valid 200 1y; + proxy_cache_use_stale error timeout invalid_header updating; + proxy_ignore_client_abort on; + proxy_buffering on; + chunked_transfer_encoding on; + proxy_ignore_headers Cache-Control Expires; + proxy_hide_header Cache-Control Expires; + proxy_pass http://127.0.0.1:4000; + } +``` + +## Pleroma + +Add to your `prod.secret.exs`: + +``` +config :pleroma, :mrf, + policies: [Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy] +``` diff --git a/docs/dev.md b/docs/dev.md index f1b4cbf8b..9c749c17c 100644 --- a/docs/dev.md +++ b/docs/dev.md @@ -20,4 +20,4 @@ This document contains notes and guidelines for Pleroma developers. ## Auth-related configuration, OAuth consumer mode etc. -See `Authentication` section of [`docs/configuration/cheatsheet.md`](docs/configuration/cheatsheet.md#authentication). +See `Authentication` section of [the configuration cheatsheet](configuration/cheatsheet.md#authentication). diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 000000000..1a90d0a8d --- /dev/null +++ b/docs/index.md @@ -0,0 +1,26 @@ +# Introduction to Pleroma +## What is Pleroma? +Pleroma is a federated social networking platform, compatible with Mastodon and other ActivityPub implementations. It is free software licensed under the AGPLv3. +It actually consists of two components: a backend, named simply Pleroma, and a user-facing frontend, named Pleroma-FE. It also includes the Mastodon frontend, if that's your thing. +It's part of what we call the fediverse, a federated network of instances which speak common protocols and can communicate with each other. +One account on an instance is enough to talk to the entire fediverse! + +## How can I use it? + +Pleroma instances are already widely deployed, a list can be found at and . + +If you don't feel like joining an existing instance, but instead prefer to deploy your own instance, that's easy too! +Installation instructions can be found in the installation section of these docs. + +## I got an account, now what? +Great! Now you can explore the fediverse! Open the login page for your Pleroma instance (e.g. ) and login with your username and password. (If you don't have an account yet, click on Register) + +### Pleroma-FE +The default front-end used by Pleroma is Pleroma-FE. You can find more information on what it is and how to use it in the [Introduction to Pleroma-FE](../frontend). + +### Mastodon interface +If the Pleroma interface isn't your thing, or you're just trying something new but you want to keep using the familiar Mastodon interface, we got that too! +Just add a "/web" after your instance url (e.g. ) and you'll end on the Mastodon web interface, but with a Pleroma backend! MAGIC! +The Mastodon interface is from the Glitch-soc fork. For more information on the Mastodon interface you can check the [Mastodon](https://docs.joinmastodon.org/) and [Glitch-soc](https://glitch-soc.github.io/docs/) documentation. + +Remember, what you see is only the frontend part of Mastodon, the backend is still Pleroma. diff --git a/docs/installation/alpine_linux_en.md b/docs/installation/alpine_linux_en.md index 2a9b8f6ff..c726d559f 100644 --- a/docs/installation/alpine_linux_en.md +++ b/docs/installation/alpine_linux_en.md @@ -225,10 +225,7 @@ sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new + +#### Further reading + +{! backend/installation/further_reading.include !} + +## Questions + +Questions about the installation or didn’t it work as it should be, ask in [#pleroma:matrix.org](https://matrix.heldscal.la/#/room/#freenode_#pleroma:matrix.org) or IRC Channel **#pleroma** on **Freenode**. diff --git a/docs/installation/openbsd_en.md b/docs/installation/openbsd_en.md index e8c5d844c..5dbe24f75 100644 --- a/docs/installation/openbsd_en.md +++ b/docs/installation/openbsd_en.md @@ -242,3 +242,11 @@ If your instance is up and running, you can create your first user with administ ``` LC_ALL=en_US.UTF-8 MIX_ENV=prod mix pleroma.user new --admin ``` + +#### Further reading + +{! backend/installation/further_reading.include !} + +## Questions + +Questions about the installation or didn’t it work as it should be, ask in [#pleroma:matrix.org](https://matrix.heldscal.la/#/room/#freenode_#pleroma:matrix.org) or IRC Channel **#pleroma** on **Freenode**. diff --git a/docs/installation/otp_en.md b/docs/installation/otp_en.md index fb99af699..e4f822d1c 100644 --- a/docs/installation/otp_en.md +++ b/docs/installation/otp_en.md @@ -63,7 +63,7 @@ apt install postgresql-11-rum ``` #### (Optional) Performance configuration -For optimal performance, you may use [PGTune](https://pgtune.leopard.in.ua), don't forget to restart postgresql after editing the configuration +It is encouraged to check [Optimizing your PostgreSQL performance](../configuration/postgresql.md) document, for tips on PostgreSQL tuning. ```sh tab="Alpine" rc-service postgresql restart @@ -270,10 +270,7 @@ This will create an account withe the username of 'joeuser' with the email addre ## Further reading -* [Backup your instance](../administration/backup.md) -* [Hardening your instance](../configuration/hardening.md) -* [How to activate mediaproxy](../configuration/howto_mediaproxy.md) -* [Updating your instance](../administration/updating.md) +{! backend/installation/further_reading.include !} ## Questions diff --git a/docs/introduction.md b/docs/introduction.md deleted file mode 100644 index a915c143c..000000000 --- a/docs/introduction.md +++ /dev/null @@ -1,65 +0,0 @@ -# Introduction to Pleroma -## What is Pleroma? -Pleroma is a federated social networking platform, compatible with GNU social, Mastodon and other OStatus and ActivityPub implementations. It is free software licensed under the AGPLv3. -It actually consists of two components: a backend, named simply Pleroma, and a user-facing frontend, named Pleroma-FE. It also includes the Mastodon frontend, if that's your thing. -It's part of what we call the fediverse, a federated network of instances which speak common protocols and can communicate with each other. -One account on an instance is enough to talk to the entire fediverse! - -## How can I use it? - -Pleroma instances are already widely deployed, a list can be found at . Information on all existing fediverse instances can be found at . - -If you don't feel like joining an existing instance, but instead prefer to deploy your own instance, that's easy too! -Installation instructions can be found in the installation section of these docs. - -## I got an account, now what? -Great! Now you can explore the fediverse! Open the login page for your Pleroma instance (e.g. ) and login with your username and password. (If you don't have an account yet, click on Register) - -At this point you will have two columns in front of you. - -### Left column - -- first block: here you can see your avatar, your nickname and statistics (Statuses, Following, Followers). Clicking your profile pic will open your profile. -Under that you have a text form which allows you to post new statuses. The number on the bottom of the text form is a character counter, every instance can have a different character limit (the default is 5000). -If you want to mention someone, type @ + name of the person. A drop-down menu will help you in finding the right person. -Under the text form there are also several visibility options and there is the option to use rich text. -Under that the icon on the left is for uploading media files and attach them to your post. There is also an emoji-picker and an option to post a poll. -To post your status, simply press Submit. -On the top right you will also see a wrench icon. This opens your personal settings. - -- second block: Here you can switch between the different timelines: - - Timeline: all the people that you follow - - Interactions: here you can switch between different timelines where there was interaction with your account. There is Mentions, Repeats and Favorites, and New follows - - Direct Messages: these are the Direct Messages sent to you - - Public Timeline: all the statutes from the local instance - - The Whole Known Network: all public posts the instance knows about, both local and remote! - - About: This isn't a Timeline but shows relevant info about the instance. You can find a list of the moderators and admins, Terms of Service, MRF policies and enabled features. -- Optional third block: This is the Instance panel that can be activated, but is deactivated by default. It's fully customisable and by default has links to the pleroma-fe and Mastodon-fe. -- fourth block: This is the Notifications block, here you will get notified whenever somebody mentions you, follows you, repeats or favorites one of your statuses. - -### Right column -This is where the interesting stuff happens! -Depending on the timeline you will see different statuses, but each status has a standard structure: - -- Profile pic, name and link to profile. An optional left-arrow if it's a reply to another status (hovering will reveal the reply-to status). Clicking on the profile pic will uncollapse the user's profile. -- A `+` button on the right allows you to Expand/Collapse an entire discussion thread. It also updates in realtime! -- An arrow icon allows you to open the status on the instance where it's originating from. -- The text of the status, including mentions and attachements. If you click on a mention, it will automatically open the profile page of that person. -- Three buttons (left to right): Reply, Repeat, Favorite. There is also a forth button, this is a dropdown menu for simple moderation like muting the conversation or, if you have moderation rights, delete the status from the server. - -### Top right - -- The magnifier icon opens the search screen where you can search for statuses, people and hashtags. It's also possible to import statusses from remote servers by pasting the url to the post in the search field. -- The gear icon gives you general settings -- If you have admin rights, you'll see an icon that opens the admin interface -- The last icon is to log out - -### Bottom right -On the bottom right you have a chatbox. Here you can communicate with people on the same instance in realtime. It is local-only, for now, but there are plans to make it extendable to the entire fediverse! - -### Mastodon interface -If the Pleroma interface isn't your thing, or you're just trying something new but you want to keep using the familiar Mastodon interface, we got that too! -Just add a "/web" after your instance url (e.g. ) and you'll end on the Mastodon web interface, but with a Pleroma backend! MAGIC! -The Mastodon interface is from the Glitch-soc fork. For more information on the Mastodon interface you can check the [Mastodon](https://docs.joinmastodon.org/) and [Glitch-soc](https://glitch-soc.github.io/docs/) documentation. - -Remember, what you see is only the frontend part of Mastodon, the backend is still Pleroma. diff --git a/elixir_buildpack.config b/elixir_buildpack.config index c23b08fb8..946408c12 100644 --- a/elixir_buildpack.config +++ b/elixir_buildpack.config @@ -1,2 +1,2 @@ -elixir_version=1.8.2 -erlang_version=21.3.7 +elixir_version=1.9.4 +erlang_version=22.3.4.1 diff --git a/installation/nginx-cache-purge.sh.example b/installation/nginx-cache-purge.sh.example new file mode 100755 index 000000000..5f6cbb128 --- /dev/null +++ b/installation/nginx-cache-purge.sh.example @@ -0,0 +1,40 @@ +#!/bin/sh + +# A simple shell script to delete a media from the Nginx cache. + +SCRIPTNAME=${0##*/} + +# NGINX cache directory +CACHE_DIRECTORY="/tmp/pleroma-media-cache" + +## Return the files where the items are cached. +## $1 - the filename, can be a pattern . +## $2 - the cache directory. +## $3 - (optional) the number of parallel processes to run for grep. +get_cache_files() { + local max_parallel=${3-16} + find $2 -maxdepth 2 -type d | xargs -P $max_parallel -n 1 grep -E -Rl "^KEY:.*$1" | sort -u +} + +## Removes an item from the given cache zone. +## $1 - the filename, can be a pattern . +## $2 - the cache directory. +purge_item() { + for f in $(get_cache_files $1 $2); do + echo "found file: $f" + [ -f $f ] || continue + echo "Deleting $f from $2." + rm $f + done +} # purge_item + +purge() { + for url in "$@" + do + echo "$SCRIPTNAME delete \`$url\` from cache ($CACHE_DIRECTORY)" + purge_item $url $CACHE_DIRECTORY + done + +} + +purge $@ diff --git a/installation/pleroma.nginx b/installation/pleroma.nginx index 688be3e71..d301ca615 100644 --- a/installation/pleroma.nginx +++ b/installation/pleroma.nginx @@ -37,18 +37,17 @@ server { listen 443 ssl http2; listen [::]:443 ssl http2; - ssl_session_timeout 5m; + ssl_session_timeout 1d; + ssl_session_cache shared:MozSSL:10m; # about 40000 sessions + ssl_session_tickets off; ssl_trusted_certificate /etc/letsencrypt/live/example.tld/chain.pem; ssl_certificate /etc/letsencrypt/live/example.tld/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.tld/privkey.pem; - # Add TLSv1.0 to support older devices - ssl_protocols TLSv1.2; - # Uncomment line below if you want to support older devices (Before Android 4.4.2, IE 8, etc.) - # ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES"; + ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; - ssl_prefer_server_ciphers on; + ssl_prefer_server_ciphers off; # In case of an old server with an OpenSSL version of 1.0.2 or below, # leave only prime256v1 or comment out the following line. ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; diff --git a/lib/mix/tasks/pleroma/benchmark.ex b/lib/mix/tasks/pleroma/benchmark.ex index 6ab7fe8ef..dd2b9c8f2 100644 --- a/lib/mix/tasks/pleroma/benchmark.ex +++ b/lib/mix/tasks/pleroma/benchmark.ex @@ -67,8 +67,7 @@ def run(["render_timeline", nickname | _] = args) do Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{ activities: activities, for: user, - as: :activity, - skip_relationships: true + as: :activity }) end }, diff --git a/lib/mix/tasks/pleroma/config.ex b/lib/mix/tasks/pleroma/config.ex index 5c9ef6904..d5129d410 100644 --- a/lib/mix/tasks/pleroma/config.ex +++ b/lib/mix/tasks/pleroma/config.ex @@ -52,6 +52,7 @@ def migrate_to_db(file_path \\ nil) do defp do_migrate_to_db(config_file) do if File.exists?(config_file) do + shell_info("Migrating settings from file: #{Path.expand(config_file)}") Ecto.Adapters.SQL.query!(Repo, "TRUNCATE config;") Ecto.Adapters.SQL.query!(Repo, "ALTER SEQUENCE config_id_seq RESTART;") @@ -72,8 +73,7 @@ defp create(group, settings) do group |> Pleroma.Config.Loader.filter_group(settings) |> Enum.each(fn {key, value} -> - key = inspect(key) - {:ok, _} = ConfigDB.update_or_create(%{group: inspect(group), key: key, value: value}) + {:ok, _} = ConfigDB.update_or_create(%{group: group, key: key, value: value}) shell_info("Settings for key #{key} migrated.") end) @@ -131,12 +131,9 @@ defp write_and_delete(config, file, delete?) do end defp write(config, file) do - value = - config.value - |> ConfigDB.from_binary() - |> inspect(limit: :infinity) + value = inspect(config.value, limit: :infinity) - IO.write(file, "config #{config.group}, #{config.key}, #{value}\r\n\r\n") + IO.write(file, "config #{inspect(config.group)}, #{inspect(config.key)}, #{value}\r\n\r\n") config end diff --git a/lib/mix/tasks/pleroma/database.ex b/lib/mix/tasks/pleroma/database.ex index 778de162f..82e2abdcb 100644 --- a/lib/mix/tasks/pleroma/database.ex +++ b/lib/mix/tasks/pleroma/database.ex @@ -4,6 +4,7 @@ defmodule Mix.Tasks.Pleroma.Database do alias Pleroma.Conversation + alias Pleroma.Maintenance alias Pleroma.Object alias Pleroma.Repo alias Pleroma.User @@ -34,13 +35,7 @@ def run(["remove_embedded_objects" | args]) do ) if Keyword.get(options, :vacuum) do - Logger.info("Runnning VACUUM FULL") - - Repo.query!( - "vacuum full;", - [], - timeout: :infinity - ) + Maintenance.vacuum("full") end end @@ -94,13 +89,7 @@ def run(["prune_objects" | args]) do |> Repo.delete_all(timeout: :infinity) if Keyword.get(options, :vacuum) do - Logger.info("Runnning VACUUM FULL") - - Repo.query!( - "vacuum full;", - [], - timeout: :infinity - ) + Maintenance.vacuum("full") end end @@ -135,4 +124,10 @@ def run(["fix_likes_collections"]) do end) |> Stream.run() end + + def run(["vacuum", args]) do + start_pleroma() + + Maintenance.vacuum(args) + end end diff --git a/lib/mix/tasks/pleroma/emoji.ex b/lib/mix/tasks/pleroma/emoji.ex index cdffa88b2..f4eaeac98 100644 --- a/lib/mix/tasks/pleroma/emoji.ex +++ b/lib/mix/tasks/pleroma/emoji.ex @@ -15,7 +15,7 @@ def run(["ls-packs" | args]) do {options, [], []} = parse_global_opts(args) url_or_path = options[:manifest] || default_manifest() - manifest = fetch_manifest(url_or_path) + manifest = fetch_and_decode(url_or_path) Enum.each(manifest, fn {name, info} -> to_print = [ @@ -42,12 +42,12 @@ def run(["get-packs" | args]) do url_or_path = options[:manifest] || default_manifest() - manifest = fetch_manifest(url_or_path) + manifest = fetch_and_decode(url_or_path) for pack_name <- pack_names do if Map.has_key?(manifest, pack_name) do pack = manifest[pack_name] - src_url = pack["src"] + src = pack["src"] IO.puts( IO.ANSI.format([ @@ -57,11 +57,11 @@ def run(["get-packs" | args]) do :normal, " from ", :underline, - src_url + src ]) ) - binary_archive = Tesla.get!(client(), src_url).body + {:ok, binary_archive} = fetch(src) archive_sha = :crypto.hash(:sha256, binary_archive) |> Base.encode16() sha_status_text = ["SHA256 of ", :bright, pack_name, :normal, " source file is ", :bright] @@ -74,8 +74,8 @@ def run(["get-packs" | args]) do raise "Bad SHA256 for #{pack_name}" end - # The url specified in files should be in the same directory - files_url = + # The location specified in files should be in the same directory + files_loc = url_or_path |> Path.dirname() |> Path.join(pack["files"]) @@ -88,11 +88,11 @@ def run(["get-packs" | args]) do :normal, " from ", :underline, - files_url + files_loc ]) ) - files = Tesla.get!(client(), files_url).body |> Jason.decode!() + files = fetch_and_decode(files_loc) IO.puts(IO.ANSI.format(["Unpacking ", :bright, pack_name])) @@ -237,16 +237,26 @@ def run(["gen-pack" | args]) do end end - defp fetch_manifest(from) do - Jason.decode!( - if String.starts_with?(from, "http") do - Tesla.get!(client(), from).body - else - File.read!(from) - end - ) + def run(["reload"]) do + start_pleroma() + Pleroma.Emoji.reload() + IO.puts("Emoji packs have been reloaded.") end + defp fetch_and_decode(from) do + with {:ok, json} <- fetch(from) do + Jason.decode!(json) + end + end + + defp fetch("http" <> _ = from) do + with {:ok, %{body: body}} <- Tesla.get(client(), from) do + {:ok, body} + end + end + + defp fetch(path), do: File.read(path) + defp parse_global_opts(args) do OptionParser.parse( args, diff --git a/lib/mix/tasks/pleroma/instance.ex b/lib/mix/tasks/pleroma/instance.ex index bc842a59f..86409738a 100644 --- a/lib/mix/tasks/pleroma/instance.ex +++ b/lib/mix/tasks/pleroma/instance.ex @@ -147,6 +147,7 @@ def run(["gen" | rest]) do "What directory should media uploads go in (when using the local uploader)?", Pleroma.Config.get([Pleroma.Uploaders.Local, :uploads]) ) + |> Path.expand() static_dir = get_option( @@ -155,6 +156,7 @@ def run(["gen" | rest]) do "What directory should custom public files be read from (custom emojis, frontend bundle overrides, robots.txt, etc.)?", Pleroma.Config.get([:instance, :static_dir]) ) + |> Path.expand() Config.put([:instance, :static_dir], static_dir) @@ -204,7 +206,7 @@ def run(["gen" | rest]) do shell_info("Writing the postgres script to #{psql_path}.") File.write(psql_path, result_psql) - write_robots_txt(indexable, template_dir) + write_robots_txt(static_dir, indexable, template_dir) shell_info( "\n All files successfully written! Refer to the installation instructions for your platform for next steps." @@ -224,15 +226,13 @@ def run(["gen" | rest]) do end end - defp write_robots_txt(indexable, template_dir) do + defp write_robots_txt(static_dir, indexable, template_dir) do robots_txt = EEx.eval_file( template_dir <> "/robots_txt.eex", indexable: indexable ) - static_dir = Pleroma.Config.get([:instance, :static_dir], "instance/static/") - unless File.exists?(static_dir) do File.mkdir_p!(static_dir) end diff --git a/lib/mix/tasks/pleroma/refresh_counter_cache.ex b/lib/mix/tasks/pleroma/refresh_counter_cache.ex index 15b4dbfa6..efcbaa3b1 100644 --- a/lib/mix/tasks/pleroma/refresh_counter_cache.ex +++ b/lib/mix/tasks/pleroma/refresh_counter_cache.ex @@ -17,30 +17,53 @@ defmodule Mix.Tasks.Pleroma.RefreshCounterCache do def run([]) do Mix.Pleroma.start_pleroma() - ["public", "unlisted", "private", "direct"] - |> Enum.each(fn visibility -> - count = status_visibility_count_query(visibility) - name = "status_visibility_#{visibility}" - CounterCache.set(name, count) - Mix.Pleroma.shell_info("Set #{name} to #{count}") + instances = + Activity + |> distinct([a], true) + |> select([a], fragment("split_part(?, '/', 3)", a.actor)) + |> Repo.all() + + instances + |> Enum.with_index(1) + |> Enum.each(fn {instance, i} -> + counters = instance_counters(instance) + CounterCache.set(instance, counters) + + Mix.Pleroma.shell_info( + "[#{i}/#{length(instances)}] Setting #{instance} counters: #{inspect(counters)}" + ) end) Mix.Pleroma.shell_info("Done") end - defp status_visibility_count_query(visibility) do + defp instance_counters(instance) do + counters = %{"public" => 0, "unlisted" => 0, "private" => 0, "direct" => 0} + Activity - |> where( + |> where([a], fragment("(? ->> 'type'::text) = 'Create'", a.data)) + |> where([a], fragment("split_part(?, '/', 3) = ?", a.actor, ^instance)) + |> select( + [a], + {fragment( + "activity_visibility(?, ?, ?)", + a.actor, + a.recipients, + a.data + ), count(a.id)} + ) + |> group_by( [a], fragment( - "activity_visibility(?, ?, ?) = ?", + "activity_visibility(?, ?, ?)", a.actor, a.recipients, - a.data, - ^visibility + a.data ) ) - |> where([a], fragment("(? ->> 'type'::text) = 'Create'", a.data)) - |> Repo.aggregate(:count, :id, timeout: :timer.minutes(30)) + |> Repo.all(timeout: :timer.minutes(30)) + |> Enum.reduce(counters, fn {visibility, count}, acc -> + Map.put(acc, visibility, count) + end) end end diff --git a/lib/mix/tasks/pleroma/user.ex b/lib/mix/tasks/pleroma/user.ex index da140ac86..bca7e87bf 100644 --- a/lib/mix/tasks/pleroma/user.ex +++ b/lib/mix/tasks/pleroma/user.ex @@ -144,28 +144,30 @@ def run(["reset_password", nickname]) do end end - def run(["unsubscribe", nickname]) do + def run(["reset_mfa", nickname]) do + start_pleroma() + + with %User{local: true} = user <- User.get_cached_by_nickname(nickname), + {:ok, _token} <- Pleroma.MFA.disable(user) do + shell_info("Multi-Factor Authentication disabled for #{user.nickname}") + else + _ -> + shell_error("No local user #{nickname}") + end + end + + def run(["deactivate", nickname]) do start_pleroma() with %User{} = user <- User.get_cached_by_nickname(nickname) do shell_info("Deactivating #{user.nickname}") User.deactivate(user) - - user - |> User.get_friends() - |> Enum.each(fn friend -> - user = User.get_cached_by_id(user.id) - - shell_info("Unsubscribing #{friend.nickname} from #{user.nickname}") - User.unfollow(user, friend) - end) - :timer.sleep(500) user = User.get_cached_by_id(user.id) - if Enum.empty?(User.get_friends(user)) do - shell_info("Successfully unsubscribed all followers from #{user.nickname}") + if Enum.empty?(Enum.filter(User.get_friends(user), & &1.local)) do + shell_info("Successfully unsubscribed all local followers from #{user.nickname}") end else _ -> @@ -173,7 +175,7 @@ def run(["unsubscribe", nickname]) do end end - def run(["unsubscribe_all_from_instance", instance]) do + def run(["deactivate_all_from_instance", instance]) do start_pleroma() Pleroma.User.Query.build(%{nickname: "@#{instance}"}) @@ -181,7 +183,7 @@ def run(["unsubscribe_all_from_instance", instance]) do |> Stream.each(fn users -> users |> Enum.each(fn user -> - run(["unsubscribe", user.nickname]) + run(["deactivate", user.nickname]) end) end) |> Stream.run() diff --git a/lib/pleroma/activity.ex b/lib/pleroma/activity.ex index 6213d0eb7..c3cea8d2a 100644 --- a/lib/pleroma/activity.ex +++ b/lib/pleroma/activity.ex @@ -24,16 +24,6 @@ defmodule Pleroma.Activity do @primary_key {:id, FlakeId.Ecto.CompatType, autogenerate: true} - # https://github.com/tootsuite/mastodon/blob/master/app/models/notification.rb#L19 - @mastodon_notification_types %{ - "Create" => "mention", - "Follow" => ["follow", "follow_request"], - "Announce" => "reblog", - "Like" => "favourite", - "Move" => "move", - "EmojiReact" => "pleroma:emoji_reaction" - } - schema "activities" do field(:data, :map) field(:local, :boolean, default: true) @@ -41,6 +31,10 @@ defmodule Pleroma.Activity do field(:recipients, {:array, :string}, default: []) field(:thread_muted?, :boolean, virtual: true) + # A field that can be used if you need to join some kind of other + # id to order / paginate this field by + field(:pagination_id, :string, virtual: true) + # This is a fake relation, # do not use outside of with_preloaded_user_actor/with_joined_user_actor has_one(:user_actor, User, on_delete: :nothing, foreign_key: :id) @@ -300,32 +294,6 @@ def follow_accepted?( def follow_accepted?(_), do: false - @spec mastodon_notification_type(Activity.t()) :: String.t() | nil - - for {ap_type, type} <- @mastodon_notification_types, not is_list(type) do - def mastodon_notification_type(%Activity{data: %{"type" => unquote(ap_type)}}), - do: unquote(type) - end - - def mastodon_notification_type(%Activity{data: %{"type" => "Follow"}} = activity) do - if follow_accepted?(activity) do - "follow" - else - "follow_request" - end - end - - def mastodon_notification_type(%Activity{}), do: nil - - @spec from_mastodon_notification_type(String.t()) :: String.t() | nil - @doc "Converts Mastodon notification type to AR activity type" - def from_mastodon_notification_type(type) do - with {k, _v} <- - Enum.find(@mastodon_notification_types, fn {_k, v} -> type in List.wrap(v) end) do - k - end - end - def all_by_actor_and_id(actor, status_ids \\ []) def all_by_actor_and_id(_actor, []), do: [] diff --git a/lib/pleroma/activity/queries.ex b/lib/pleroma/activity/queries.ex index a34c20343..c99aae44b 100644 --- a/lib/pleroma/activity/queries.ex +++ b/lib/pleroma/activity/queries.ex @@ -24,10 +24,7 @@ def by_ap_id(query \\ Activity, ap_id) do @spec by_actor(query, String.t()) :: query def by_actor(query \\ Activity, actor) do - from( - activity in query, - where: fragment("(?)->>'actor' = ?", activity.data, ^actor) - ) + from(a in query, where: a.actor == ^actor) end @spec by_author(query, User.t()) :: query diff --git a/lib/pleroma/application.ex b/lib/pleroma/application.ex index 9d3d92b38..9615af122 100644 --- a/lib/pleroma/application.ex +++ b/lib/pleroma/application.ex @@ -39,7 +39,7 @@ def start(_type, _args) do Pleroma.HTML.compile_scrubbers() Config.DeprecationWarnings.warn() Pleroma.Plugs.HTTPSecurityPlug.warn_if_disabled() - Pleroma.Repo.check_migrations_applied!() + Pleroma.ApplicationRequirements.verify!() setup_instrumenters() load_custom_modules() @@ -148,7 +148,8 @@ defp cachex_children do build_cachex("idempotency", expiration: idempotency_expiration(), limit: 2500), build_cachex("web_resp", limit: 2500), build_cachex("emoji_packs", expiration: emoji_packs_expiration(), limit: 10), - build_cachex("failed_proxy_url", limit: 2500) + build_cachex("failed_proxy_url", limit: 2500), + build_cachex("banned_urls", default_ttl: :timer.hours(24 * 30), limit: 5_000) ] end diff --git a/lib/pleroma/application_requirements.ex b/lib/pleroma/application_requirements.ex new file mode 100644 index 000000000..88575a498 --- /dev/null +++ b/lib/pleroma/application_requirements.ex @@ -0,0 +1,107 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.ApplicationRequirements do + @moduledoc """ + The module represents the collection of validations to runs before start server. + """ + + defmodule VerifyError, do: defexception([:message]) + + import Ecto.Query + + require Logger + + @spec verify!() :: :ok | VerifyError.t() + def verify! do + :ok + |> check_migrations_applied!() + |> check_rum!() + |> handle_result() + end + + defp handle_result(:ok), do: :ok + defp handle_result({:error, message}), do: raise(VerifyError, message: message) + + # Checks for pending migrations. + # + def check_migrations_applied!(:ok) do + unless Pleroma.Config.get( + [:i_am_aware_this_may_cause_data_loss, :disable_migration_check], + false + ) do + {_, res, _} = + Ecto.Migrator.with_repo(Pleroma.Repo, fn repo -> + down_migrations = + Ecto.Migrator.migrations(repo) + |> Enum.reject(fn + {:up, _, _} -> true + {:down, _, _} -> false + end) + + if length(down_migrations) > 0 do + down_migrations_text = + Enum.map(down_migrations, fn {:down, id, name} -> "- #{name} (#{id})\n" end) + + Logger.error( + "The following migrations were not applied:\n#{down_migrations_text}If you want to start Pleroma anyway, set\nconfig :pleroma, :i_am_aware_this_may_cause_data_loss, disable_migration_check: true" + ) + + {:error, "Unapplied Migrations detected"} + else + :ok + end + end) + + res + else + :ok + end + end + + def check_migrations_applied!(result), do: result + + # Checks for settings of RUM indexes. + # + defp check_rum!(:ok) do + {_, res, _} = + Ecto.Migrator.with_repo(Pleroma.Repo, fn repo -> + migrate = + from(o in "columns", + where: o.table_name == "objects", + where: o.column_name == "fts_content" + ) + |> repo.exists?(prefix: "information_schema") + + setting = Pleroma.Config.get([:database, :rum_enabled], false) + + do_check_rum!(setting, migrate) + end) + + res + end + + defp check_rum!(result), do: result + + defp do_check_rum!(setting, migrate) do + case {setting, migrate} do + {true, false} -> + Logger.error( + "Use `RUM` index is enabled, but were not applied migrations for it.\nIf you want to start Pleroma anyway, set\nconfig :pleroma, :database, rum_enabled: false\nOtherwise apply the following migrations:\n`mix ecto.migrate --migrations-path priv/repo/optional_migrations/rum_indexing/`" + ) + + {:error, "Unapplied RUM Migrations detected"} + + {false, true} -> + Logger.error( + "Detected applied migrations to use `RUM` index, but `RUM` isn't enable in settings.\nIf you want to use `RUM`, set\nconfig :pleroma, :database, rum_enabled: true\nOtherwise roll `RUM` migrations back.\n`mix ecto.rollback --migrations-path priv/repo/optional_migrations/rum_indexing/`" + ) + + {:error, "RUM Migrations detected"} + + _ -> + :ok + end + end +end diff --git a/lib/pleroma/bbs/handler.ex b/lib/pleroma/bbs/handler.ex index 12d64c2fe..cd523cf7d 100644 --- a/lib/pleroma/bbs/handler.ex +++ b/lib/pleroma/bbs/handler.ex @@ -92,10 +92,10 @@ def handle_command(state, "home") do params = %{} - |> Map.put("type", ["Create"]) - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("user", user) + |> Map.put(:type, ["Create"]) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:user, user) activities = [user.ap_id | Pleroma.User.following(user)] diff --git a/lib/pleroma/chat.ex b/lib/pleroma/chat.ex new file mode 100644 index 000000000..24a86371e --- /dev/null +++ b/lib/pleroma/chat.ex @@ -0,0 +1,72 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Chat do + use Ecto.Schema + + import Ecto.Changeset + + alias Pleroma.Repo + alias Pleroma.User + + @moduledoc """ + Chat keeps a reference to ChatMessage conversations between a user and an recipient. The recipient can be a user (for now) or a group (not implemented yet). + + It is a helper only, to make it easy to display a list of chats with other people, ordered by last bump. The actual messages are retrieved by querying the recipients of the ChatMessages. + """ + + @primary_key {:id, FlakeId.Ecto.CompatType, autogenerate: true} + + schema "chats" do + belongs_to(:user, User, type: FlakeId.Ecto.CompatType) + field(:recipient, :string) + + timestamps() + end + + def changeset(struct, params) do + struct + |> cast(params, [:user_id, :recipient]) + |> validate_change(:recipient, fn + :recipient, recipient -> + case User.get_cached_by_ap_id(recipient) do + nil -> [recipient: "must be an existing user"] + _ -> [] + end + end) + |> validate_required([:user_id, :recipient]) + |> unique_constraint(:user_id, name: :chats_user_id_recipient_index) + end + + def get_by_id(id) do + __MODULE__ + |> Repo.get(id) + end + + def get(user_id, recipient) do + __MODULE__ + |> Repo.get_by(user_id: user_id, recipient: recipient) + end + + def get_or_create(user_id, recipient) do + %__MODULE__{} + |> changeset(%{user_id: user_id, recipient: recipient}) + |> Repo.insert( + # Need to set something, otherwise we get nothing back at all + on_conflict: [set: [recipient: recipient]], + returning: true, + conflict_target: [:user_id, :recipient] + ) + end + + def bump_or_create(user_id, recipient) do + %__MODULE__{} + |> changeset(%{user_id: user_id, recipient: recipient}) + |> Repo.insert( + on_conflict: [set: [updated_at: NaiveDateTime.utc_now()]], + returning: true, + conflict_target: [:user_id, :recipient] + ) + end +end diff --git a/lib/pleroma/chat/message_reference.ex b/lib/pleroma/chat/message_reference.ex new file mode 100644 index 000000000..131ae0186 --- /dev/null +++ b/lib/pleroma/chat/message_reference.ex @@ -0,0 +1,117 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Chat.MessageReference do + @moduledoc """ + A reference that builds a relation between an AP chat message that a user can see and whether it has been seen + by them, or should be displayed to them. Used to build the chat view that is presented to the user. + """ + + use Ecto.Schema + + alias Pleroma.Chat + alias Pleroma.Object + alias Pleroma.Repo + + import Ecto.Changeset + import Ecto.Query + + @primary_key {:id, FlakeId.Ecto.Type, autogenerate: true} + + schema "chat_message_references" do + belongs_to(:object, Object) + belongs_to(:chat, Chat, type: FlakeId.Ecto.CompatType) + + field(:unread, :boolean, default: true) + + timestamps() + end + + def changeset(struct, params) do + struct + |> cast(params, [:object_id, :chat_id, :unread]) + |> validate_required([:object_id, :chat_id, :unread]) + end + + def get_by_id(id) do + __MODULE__ + |> Repo.get(id) + |> Repo.preload(:object) + end + + def delete(cm_ref) do + cm_ref + |> Repo.delete() + end + + def delete_for_object(%{id: object_id}) do + from(cr in __MODULE__, + where: cr.object_id == ^object_id + ) + |> Repo.delete_all() + end + + def for_chat_and_object(%{id: chat_id}, %{id: object_id}) do + __MODULE__ + |> Repo.get_by(chat_id: chat_id, object_id: object_id) + |> Repo.preload(:object) + end + + def for_chat_query(chat) do + from(cr in __MODULE__, + where: cr.chat_id == ^chat.id, + order_by: [desc: :id], + preload: [:object] + ) + end + + def last_message_for_chat(chat) do + chat + |> for_chat_query() + |> limit(1) + |> Repo.one() + end + + def create(chat, object, unread) do + params = %{ + chat_id: chat.id, + object_id: object.id, + unread: unread + } + + %__MODULE__{} + |> changeset(params) + |> Repo.insert() + end + + def unread_count_for_chat(chat) do + chat + |> for_chat_query() + |> where([cmr], cmr.unread == true) + |> Repo.aggregate(:count) + end + + def mark_as_read(cm_ref) do + cm_ref + |> changeset(%{unread: false}) + |> Repo.update() + end + + def set_all_seen_for_chat(chat, last_read_id \\ nil) do + query = + chat + |> for_chat_query() + |> exclude(:order_by) + |> exclude(:preload) + |> where([cmr], cmr.unread == true) + + if last_read_id do + query + |> where([cmr], cmr.id <= ^last_read_id) + else + query + end + |> Repo.update_all(set: [unread: false]) + end +end diff --git a/lib/pleroma/config/config_db.ex b/lib/pleroma/config/config_db.ex index 2b43d4c36..1a89d8895 100644 --- a/lib/pleroma/config/config_db.ex +++ b/lib/pleroma/config/config_db.ex @@ -6,7 +6,7 @@ defmodule Pleroma.ConfigDB do use Ecto.Schema import Ecto.Changeset - import Ecto.Query + import Ecto.Query, only: [select: 3] import Pleroma.Web.Gettext alias __MODULE__ @@ -14,16 +14,6 @@ defmodule Pleroma.ConfigDB do @type t :: %__MODULE__{} - @full_key_update [ - {:pleroma, :ecto_repos}, - {:quack, :meta}, - {:mime, :types}, - {:cors_plug, [:max_age, :methods, :expose, :headers]}, - {:auto_linker, :opts}, - {:swarm, :node_blacklist}, - {:logger, :backends} - ] - @full_subkey_update [ {:pleroma, :assets, :mascots}, {:pleroma, :emoji, :groups}, @@ -32,14 +22,10 @@ defmodule Pleroma.ConfigDB do {:pleroma, :mrf_keyword, :replace} ] - @regex ~r/^~r(?'delimiter'[\/|"'([{<]{1})(?'pattern'.+)[\/|"')\]}>]{1}(?'modifier'[uismxfU]*)/u - - @delimiters ["/", "|", "\"", "'", {"(", ")"}, {"[", "]"}, {"{", "}"}, {"<", ">"}] - schema "config" do - field(:key, :string) - field(:group, :string) - field(:value, :binary) + field(:key, Pleroma.EctoType.Config.Atom) + field(:group, Pleroma.EctoType.Config.Atom) + field(:value, Pleroma.EctoType.Config.BinaryValue) field(:db, {:array, :string}, virtual: true, default: []) timestamps() @@ -51,10 +37,6 @@ def get_all_as_keyword do |> select([c], {c.group, c.key, c.value}) |> Repo.all() |> Enum.reduce([], fn {group, key, value}, acc -> - group = ConfigDB.from_string(group) - key = ConfigDB.from_string(key) - value = from_binary(value) - Keyword.update(acc, group, [{key, value}], &Keyword.merge(&1, [{key, value}])) end) end @@ -64,50 +46,41 @@ def get_by_params(params), do: Repo.get_by(ConfigDB, params) @spec changeset(ConfigDB.t(), map()) :: Changeset.t() def changeset(config, params \\ %{}) do - params = Map.put(params, :value, transform(params[:value])) - config |> cast(params, [:key, :group, :value]) |> validate_required([:key, :group, :value]) |> unique_constraint(:key, name: :config_group_key_index) end - @spec create(map()) :: {:ok, ConfigDB.t()} | {:error, Changeset.t()} - def create(params) do + defp create(params) do %ConfigDB{} |> changeset(params) |> Repo.insert() end - @spec update(ConfigDB.t(), map()) :: {:ok, ConfigDB.t()} | {:error, Changeset.t()} - def update(%ConfigDB{} = config, %{value: value}) do + defp update(%ConfigDB{} = config, %{value: value}) do config |> changeset(%{value: value}) |> Repo.update() end - @spec get_db_keys(ConfigDB.t()) :: [String.t()] - def get_db_keys(%ConfigDB{} = config) do - config.value - |> ConfigDB.from_binary() - |> get_db_keys(config.key) - end - @spec get_db_keys(keyword(), any()) :: [String.t()] def get_db_keys(value, key) do - if Keyword.keyword?(value) do - value |> Keyword.keys() |> Enum.map(&convert(&1)) - else - [convert(key)] - end + keys = + if Keyword.keyword?(value) do + Keyword.keys(value) + else + [key] + end + + Enum.map(keys, &to_json_types(&1)) end @spec merge_group(atom(), atom(), keyword(), keyword()) :: keyword() def merge_group(group, key, old_value, new_value) do - new_keys = to_map_set(new_value) + new_keys = to_mapset(new_value) - intersect_keys = - old_value |> to_map_set() |> MapSet.intersection(new_keys) |> MapSet.to_list() + intersect_keys = old_value |> to_mapset() |> MapSet.intersection(new_keys) |> MapSet.to_list() merged_value = ConfigDB.merge(old_value, new_value) @@ -120,12 +93,10 @@ def merge_group(group, key, old_value, new_value) do [] end) |> List.flatten() - |> Enum.reduce(merged_value, fn subkey, acc -> - Keyword.put(acc, subkey, new_value[subkey]) - end) + |> Enum.reduce(merged_value, &Keyword.put(&2, &1, new_value[&1])) end - defp to_map_set(keyword) do + defp to_mapset(keyword) do keyword |> Keyword.keys() |> MapSet.new() @@ -159,57 +130,55 @@ defp deep_merge(_key, value1, value2) do @spec update_or_create(map()) :: {:ok, ConfigDB.t()} | {:error, Changeset.t()} def update_or_create(params) do + params = Map.put(params, :value, to_elixir_types(params[:value])) search_opts = Map.take(params, [:group, :key]) with %ConfigDB{} = config <- ConfigDB.get_by_params(search_opts), - {:partial_update, true, config} <- - {:partial_update, can_be_partially_updated?(config), config}, - old_value <- from_binary(config.value), - transformed_value <- do_transform(params[:value]), - {:can_be_merged, true, config} <- {:can_be_merged, is_list(transformed_value), config}, - new_value <- - merge_group( - ConfigDB.from_string(config.group), - ConfigDB.from_string(config.key), - old_value, - transformed_value - ) do - ConfigDB.update(config, %{value: new_value}) + {_, true, config} <- {:partial_update, can_be_partially_updated?(config), config}, + {_, true, config} <- + {:can_be_merged, is_list(params[:value]) and is_list(config.value), config} do + new_value = merge_group(config.group, config.key, config.value, params[:value]) + update(config, %{value: new_value}) else {reason, false, config} when reason in [:partial_update, :can_be_merged] -> - ConfigDB.update(config, params) + update(config, params) nil -> - ConfigDB.create(params) + create(params) end end defp can_be_partially_updated?(%ConfigDB{} = config), do: not only_full_update?(config) - defp only_full_update?(%ConfigDB{} = config) do - config_group = ConfigDB.from_string(config.group) - config_key = ConfigDB.from_string(config.key) + defp only_full_update?(%ConfigDB{group: group, key: key}) do + full_key_update = [ + {:pleroma, :ecto_repos}, + {:quack, :meta}, + {:mime, :types}, + {:cors_plug, [:max_age, :methods, :expose, :headers]}, + {:auto_linker, :opts}, + {:swarm, :node_blacklist}, + {:logger, :backends} + ] - Enum.any?(@full_key_update, fn - {group, key} when is_list(key) -> - config_group == group and config_key in key - - {group, key} -> - config_group == group and config_key == key + Enum.any?(full_key_update, fn + {s_group, s_key} -> + group == s_group and ((is_list(s_key) and key in s_key) or key == s_key) end) end - @spec delete(map()) :: {:ok, ConfigDB.t()} | {:error, Changeset.t()} + @spec delete(ConfigDB.t() | map()) :: {:ok, ConfigDB.t()} | {:error, Changeset.t()} + def delete(%ConfigDB{} = config), do: Repo.delete(config) + def delete(params) do search_opts = Map.delete(params, :subkeys) with %ConfigDB{} = config <- ConfigDB.get_by_params(search_opts), {config, sub_keys} when is_list(sub_keys) <- {config, params[:subkeys]}, - old_value <- from_binary(config.value), - keys <- Enum.map(sub_keys, &do_transform_string(&1)), - {:partial_remove, config, new_value} when new_value != [] <- - {:partial_remove, config, Keyword.drop(old_value, keys)} do - ConfigDB.update(config, %{value: new_value}) + keys <- Enum.map(sub_keys, &string_to_elixir_types(&1)), + {_, config, new_value} when new_value != [] <- + {:partial_remove, config, Keyword.drop(config.value, keys)} do + update(config, %{value: new_value}) else {:partial_remove, config, []} -> Repo.delete(config) @@ -225,37 +194,32 @@ def delete(params) do end end - @spec from_binary(binary()) :: term() - def from_binary(binary), do: :erlang.binary_to_term(binary) - - @spec from_binary_with_convert(binary()) :: any() - def from_binary_with_convert(binary) do - binary - |> from_binary() - |> do_convert() + @spec to_json_types(term()) :: map() | list() | boolean() | String.t() + def to_json_types(entity) when is_list(entity) do + Enum.map(entity, &to_json_types/1) end - @spec from_string(String.t()) :: atom() | no_return() - def from_string(string), do: do_transform_string(string) + def to_json_types(%Regex{} = entity), do: inspect(entity) - @spec convert(any()) :: any() - def convert(entity), do: do_convert(entity) - - defp do_convert(entity) when is_list(entity) do - for v <- entity, into: [], do: do_convert(v) + def to_json_types(entity) when is_map(entity) do + Map.new(entity, fn {k, v} -> {to_json_types(k), to_json_types(v)} end) end - defp do_convert(%Regex{} = entity), do: inspect(entity) + def to_json_types({:args, args}) when is_list(args) do + arguments = + Enum.map(args, fn + arg when is_tuple(arg) -> inspect(arg) + arg -> to_json_types(arg) + end) - defp do_convert(entity) when is_map(entity) do - for {k, v} <- entity, into: %{}, do: {do_convert(k), do_convert(v)} + %{"tuple" => [":args", arguments]} end - defp do_convert({:proxy_url, {type, :localhost, port}}) do - %{"tuple" => [":proxy_url", %{"tuple" => [do_convert(type), "localhost", port]}]} + def to_json_types({:proxy_url, {type, :localhost, port}}) do + %{"tuple" => [":proxy_url", %{"tuple" => [to_json_types(type), "localhost", port]}]} end - defp do_convert({:proxy_url, {type, host, port}}) when is_tuple(host) do + def to_json_types({:proxy_url, {type, host, port}}) when is_tuple(host) do ip = host |> :inet_parse.ntoa() @@ -264,66 +228,64 @@ defp do_convert({:proxy_url, {type, host, port}}) when is_tuple(host) do %{ "tuple" => [ ":proxy_url", - %{"tuple" => [do_convert(type), ip, port]} + %{"tuple" => [to_json_types(type), ip, port]} ] } end - defp do_convert({:proxy_url, {type, host, port}}) do + def to_json_types({:proxy_url, {type, host, port}}) do %{ "tuple" => [ ":proxy_url", - %{"tuple" => [do_convert(type), to_string(host), port]} + %{"tuple" => [to_json_types(type), to_string(host), port]} ] } end - defp do_convert({:partial_chain, entity}), do: %{"tuple" => [":partial_chain", inspect(entity)]} + def to_json_types({:partial_chain, entity}), + do: %{"tuple" => [":partial_chain", inspect(entity)]} - defp do_convert(entity) when is_tuple(entity) do + def to_json_types(entity) when is_tuple(entity) do value = entity |> Tuple.to_list() - |> do_convert() + |> to_json_types() %{"tuple" => value} end - defp do_convert(entity) when is_boolean(entity) or is_number(entity) or is_nil(entity) do + def to_json_types(entity) when is_binary(entity), do: entity + + def to_json_types(entity) when is_boolean(entity) or is_number(entity) or is_nil(entity) do entity end - defp do_convert(entity) - when is_atom(entity) and entity in [:"tlsv1.1", :"tlsv1.2", :"tlsv1.3"] do + def to_json_types(entity) when entity in [:"tlsv1.1", :"tlsv1.2", :"tlsv1.3"] do ":#{entity}" end - defp do_convert(entity) when is_atom(entity), do: inspect(entity) + def to_json_types(entity) when is_atom(entity), do: inspect(entity) - defp do_convert(entity) when is_binary(entity), do: entity + @spec to_elixir_types(boolean() | String.t() | map() | list()) :: term() + def to_elixir_types(%{"tuple" => [":args", args]}) when is_list(args) do + arguments = + Enum.map(args, fn arg -> + if String.contains?(arg, ["{", "}"]) do + {elem, []} = Code.eval_string(arg) + elem + else + to_elixir_types(arg) + end + end) - @spec transform(any()) :: binary() | no_return() - def transform(entity) when is_binary(entity) or is_map(entity) or is_list(entity) do - entity - |> do_transform() - |> to_binary() + {:args, arguments} end - def transform(entity), do: to_binary(entity) - - @spec transform_with_out_binary(any()) :: any() - def transform_with_out_binary(entity), do: do_transform(entity) - - @spec to_binary(any()) :: binary() - def to_binary(entity), do: :erlang.term_to_binary(entity) - - defp do_transform(%Regex{} = entity), do: entity - - defp do_transform(%{"tuple" => [":proxy_url", %{"tuple" => [type, host, port]}]}) do - {:proxy_url, {do_transform_string(type), parse_host(host), port}} + def to_elixir_types(%{"tuple" => [":proxy_url", %{"tuple" => [type, host, port]}]}) do + {:proxy_url, {string_to_elixir_types(type), parse_host(host), port}} end - defp do_transform(%{"tuple" => [":partial_chain", entity]}) do + def to_elixir_types(%{"tuple" => [":partial_chain", entity]}) do {partial_chain, []} = entity |> String.replace(~r/[^\w|^{:,[|^,|^[|^\]^}|^\/|^\.|^"]^\s/, "") @@ -332,25 +294,51 @@ defp do_transform(%{"tuple" => [":partial_chain", entity]}) do {:partial_chain, partial_chain} end - defp do_transform(%{"tuple" => entity}) do - Enum.reduce(entity, {}, fn val, acc -> Tuple.append(acc, do_transform(val)) end) + def to_elixir_types(%{"tuple" => entity}) do + Enum.reduce(entity, {}, &Tuple.append(&2, to_elixir_types(&1))) end - defp do_transform(entity) when is_map(entity) do - for {k, v} <- entity, into: %{}, do: {do_transform(k), do_transform(v)} + def to_elixir_types(entity) when is_map(entity) do + Map.new(entity, fn {k, v} -> {to_elixir_types(k), to_elixir_types(v)} end) end - defp do_transform(entity) when is_list(entity) do - for v <- entity, into: [], do: do_transform(v) + def to_elixir_types(entity) when is_list(entity) do + Enum.map(entity, &to_elixir_types/1) end - defp do_transform(entity) when is_binary(entity) do + def to_elixir_types(entity) when is_binary(entity) do entity |> String.trim() - |> do_transform_string() + |> string_to_elixir_types() end - defp do_transform(entity), do: entity + def to_elixir_types(entity), do: entity + + @spec string_to_elixir_types(String.t()) :: + atom() | Regex.t() | module() | String.t() | no_return() + def string_to_elixir_types("~r" <> _pattern = regex) do + pattern = + ~r/^~r(?'delimiter'[\/|"'([{<]{1})(?'pattern'.+)[\/|"')\]}>]{1}(?'modifier'[uismxfU]*)/u + + delimiters = ["/", "|", "\"", "'", {"(", ")"}, {"[", "]"}, {"{", "}"}, {"<", ">"}] + + with %{"modifier" => modifier, "pattern" => pattern, "delimiter" => regex_delimiter} <- + Regex.named_captures(pattern, regex), + {:ok, {leading, closing}} <- find_valid_delimiter(delimiters, pattern, regex_delimiter), + {result, _} <- Code.eval_string("~r#{leading}#{pattern}#{closing}#{modifier}") do + result + end + end + + def string_to_elixir_types(":" <> atom), do: String.to_atom(atom) + + def string_to_elixir_types(value) do + if module_name?(value) do + String.to_existing_atom("Elixir." <> value) + else + value + end + end defp parse_host("localhost"), do: :localhost @@ -387,27 +375,8 @@ defp find_valid_delimiter([delimiter | others], pattern, regex_delimiter) do end end - defp do_transform_string("~r" <> _pattern = regex) do - with %{"modifier" => modifier, "pattern" => pattern, "delimiter" => regex_delimiter} <- - Regex.named_captures(@regex, regex), - {:ok, {leading, closing}} <- find_valid_delimiter(@delimiters, pattern, regex_delimiter), - {result, _} <- Code.eval_string("~r#{leading}#{pattern}#{closing}#{modifier}") do - result - end - end - - defp do_transform_string(":" <> atom), do: String.to_atom(atom) - - defp do_transform_string(value) do - if is_module_name?(value) do - String.to_existing_atom("Elixir." <> value) - else - value - end - end - - @spec is_module_name?(String.t()) :: boolean() - def is_module_name?(string) do + @spec module_name?(String.t()) :: boolean() + def module_name?(string) do Regex.match?(~r/^(Pleroma|Phoenix|Tesla|Quack|Ueberauth|Swoosh)\./, string) or string in ["Oban", "Ueberauth", "ExSyslogger"] end diff --git a/lib/pleroma/config/deprecation_warnings.ex b/lib/pleroma/config/deprecation_warnings.ex index c39a8984b..0a6c724fb 100644 --- a/lib/pleroma/config/deprecation_warnings.ex +++ b/lib/pleroma/config/deprecation_warnings.ex @@ -3,10 +3,25 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Config.DeprecationWarnings do + alias Pleroma.Config + require Logger + alias Pleroma.Config + + @type config_namespace() :: [atom()] + @type config_map() :: {config_namespace(), config_namespace(), String.t()} + + @mrf_config_map [ + {[:instance, :rewrite_policy], [:mrf, :policies], + "\n* `config :pleroma, :instance, rewrite_policy` is now `config :pleroma, :mrf, policies`"}, + {[:instance, :mrf_transparency], [:mrf, :transparency], + "\n* `config :pleroma, :instance, mrf_transparency` is now `config :pleroma, :mrf, transparency`"}, + {[:instance, :mrf_transparency_exclusions], [:mrf, :transparency_exclusions], + "\n* `config :pleroma, :instance, mrf_transparency_exclusions` is now `config :pleroma, :mrf, transparency_exclusions`"} + ] def check_hellthread_threshold do - if Pleroma.Config.get([:mrf_hellthread, :threshold]) do + if Config.get([:mrf_hellthread, :threshold]) do Logger.warn(""" !!!DEPRECATION WARNING!!! You are using the old configuration mechanism for the hellthread filter. Please check config.md. @@ -14,7 +29,59 @@ def check_hellthread_threshold do end end + def mrf_user_allowlist do + config = Config.get(:mrf_user_allowlist) + + if config && Enum.any?(config, fn {k, _} -> is_atom(k) end) do + rewritten = + Enum.reduce(Config.get(:mrf_user_allowlist), Map.new(), fn {k, v}, acc -> + Map.put(acc, to_string(k), v) + end) + + Config.put(:mrf_user_allowlist, rewritten) + + Logger.error(""" + !!!DEPRECATION WARNING!!! + As of Pleroma 2.0.7, the `mrf_user_allowlist` setting changed of format. + Pleroma 2.1 will remove support for the old format. Please change your configuration to match this: + + config :pleroma, :mrf_user_allowlist, #{inspect(rewritten, pretty: true)} + """) + end + end + def warn do check_hellthread_threshold() + mrf_user_allowlist() + check_old_mrf_config() + end + + def check_old_mrf_config do + warning_preface = """ + !!!DEPRECATION WARNING!!! + Your config is using old namespaces for MRF configuration. They should work for now, but you are advised to change to new namespaces to prevent possible issues later: + """ + + move_namespace_and_warn(@mrf_config_map, warning_preface) + end + + @spec move_namespace_and_warn([config_map()], String.t()) :: :ok + def move_namespace_and_warn(config_map, warning_preface) do + warning = + Enum.reduce(config_map, "", fn + {old, new, err_msg}, acc -> + old_config = Config.get(old) + + if old_config do + Config.put(new, old_config) + acc <> err_msg + else + acc + end + end) + + if warning != "" do + Logger.warn(warning_preface <> warning) + end end end diff --git a/lib/pleroma/config/transfer_task.ex b/lib/pleroma/config/transfer_task.ex index c02b70e96..eb86b8ff4 100644 --- a/lib/pleroma/config/transfer_task.ex +++ b/lib/pleroma/config/transfer_task.ex @@ -28,10 +28,6 @@ defmodule Pleroma.Config.TransferTask do {:pleroma, Pleroma.Captcha, [:seconds_valid]}, {:pleroma, Pleroma.Upload, [:proxy_remote]}, {:pleroma, :instance, [:upload_limit]}, - {:pleroma, :email_notifications, [:digest]}, - {:pleroma, :oauth2, [:clean_expired_tokens]}, - {:pleroma, Pleroma.ActivityExpiration, [:enabled]}, - {:pleroma, Pleroma.ScheduledActivity, [:enabled]}, {:pleroma, :gopher, [:enabled]} ] @@ -48,7 +44,7 @@ def load_and_update_env(deleted_settings \\ [], restart_pleroma? \\ true) do {logger, other} = (Repo.all(ConfigDB) ++ deleted_settings) - |> Enum.map(&transform_and_merge/1) + |> Enum.map(&merge_with_default/1) |> Enum.split_with(fn {group, _, _, _} -> group in [:logger, :quack] end) logger @@ -92,11 +88,7 @@ defp maybe_set_pleroma_last(apps) do end end - defp transform_and_merge(%{group: group, key: key, value: value} = setting) do - group = ConfigDB.from_string(group) - key = ConfigDB.from_string(key) - value = ConfigDB.from_binary(value) - + defp merge_with_default(%{group: group, key: key, value: value} = setting) do default = Config.Holder.default_config(group, key) merged = diff --git a/lib/pleroma/constants.ex b/lib/pleroma/constants.ex index 06174f624..13eeaa96b 100644 --- a/lib/pleroma/constants.ex +++ b/lib/pleroma/constants.ex @@ -24,6 +24,6 @@ defmodule Pleroma.Constants do const(static_only_files, do: - ~w(index.html robots.txt static static-fe finmoji emoji packs sounds images instance sw.js sw-pleroma.js favicon.png schemas doc) + ~w(index.html robots.txt static static-fe finmoji emoji packs sounds images instance sw.js sw-pleroma.js favicon.png schemas doc embed.js embed.css) ) end diff --git a/lib/pleroma/conversation.ex b/lib/pleroma/conversation.ex index 37d455cfc..e76eb0087 100644 --- a/lib/pleroma/conversation.ex +++ b/lib/pleroma/conversation.ex @@ -63,7 +63,7 @@ def create_or_bump_for(activity, opts \\ []) do ap_id when is_binary(ap_id) and byte_size(ap_id) > 0 <- object.data["context"] do {:ok, conversation} = create_for_ap_id(ap_id) - users = User.get_users_from_set(activity.recipients, false) + users = User.get_users_from_set(activity.recipients, local_only: false) participations = Enum.map(users, fn user -> diff --git a/lib/pleroma/conversation/participation.ex b/lib/pleroma/conversation/participation.ex index 51bb1bda9..8bc3e85d6 100644 --- a/lib/pleroma/conversation/participation.ex +++ b/lib/pleroma/conversation/participation.ex @@ -162,10 +162,13 @@ def for_user_with_last_activity_id(user, params \\ %{}) do for_user(user, params) |> Enum.map(fn participation -> activity_id = - ActivityPub.fetch_latest_activity_id_for_context(participation.conversation.ap_id, %{ - "user" => user, - "blocking_user" => user - }) + ActivityPub.fetch_latest_direct_activity_id_for_context( + participation.conversation.ap_id, + %{ + user: user, + blocking_user: user + } + ) %{ participation diff --git a/lib/pleroma/counter_cache.ex b/lib/pleroma/counter_cache.ex index 4d348a413..ebd1f603d 100644 --- a/lib/pleroma/counter_cache.ex +++ b/lib/pleroma/counter_cache.ex @@ -10,32 +10,70 @@ defmodule Pleroma.CounterCache do import Ecto.Query schema "counter_cache" do - field(:name, :string) - field(:count, :integer) + field(:instance, :string) + field(:public, :integer) + field(:unlisted, :integer) + field(:private, :integer) + field(:direct, :integer) end def changeset(struct, params) do struct - |> cast(params, [:name, :count]) - |> validate_required([:name]) - |> unique_constraint(:name) + |> cast(params, [:instance, :public, :unlisted, :private, :direct]) + |> validate_required([:instance]) + |> unique_constraint(:instance) end - def get_as_map(names) when is_list(names) do + def get_by_instance(instance) do CounterCache - |> where([cc], cc.name in ^names) - |> Repo.all() - |> Enum.group_by(& &1.name, & &1.count) - |> Map.new(fn {k, v} -> {k, hd(v)} end) + |> select([c], %{ + "public" => c.public, + "unlisted" => c.unlisted, + "private" => c.private, + "direct" => c.direct + }) + |> where([c], c.instance == ^instance) + |> Repo.one() + |> case do + nil -> %{"public" => 0, "unlisted" => 0, "private" => 0, "direct" => 0} + val -> val + end end - def set(name, count) do + def get_sum do + CounterCache + |> select([c], %{ + "public" => type(sum(c.public), :integer), + "unlisted" => type(sum(c.unlisted), :integer), + "private" => type(sum(c.private), :integer), + "direct" => type(sum(c.direct), :integer) + }) + |> Repo.one() + end + + def set(instance, values) do + params = + Enum.reduce( + ["public", "private", "unlisted", "direct"], + %{"instance" => instance}, + fn param, acc -> + Map.put_new(acc, param, Map.get(values, param, 0)) + end + ) + %CounterCache{} - |> changeset(%{"name" => name, "count" => count}) + |> changeset(params) |> Repo.insert( - on_conflict: [set: [count: count]], + on_conflict: [ + set: [ + public: params["public"], + private: params["private"], + unlisted: params["unlisted"], + direct: params["direct"] + ] + ], returning: true, - conflict_target: :name + conflict_target: :instance ) end end diff --git a/lib/pleroma/web/activity_pub/object_validators/types/date_time.ex b/lib/pleroma/ecto_type/activity_pub/object_validators/date_time.ex similarity index 77% rename from lib/pleroma/web/activity_pub/object_validators/types/date_time.ex rename to lib/pleroma/ecto_type/activity_pub/object_validators/date_time.ex index 4f412fcde..d852c0abd 100644 --- a/lib/pleroma/web/activity_pub/object_validators/types/date_time.ex +++ b/lib/pleroma/ecto_type/activity_pub/object_validators/date_time.ex @@ -1,4 +1,8 @@ -defmodule Pleroma.Web.ActivityPub.ObjectValidators.Types.DateTime do +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.DateTime do @moduledoc """ The AP standard defines the date fields in AP as xsd:DateTime. Elixir's DateTime can't parse this, but it can parse the related iso8601. This diff --git a/lib/pleroma/web/activity_pub/object_validators/types/object_id.ex b/lib/pleroma/ecto_type/activity_pub/object_validators/object_id.ex similarity index 69% rename from lib/pleroma/web/activity_pub/object_validators/types/object_id.ex rename to lib/pleroma/ecto_type/activity_pub/object_validators/object_id.ex index f71f76370..8034235b0 100644 --- a/lib/pleroma/web/activity_pub/object_validators/types/object_id.ex +++ b/lib/pleroma/ecto_type/activity_pub/object_validators/object_id.ex @@ -1,4 +1,8 @@ -defmodule Pleroma.Web.ActivityPub.ObjectValidators.Types.ObjectID do +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.ObjectID do use Ecto.Type def type, do: :string diff --git a/lib/pleroma/ecto_type/activity_pub/object_validators/recipients.ex b/lib/pleroma/ecto_type/activity_pub/object_validators/recipients.ex new file mode 100644 index 000000000..205527a96 --- /dev/null +++ b/lib/pleroma/ecto_type/activity_pub/object_validators/recipients.ex @@ -0,0 +1,40 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.Recipients do + use Ecto.Type + + alias Pleroma.EctoType.ActivityPub.ObjectValidators.ObjectID + + def type, do: {:array, ObjectID} + + def cast(object) when is_binary(object) do + cast([object]) + end + + def cast(data) when is_list(data) do + data + |> Enum.reduce_while({:ok, []}, fn element, {:ok, list} -> + case ObjectID.cast(element) do + {:ok, id} -> + {:cont, {:ok, [id | list]}} + + _ -> + {:halt, :error} + end + end) + end + + def cast(_) do + :error + end + + def dump(data) do + {:ok, data} + end + + def load(data) do + {:ok, data} + end +end diff --git a/lib/pleroma/ecto_type/activity_pub/object_validators/safe_text.ex b/lib/pleroma/ecto_type/activity_pub/object_validators/safe_text.ex new file mode 100644 index 000000000..7f0405c7b --- /dev/null +++ b/lib/pleroma/ecto_type/activity_pub/object_validators/safe_text.ex @@ -0,0 +1,25 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.SafeText do + use Ecto.Type + + alias Pleroma.HTML + + def type, do: :string + + def cast(str) when is_binary(str) do + {:ok, HTML.filter_tags(str)} + end + + def cast(_), do: :error + + def dump(data) do + {:ok, data} + end + + def load(data) do + {:ok, data} + end +end diff --git a/lib/pleroma/web/activity_pub/object_validators/types/uri.ex b/lib/pleroma/ecto_type/activity_pub/object_validators/uri.ex similarity index 63% rename from lib/pleroma/web/activity_pub/object_validators/types/uri.ex rename to lib/pleroma/ecto_type/activity_pub/object_validators/uri.ex index 24845bcc0..2054c26be 100644 --- a/lib/pleroma/web/activity_pub/object_validators/types/uri.ex +++ b/lib/pleroma/ecto_type/activity_pub/object_validators/uri.ex @@ -1,4 +1,8 @@ -defmodule Pleroma.Web.ActivityPub.ObjectValidators.Types.Uri do +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.Uri do use Ecto.Type def type, do: :string diff --git a/lib/pleroma/ecto_type/config/atom.ex b/lib/pleroma/ecto_type/config/atom.ex new file mode 100644 index 000000000..df565d432 --- /dev/null +++ b/lib/pleroma/ecto_type/config/atom.ex @@ -0,0 +1,26 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.EctoType.Config.Atom do + use Ecto.Type + + def type, do: :atom + + def cast(key) when is_atom(key) do + {:ok, key} + end + + def cast(key) when is_binary(key) do + {:ok, Pleroma.ConfigDB.string_to_elixir_types(key)} + end + + def cast(_), do: :error + + def load(key) do + {:ok, Pleroma.ConfigDB.string_to_elixir_types(key)} + end + + def dump(key) when is_atom(key), do: {:ok, inspect(key)} + def dump(_), do: :error +end diff --git a/lib/pleroma/ecto_type/config/binary_value.ex b/lib/pleroma/ecto_type/config/binary_value.ex new file mode 100644 index 000000000..bbd2608c5 --- /dev/null +++ b/lib/pleroma/ecto_type/config/binary_value.ex @@ -0,0 +1,27 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.EctoType.Config.BinaryValue do + use Ecto.Type + + def type, do: :term + + def cast(value) when is_binary(value) do + if String.valid?(value) do + {:ok, value} + else + {:ok, :erlang.binary_to_term(value)} + end + end + + def cast(value), do: {:ok, value} + + def load(value) when is_binary(value) do + {:ok, :erlang.binary_to_term(value)} + end + + def dump(value) do + {:ok, :erlang.term_to_binary(value)} + end +end diff --git a/lib/pleroma/emails/new_users_digest_email.ex b/lib/pleroma/emails/new_users_digest_email.ex index 7d16b807f..348cbac9c 100644 --- a/lib/pleroma/emails/new_users_digest_email.ex +++ b/lib/pleroma/emails/new_users_digest_email.ex @@ -14,8 +14,10 @@ def new_users(to, users_and_statuses) do styling = Pleroma.Config.get([Pleroma.Emails.UserEmail, :styling]) logo_url = - Pleroma.Web.Endpoint.url() <> - Pleroma.Config.get([:frontend_configurations, :pleroma_fe, :logo]) + Pleroma.Helpers.UriHelper.maybe_add_base( + Pleroma.Config.get([:frontend_configurations, :pleroma_fe, :logo]), + Pleroma.Web.Endpoint.url() + ) new() |> to({to.name, to.email}) diff --git a/lib/pleroma/emoji/pack.ex b/lib/pleroma/emoji/pack.ex index 242344374..d076ae312 100644 --- a/lib/pleroma/emoji/pack.ex +++ b/lib/pleroma/emoji/pack.ex @@ -1,6 +1,7 @@ defmodule Pleroma.Emoji.Pack do - @derive {Jason.Encoder, only: [:files, :pack]} + @derive {Jason.Encoder, only: [:files, :pack, :files_count]} defstruct files: %{}, + files_count: 0, pack_file: nil, path: nil, pack: %{}, @@ -8,6 +9,7 @@ defmodule Pleroma.Emoji.Pack do @type t() :: %__MODULE__{ files: %{String.t() => Path.t()}, + files_count: non_neg_integer(), pack_file: Path.t(), path: Path.t(), pack: map(), @@ -16,162 +18,96 @@ defmodule Pleroma.Emoji.Pack do alias Pleroma.Emoji - @spec emoji_path() :: Path.t() - def emoji_path do - static = Pleroma.Config.get!([:instance, :static_dir]) - Path.join(static, "emoji") - end - - @spec create(String.t()) :: :ok | {:error, File.posix()} | {:error, :empty_values} - def create(name) when byte_size(name) > 0 do - dir = Path.join(emoji_path(), name) - - with :ok <- File.mkdir(dir) do - %__MODULE__{ - pack_file: Path.join(dir, "pack.json") - } + @spec create(String.t()) :: {:ok, t()} | {:error, File.posix()} | {:error, :empty_values} + def create(name) do + with :ok <- validate_not_empty([name]), + dir <- Path.join(emoji_path(), name), + :ok <- File.mkdir(dir) do + %__MODULE__{pack_file: Path.join(dir, "pack.json")} |> save_pack() end end - def create(_), do: {:error, :empty_values} + defp paginate(entities, 1, page_size), do: Enum.take(entities, page_size) - @spec show(String.t()) :: {:ok, t()} | {:loaded, nil} | {:error, :empty_values} - def show(name) when byte_size(name) > 0 do - with {_, %__MODULE__{} = pack} <- {:loaded, load_pack(name)}, - {_, pack} <- validate_pack(pack) do - {:ok, pack} - end + defp paginate(entities, page, page_size) do + entities + |> Enum.chunk_every(page_size) + |> Enum.at(page - 1) end - def show(_), do: {:error, :empty_values} + @spec show(keyword()) :: {:ok, t()} | {:error, atom()} + def show(opts) do + name = opts[:name] + + with :ok <- validate_not_empty([name]), + {:ok, pack} <- load_pack(name) do + shortcodes = + pack.files + |> Map.keys() + |> Enum.sort() + |> paginate(opts[:page], opts[:page_size]) + + pack = Map.put(pack, :files, Map.take(pack.files, shortcodes)) + + {:ok, validate_pack(pack)} + end + end @spec delete(String.t()) :: {:ok, [binary()]} | {:error, File.posix(), binary()} | {:error, :empty_values} - def delete(name) when byte_size(name) > 0 do - emoji_path() - |> Path.join(name) - |> File.rm_rf() - end - - def delete(_), do: {:error, :empty_values} - - @spec add_file(String.t(), String.t(), Path.t(), Plug.Upload.t() | String.t()) :: - {:ok, t()} | {:error, File.posix()} | {:error, :empty_values} - def add_file(name, shortcode, filename, file) - when byte_size(name) > 0 and byte_size(shortcode) > 0 and byte_size(filename) > 0 do - with {_, nil} <- {:exists, Emoji.get(shortcode)}, - {_, %__MODULE__{} = pack} <- {:loaded, load_pack(name)} do - file_path = Path.join(pack.path, filename) - - create_subdirs(file_path) - - case file do - %Plug.Upload{path: upload_path} -> - # Copy the uploaded file from the temporary directory - File.copy!(upload_path, file_path) - - url when is_binary(url) -> - # Download and write the file - file_contents = Tesla.get!(url).body - File.write!(file_path, file_contents) - end - - files = Map.put(pack.files, shortcode, filename) - - updated_pack = %{pack | files: files} - - case save_pack(updated_pack) do - :ok -> - Emoji.reload() - {:ok, updated_pack} - - e -> - e - end + def delete(name) do + with :ok <- validate_not_empty([name]) do + emoji_path() + |> Path.join(name) + |> File.rm_rf() end end - def add_file(_, _, _, _), do: {:error, :empty_values} - - defp create_subdirs(file_path) do - if String.contains?(file_path, "/") do - file_path - |> Path.dirname() - |> File.mkdir_p!() + @spec add_file(String.t(), String.t(), Path.t(), Plug.Upload.t() | String.t()) :: + {:ok, t()} | {:error, File.posix() | atom()} + def add_file(name, shortcode, filename, file) do + with :ok <- validate_not_empty([name, shortcode, filename]), + :ok <- validate_emoji_not_exists(shortcode), + {:ok, pack} <- load_pack(name), + :ok <- save_file(file, pack, filename), + {:ok, updated_pack} <- pack |> put_emoji(shortcode, filename) |> save_pack() do + Emoji.reload() + {:ok, updated_pack} end end @spec delete_file(String.t(), String.t()) :: - {:ok, t()} | {:error, File.posix()} | {:error, :empty_values} - def delete_file(name, shortcode) when byte_size(name) > 0 and byte_size(shortcode) > 0 do - with {_, %__MODULE__{} = pack} <- {:loaded, load_pack(name)}, - {_, {filename, files}} when not is_nil(filename) <- - {:exists, Map.pop(pack.files, shortcode)}, - emoji <- Path.join(pack.path, filename), - {_, true} <- {:exists, File.exists?(emoji)} do - emoji_dir = Path.dirname(emoji) - - File.rm!(emoji) - - if String.contains?(filename, "/") and File.ls!(emoji_dir) == [] do - File.rmdir!(emoji_dir) - end - - updated_pack = %{pack | files: files} - - case save_pack(updated_pack) do - :ok -> - Emoji.reload() - {:ok, updated_pack} - - e -> - e - end + {:ok, t()} | {:error, File.posix() | atom()} + def delete_file(name, shortcode) do + with :ok <- validate_not_empty([name, shortcode]), + {:ok, pack} <- load_pack(name), + :ok <- remove_file(pack, shortcode), + {:ok, updated_pack} <- pack |> delete_emoji(shortcode) |> save_pack() do + Emoji.reload() + {:ok, updated_pack} end end - def delete_file(_, _), do: {:error, :empty_values} - @spec update_file(String.t(), String.t(), String.t(), String.t(), boolean()) :: - {:ok, t()} | {:error, File.posix()} | {:error, :empty_values} - def update_file(name, shortcode, new_shortcode, new_filename, force) - when byte_size(name) > 0 and byte_size(shortcode) > 0 and byte_size(new_shortcode) > 0 and - byte_size(new_filename) > 0 do - with {_, %__MODULE__{} = pack} <- {:loaded, load_pack(name)}, - {_, {filename, files}} when not is_nil(filename) <- - {:exists, Map.pop(pack.files, shortcode)}, - {_, true} <- {:not_used, force or is_nil(Emoji.get(new_shortcode))} do - old_path = Path.join(pack.path, filename) - old_dir = Path.dirname(old_path) - new_path = Path.join(pack.path, new_filename) - - create_subdirs(new_path) - - :ok = File.rename(old_path, new_path) - - if String.contains?(filename, "/") and File.ls!(old_dir) == [] do - File.rmdir!(old_dir) - end - - files = Map.put(files, new_shortcode, new_filename) - - updated_pack = %{pack | files: files} - - case save_pack(updated_pack) do - :ok -> - Emoji.reload() - {:ok, updated_pack} - - e -> - e - end + {:ok, t()} | {:error, File.posix() | atom()} + def update_file(name, shortcode, new_shortcode, new_filename, force) do + with :ok <- validate_not_empty([name, shortcode, new_shortcode, new_filename]), + {:ok, pack} <- load_pack(name), + {:ok, filename} <- get_filename(pack, shortcode), + :ok <- validate_emoji_not_exists(new_shortcode, force), + :ok <- rename_file(pack, filename, new_filename), + {:ok, updated_pack} <- + pack + |> delete_emoji(shortcode) + |> put_emoji(new_shortcode, new_filename) + |> save_pack() do + Emoji.reload() + {:ok, updated_pack} end end - def update_file(_, _, _, _, _), do: {:error, :empty_values} - - @spec import_from_filesystem() :: {:ok, [String.t()]} | {:error, atom()} + @spec import_from_filesystem() :: {:ok, [String.t()]} | {:error, File.posix() | atom()} def import_from_filesystem do emoji_path = emoji_path() @@ -184,7 +120,7 @@ def import_from_filesystem do File.dir?(path) and File.exists?(Path.join(path, "pack.json")) end) |> Enum.map(&write_pack_contents/1) - |> Enum.filter(& &1) + |> Enum.reject(&is_nil/1) {:ok, names} else @@ -193,6 +129,126 @@ def import_from_filesystem do end end + @spec list_remote(String.t()) :: {:ok, map()} | {:error, atom()} + def list_remote(url) do + uri = url |> String.trim() |> URI.parse() + + with :ok <- validate_shareable_packs_available(uri) do + uri + |> URI.merge("/api/pleroma/emoji/packs") + |> http_get() + end + end + + @spec list_local(keyword()) :: {:ok, map(), non_neg_integer()} + def list_local(opts) do + with {:ok, results} <- list_packs_dir() do + all_packs = + results + |> Enum.map(fn name -> + case load_pack(name) do + {:ok, pack} -> pack + _ -> nil + end + end) + |> Enum.reject(&is_nil/1) + + packs = + all_packs + |> paginate(opts[:page], opts[:page_size]) + |> Map.new(fn pack -> {pack.name, validate_pack(pack)} end) + + {:ok, packs, length(all_packs)} + end + end + + @spec get_archive(String.t()) :: {:ok, binary()} | {:error, atom()} + def get_archive(name) do + with {:ok, pack} <- load_pack(name), + :ok <- validate_downloadable(pack) do + {:ok, fetch_archive(pack)} + end + end + + @spec download(String.t(), String.t(), String.t()) :: {:ok, t()} | {:error, atom()} + def download(name, url, as) do + uri = url |> String.trim() |> URI.parse() + + with :ok <- validate_shareable_packs_available(uri), + {:ok, remote_pack} <- uri |> URI.merge("/api/pleroma/emoji/packs/#{name}") |> http_get(), + {:ok, %{sha: sha, url: url} = pack_info} <- fetch_pack_info(remote_pack, uri, name), + {:ok, archive} <- download_archive(url, sha), + pack <- copy_as(remote_pack, as || name), + {:ok, _} = unzip(archive, pack_info, remote_pack, pack) do + # Fallback can't contain a pack.json file, since that would cause the fallback-src-sha256 + # in it to depend on itself + if pack_info[:fallback] do + save_pack(pack) + else + {:ok, pack} + end + end + end + + @spec save_metadata(map(), t()) :: {:ok, t()} | {:error, File.posix()} + def save_metadata(metadata, %__MODULE__{} = pack) do + pack + |> Map.put(:pack, metadata) + |> save_pack() + end + + @spec update_metadata(String.t(), map()) :: {:ok, t()} | {:error, File.posix()} + def update_metadata(name, data) do + with {:ok, pack} <- load_pack(name) do + if fallback_sha_changed?(pack, data) do + update_sha_and_save_metadata(pack, data) + else + save_metadata(data, pack) + end + end + end + + @spec load_pack(String.t()) :: {:ok, t()} | {:error, :not_found} + def load_pack(name) do + pack_file = Path.join([emoji_path(), name, "pack.json"]) + + if File.exists?(pack_file) do + pack = + pack_file + |> File.read!() + |> from_json() + |> Map.put(:pack_file, pack_file) + |> Map.put(:path, Path.dirname(pack_file)) + |> Map.put(:name, name) + + files_count = + pack.files + |> Map.keys() + |> length() + + {:ok, Map.put(pack, :files_count, files_count)} + else + {:error, :not_found} + end + end + + @spec emoji_path() :: Path.t() + defp emoji_path do + [:instance, :static_dir] + |> Pleroma.Config.get!() + |> Path.join("emoji") + end + + defp validate_emoji_not_exists(shortcode, force \\ false) + defp validate_emoji_not_exists(_shortcode, true), do: :ok + + defp validate_emoji_not_exists(shortcode, _) do + case Emoji.get(shortcode) do + nil -> :ok + _ -> {:error, :already_exists} + end + end + defp write_pack_contents(path) do pack = %__MODULE__{ files: files_from_path(path), @@ -201,7 +257,7 @@ defp write_pack_contents(path) do } case save_pack(pack) do - :ok -> Path.basename(path) + {:ok, _pack} -> Path.basename(path) _ -> nil end end @@ -216,7 +272,8 @@ defp files_from_path(path) do # FIXME: Copy-pasted from Pleroma.Emoji/load_from_file_stream/2 # Create a map of shortcodes to filenames from emoji.txt - File.read!(txt_path) + txt_path + |> File.read!() |> String.split("\n") |> Enum.map(&String.trim/1) |> Enum.map(fn line -> @@ -226,21 +283,18 @@ defp files_from_path(path) do [name, file | _] -> file_dir_name = Path.dirname(file) - file = - if String.ends_with?(path, file_dir_name) do - Path.basename(file) - else - file - end - - {name, file} + if String.ends_with?(path, file_dir_name) do + {name, Path.basename(file)} + else + {name, file} + end _ -> nil end end) - |> Enum.filter(& &1) - |> Enum.into(%{}) + |> Enum.reject(&is_nil/1) + |> Map.new() else # If there's no emoji.txt, assume all files # that are of certain extensions from the config are emojis and import them all @@ -249,60 +303,20 @@ defp files_from_path(path) do end end - @spec list_remote(String.t()) :: {:ok, map()} - def list_remote(url) do - uri = - url - |> String.trim() - |> URI.parse() - - with {_, true} <- {:shareable, shareable_packs_available?(uri)} do - packs = - uri - |> URI.merge("/api/pleroma/emoji/packs") - |> to_string() - |> Tesla.get!() - |> Map.get(:body) - |> Jason.decode!() - - {:ok, packs} - end - end - - @spec list_local() :: {:ok, map()} - def list_local do - emoji_path = emoji_path() - - # Create the directory first if it does not exist. This is probably the first request made - # with the API so it should be sufficient - with {:create_dir, :ok} <- {:create_dir, File.mkdir_p(emoji_path)}, - {:ls, {:ok, results}} <- {:ls, File.ls(emoji_path)} do - packs = - results - |> Enum.map(&load_pack/1) - |> Enum.filter(& &1) - |> Enum.map(&validate_pack/1) - |> Map.new() - - {:ok, packs} - end - end - defp validate_pack(pack) do - if downloadable?(pack) do - archive = fetch_archive(pack) - archive_sha = :crypto.hash(:sha256, archive) |> Base.encode16() + info = + if downloadable?(pack) do + archive = fetch_archive(pack) + archive_sha = :crypto.hash(:sha256, archive) |> Base.encode16() - info = pack.pack |> Map.put("can-download", true) |> Map.put("download-sha256", archive_sha) + else + Map.put(pack.pack, "can-download", false) + end - {pack.name, Map.put(pack, :pack, info)} - else - info = Map.put(pack.pack, "can-download", false) - {pack.name, Map.put(pack, :pack, info)} - end + Map.put(pack, :pack, info) end defp downloadable?(pack) do @@ -311,30 +325,12 @@ defp downloadable?(pack) do # Otherwise, they'd have to download it from external-src pack.pack["share-files"] && Enum.all?(pack.files, fn {_, file} -> - File.exists?(Path.join(pack.path, file)) + pack.path + |> Path.join(file) + |> File.exists?() end) end - @spec get_archive(String.t()) :: {:ok, binary()} - def get_archive(name) do - with {_, %__MODULE__{} = pack} <- {:exists?, load_pack(name)}, - {_, true} <- {:can_download?, downloadable?(pack)} do - {:ok, fetch_archive(pack)} - end - end - - defp fetch_archive(pack) do - hash = :crypto.hash(:md5, File.read!(pack.pack_file)) - - case Cachex.get!(:emoji_packs_cache, pack.name) do - %{hash: ^hash, pack_data: archive} -> - archive - - _ -> - create_archive_and_cache(pack, hash) - end - end - defp create_archive_and_cache(pack, hash) do files = ['pack.json' | Enum.map(pack.files, fn {_, file} -> to_charlist(file) end)] @@ -356,152 +352,221 @@ defp create_archive_and_cache(pack, hash) do result end - @spec download(String.t(), String.t(), String.t()) :: :ok - def download(name, url, as) do - uri = - url - |> String.trim() - |> URI.parse() - - with {_, true} <- {:shareable, shareable_packs_available?(uri)} do - remote_pack = - uri - |> URI.merge("/api/pleroma/emoji/packs/#{name}") - |> to_string() - |> Tesla.get!() - |> Map.get(:body) - |> Jason.decode!() - - result = - case remote_pack["pack"] do - %{"share-files" => true, "can-download" => true, "download-sha256" => sha} -> - {:ok, - %{ - sha: sha, - url: URI.merge(uri, "/api/pleroma/emoji/packs/#{name}/archive") |> to_string() - }} - - %{"fallback-src" => src, "fallback-src-sha256" => sha} when is_binary(src) -> - {:ok, - %{ - sha: sha, - url: src, - fallback: true - }} - - _ -> - {:error, - "The pack was not set as shared and there is no fallback src to download from"} - end - - with {:ok, %{sha: sha, url: url} = pinfo} <- result, - %{body: archive} <- Tesla.get!(url), - {_, true} <- {:checksum, Base.decode16!(sha) == :crypto.hash(:sha256, archive)} do - local_name = as || name - - path = Path.join(emoji_path(), local_name) - - pack = %__MODULE__{ - name: local_name, - path: path, - files: remote_pack["files"], - pack_file: Path.join(path, "pack.json") - } - - File.mkdir_p!(pack.path) - - files = Enum.map(remote_pack["files"], fn {_, path} -> to_charlist(path) end) - # Fallback cannot contain a pack.json file - files = if pinfo[:fallback], do: files, else: ['pack.json' | files] - - {:ok, _} = :zip.unzip(archive, cwd: to_charlist(pack.path), file_list: files) - - # Fallback can't contain a pack.json file, since that would cause the fallback-src-sha256 - # in it to depend on itself - if pinfo[:fallback] do - save_pack(pack) - end - - :ok - end - end - end - - defp save_pack(pack), do: File.write(pack.pack_file, Jason.encode!(pack, pretty: true)) - - @spec save_metadata(map(), t()) :: {:ok, t()} | {:error, File.posix()} - def save_metadata(metadata, %__MODULE__{} = pack) do - pack = Map.put(pack, :pack, metadata) - - with :ok <- save_pack(pack) do + defp save_pack(pack) do + with {:ok, json} <- Jason.encode(pack, pretty: true), + :ok <- File.write(pack.pack_file, json) do {:ok, pack} end end - @spec update_metadata(String.t(), map()) :: {:ok, t()} | {:error, File.posix()} - def update_metadata(name, data) do - pack = load_pack(name) - - fb_sha_changed? = - not is_nil(data["fallback-src"]) and data["fallback-src"] != pack.pack["fallback-src"] - - with {_, true} <- {:update?, fb_sha_changed?}, - {:ok, %{body: zip}} <- Tesla.get(data["fallback-src"]), - {:ok, f_list} <- :zip.unzip(zip, [:memory]), - {_, true} <- {:has_all_files?, has_all_files?(pack.files, f_list)} do - fallback_sha = :crypto.hash(:sha256, zip) |> Base.encode16() - - data - |> Map.put("fallback-src-sha256", fallback_sha) - |> save_metadata(pack) - else - {:update?, _} -> save_metadata(data, pack) - e -> e - end - end - - # Check if all files from the pack.json are in the archive - defp has_all_files?(files, f_list) do - Enum.all?(files, fn {_, from_manifest} -> - List.keyfind(f_list, to_charlist(from_manifest), 0) - end) - end - - @spec load_pack(String.t()) :: t() | nil - def load_pack(name) do - pack_file = Path.join([emoji_path(), name, "pack.json"]) - - if File.exists?(pack_file) do - pack_file - |> File.read!() - |> from_json() - |> Map.put(:pack_file, pack_file) - |> Map.put(:path, Path.dirname(pack_file)) - |> Map.put(:name, name) - end - end - defp from_json(json) do map = Jason.decode!(json) struct(__MODULE__, %{files: map["files"], pack: map["pack"]}) end - defp shareable_packs_available?(uri) do - uri - |> URI.merge("/.well-known/nodeinfo") - |> to_string() - |> Tesla.get!() - |> Map.get(:body) - |> Jason.decode!() - |> Map.get("links") - |> List.last() - |> Map.get("href") - # Get the actual nodeinfo address and fetch it - |> Tesla.get!() - |> Map.get(:body) - |> Jason.decode!() - |> get_in(["metadata", "features"]) - |> Enum.member?("shareable_emoji_packs") + defp validate_shareable_packs_available(uri) do + with {:ok, %{"links" => links}} <- uri |> URI.merge("/.well-known/nodeinfo") |> http_get(), + # Get the actual nodeinfo address and fetch it + {:ok, %{"metadata" => %{"features" => features}}} <- + links |> List.last() |> Map.get("href") |> http_get() do + if Enum.member?(features, "shareable_emoji_packs") do + :ok + else + {:error, :not_shareable} + end + end + end + + defp validate_not_empty(list) do + if Enum.all?(list, fn i -> is_binary(i) and i != "" end) do + :ok + else + {:error, :empty_values} + end + end + + defp save_file(file, pack, filename) do + file_path = Path.join(pack.path, filename) + create_subdirs(file_path) + + case file do + %Plug.Upload{path: upload_path} -> + # Copy the uploaded file from the temporary directory + with {:ok, _} <- File.copy(upload_path, file_path), do: :ok + + url when is_binary(url) -> + # Download and write the file + file_contents = Tesla.get!(url).body + File.write(file_path, file_contents) + end + end + + defp put_emoji(pack, shortcode, filename) do + files = Map.put(pack.files, shortcode, filename) + %{pack | files: files} + end + + defp delete_emoji(pack, shortcode) do + files = Map.delete(pack.files, shortcode) + %{pack | files: files} + end + + defp rename_file(pack, filename, new_filename) do + old_path = Path.join(pack.path, filename) + new_path = Path.join(pack.path, new_filename) + create_subdirs(new_path) + + with :ok <- File.rename(old_path, new_path) do + remove_dir_if_empty(old_path, filename) + end + end + + defp create_subdirs(file_path) do + if String.contains?(file_path, "/") do + file_path + |> Path.dirname() + |> File.mkdir_p!() + end + end + + defp remove_file(pack, shortcode) do + with {:ok, filename} <- get_filename(pack, shortcode), + emoji <- Path.join(pack.path, filename), + :ok <- File.rm(emoji) do + remove_dir_if_empty(emoji, filename) + end + end + + defp remove_dir_if_empty(emoji, filename) do + dir = Path.dirname(emoji) + + if String.contains?(filename, "/") and File.ls!(dir) == [] do + File.rmdir!(dir) + else + :ok + end + end + + defp get_filename(pack, shortcode) do + with %{^shortcode => filename} when is_binary(filename) <- pack.files, + true <- pack.path |> Path.join(filename) |> File.exists?() do + {:ok, filename} + else + _ -> {:error, :doesnt_exist} + end + end + + defp http_get(%URI{} = url), do: url |> to_string() |> http_get() + + defp http_get(url) do + with {:ok, %{body: body}} <- url |> Pleroma.HTTP.get() do + Jason.decode(body) + end + end + + defp list_packs_dir do + emoji_path = emoji_path() + # Create the directory first if it does not exist. This is probably the first request made + # with the API so it should be sufficient + with {:create_dir, :ok} <- {:create_dir, File.mkdir_p(emoji_path)}, + {:ls, {:ok, results}} <- {:ls, File.ls(emoji_path)} do + {:ok, Enum.sort(results)} + else + {:create_dir, {:error, e}} -> {:error, :create_dir, e} + {:ls, {:error, e}} -> {:error, :ls, e} + end + end + + defp validate_downloadable(pack) do + if downloadable?(pack), do: :ok, else: {:error, :cant_download} + end + + defp copy_as(remote_pack, local_name) do + path = Path.join(emoji_path(), local_name) + + %__MODULE__{ + name: local_name, + path: path, + files: remote_pack["files"], + pack_file: Path.join(path, "pack.json") + } + end + + defp unzip(archive, pack_info, remote_pack, local_pack) do + with :ok <- File.mkdir_p!(local_pack.path) do + files = Enum.map(remote_pack["files"], fn {_, path} -> to_charlist(path) end) + # Fallback cannot contain a pack.json file + files = if pack_info[:fallback], do: files, else: ['pack.json' | files] + + :zip.unzip(archive, cwd: to_charlist(local_pack.path), file_list: files) + end + end + + defp fetch_pack_info(remote_pack, uri, name) do + case remote_pack["pack"] do + %{"share-files" => true, "can-download" => true, "download-sha256" => sha} -> + {:ok, + %{ + sha: sha, + url: URI.merge(uri, "/api/pleroma/emoji/packs/#{name}/archive") |> to_string() + }} + + %{"fallback-src" => src, "fallback-src-sha256" => sha} when is_binary(src) -> + {:ok, + %{ + sha: sha, + url: src, + fallback: true + }} + + _ -> + {:error, "The pack was not set as shared and there is no fallback src to download from"} + end + end + + defp download_archive(url, sha) do + with {:ok, %{body: archive}} <- Tesla.get(url) do + if Base.decode16!(sha) == :crypto.hash(:sha256, archive) do + {:ok, archive} + else + {:error, :invalid_checksum} + end + end + end + + defp fetch_archive(pack) do + hash = :crypto.hash(:md5, File.read!(pack.pack_file)) + + case Cachex.get!(:emoji_packs_cache, pack.name) do + %{hash: ^hash, pack_data: archive} -> archive + _ -> create_archive_and_cache(pack, hash) + end + end + + defp fallback_sha_changed?(pack, data) do + is_binary(data[:"fallback-src"]) and data[:"fallback-src"] != pack.pack["fallback-src"] + end + + defp update_sha_and_save_metadata(pack, data) do + with {:ok, %{body: zip}} <- Tesla.get(data[:"fallback-src"]), + :ok <- validate_has_all_files(pack, zip) do + fallback_sha = :sha256 |> :crypto.hash(zip) |> Base.encode16() + + data + |> Map.put("fallback-src-sha256", fallback_sha) + |> save_metadata(pack) + end + end + + defp validate_has_all_files(pack, zip) do + with {:ok, f_list} <- :zip.unzip(zip, [:memory]) do + # Check if all files from the pack.json are in the archive + pack.files + |> Enum.all?(fn {_, from_manifest} -> + List.keyfind(f_list, to_charlist(from_manifest), 0) + end) + |> if(do: :ok, else: {:error, :incomplete}) + end end end diff --git a/lib/pleroma/following_relationship.ex b/lib/pleroma/following_relationship.ex index 3a3082e72..c2020d30a 100644 --- a/lib/pleroma/following_relationship.ex +++ b/lib/pleroma/following_relationship.ex @@ -124,6 +124,7 @@ def get_follow_requests(%User{id: id}) do |> join(:inner, [r], f in assoc(r, :follower)) |> where([r], r.state == ^:follow_pending) |> where([r], r.following_id == ^id) + |> where([r, f], f.deactivated != true) |> select([r, f], f) |> Repo.all() end @@ -141,6 +142,12 @@ def following_query(%User{} = user) do |> where([r], r.state == ^:follow_accept) end + def outgoing_pending_follow_requests_query(%User{} = follower) do + __MODULE__ + |> where([r], r.follower_id == ^follower.id) + |> where([r], r.state == ^:follow_pending) + end + def following(%User{} = user) do following = following_query(user) diff --git a/lib/pleroma/helpers/uri_helper.ex b/lib/pleroma/helpers/uri_helper.ex index 256252ddb..6d205a636 100644 --- a/lib/pleroma/helpers/uri_helper.ex +++ b/lib/pleroma/helpers/uri_helper.ex @@ -17,11 +17,6 @@ def append_uri_params(uri, appended_params) do |> URI.to_string() end - def append_param_if_present(%{} = params, param_name, param_value) do - if param_value do - Map.put(params, param_name, param_value) - else - params - end - end + def maybe_add_base("/" <> uri, base), do: Path.join([base, uri]) + def maybe_add_base(uri, _base), do: uri end diff --git a/lib/pleroma/http/adapter_helper/hackney.ex b/lib/pleroma/http/adapter_helper/hackney.ex index dcb4cac71..3972a03a9 100644 --- a/lib/pleroma/http/adapter_helper/hackney.ex +++ b/lib/pleroma/http/adapter_helper/hackney.ex @@ -22,22 +22,7 @@ def options(connection_opts \\ [], %URI{} = uri) do |> Pleroma.HTTP.AdapterHelper.maybe_add_proxy(proxy) end - defp add_scheme_opts(opts, %URI{scheme: "http"}), do: opts - - defp add_scheme_opts(opts, %URI{scheme: "https", host: host}) do - ssl_opts = [ - ssl_options: [ - # Workaround for remote server certificate chain issues - partial_chain: &:hackney_connect.partial_chain/1, - - # We don't support TLS v1.3 yet - versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"], - server_name_indication: to_charlist(host) - ] - ] - - Keyword.merge(opts, ssl_opts) - end + defp add_scheme_opts(opts, _), do: opts def after_request(_), do: :ok end diff --git a/lib/pleroma/http/ex_aws.ex b/lib/pleroma/http/ex_aws.ex new file mode 100644 index 000000000..e53e64077 --- /dev/null +++ b/lib/pleroma/http/ex_aws.ex @@ -0,0 +1,22 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.HTTP.ExAws do + @moduledoc false + + @behaviour ExAws.Request.HttpClient + + alias Pleroma.HTTP + + @impl true + def request(method, url, body \\ "", headers \\ [], http_opts \\ []) do + case HTTP.request(method, url, body, headers, http_opts) do + {:ok, env} -> + {:ok, %{status_code: env.status, headers: env.headers, body: env.body}} + + {:error, reason} -> + {:error, %{reason: reason}} + end + end +end diff --git a/lib/pleroma/http/http.ex b/lib/pleroma/http/http.ex index 583b56484..66ca75367 100644 --- a/lib/pleroma/http/http.ex +++ b/lib/pleroma/http/http.ex @@ -16,6 +16,7 @@ defmodule Pleroma.HTTP do require Logger @type t :: __MODULE__ + @type method() :: :get | :post | :put | :delete | :head @doc """ Performs GET request. @@ -28,6 +29,9 @@ def get(url, headers \\ [], options \\ []) def get(nil, _, _), do: nil def get(url, headers, options), do: request(:get, url, "", headers, options) + @spec head(Request.url(), Request.headers(), keyword()) :: {:ok, Env.t()} | {:error, any()} + def head(url, headers \\ [], options \\ []), do: request(:head, url, "", headers, options) + @doc """ Performs POST request. @@ -42,7 +46,7 @@ def post(url, body, headers \\ [], options \\ []), Builds and performs http request. # Arguments: - `method` - :get, :post, :put, :delete + `method` - :get, :post, :put, :delete, :head `url` - full url `body` - request body `headers` - a keyworld list of headers, e.g. `[{"content-type", "text/plain"}]` @@ -52,7 +56,7 @@ def post(url, body, headers \\ [], options \\ []), `{:ok, %Tesla.Env{}}` or `{:error, error}` """ - @spec request(atom(), Request.url(), String.t(), Request.headers(), keyword()) :: + @spec request(method(), Request.url(), String.t(), Request.headers(), keyword()) :: {:ok, Env.t()} | {:error, any()} def request(method, url, body, headers, options) when is_binary(url) do uri = URI.parse(url) diff --git a/lib/pleroma/http/tzdata.ex b/lib/pleroma/http/tzdata.ex new file mode 100644 index 000000000..34bb253a7 --- /dev/null +++ b/lib/pleroma/http/tzdata.ex @@ -0,0 +1,25 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.HTTP.Tzdata do + @moduledoc false + + @behaviour Tzdata.HTTPClient + + alias Pleroma.HTTP + + @impl true + def get(url, headers, options) do + with {:ok, %Tesla.Env{} = env} <- HTTP.get(url, headers, options) do + {:ok, {env.status, env.headers, env.body}} + end + end + + @impl true + def head(url, headers, options) do + with {:ok, %Tesla.Env{} = env} <- HTTP.head(url, headers, options) do + {:ok, {env.status, env.headers}} + end + end +end diff --git a/lib/pleroma/maintenance.ex b/lib/pleroma/maintenance.ex new file mode 100644 index 000000000..326c17825 --- /dev/null +++ b/lib/pleroma/maintenance.ex @@ -0,0 +1,37 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Maintenance do + alias Pleroma.Repo + require Logger + + def vacuum(args) do + case args do + "analyze" -> + Logger.info("Runnning VACUUM ANALYZE.") + + Repo.query!( + "vacuum analyze;", + [], + timeout: :infinity + ) + + "full" -> + Logger.info("Runnning VACUUM FULL.") + + Logger.warn( + "Re-packing your entire database may take a while and will consume extra disk space during the process." + ) + + Repo.query!( + "vacuum full;", + [], + timeout: :infinity + ) + + _ -> + Logger.error("Error: invalid vacuum argument.") + end + end +end diff --git a/lib/pleroma/maps.ex b/lib/pleroma/maps.ex new file mode 100644 index 000000000..ab2e32e2f --- /dev/null +++ b/lib/pleroma/maps.ex @@ -0,0 +1,15 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Maps do + def put_if_present(map, key, value, value_function \\ &{:ok, &1}) when is_map(map) do + with false <- is_nil(key), + false <- is_nil(value), + {:ok, new_value} <- value_function.(value) do + Map.put(map, key, new_value) + else + _ -> map + end + end +end diff --git a/lib/pleroma/mfa.ex b/lib/pleroma/mfa.ex index 2b77f5426..01b743f4f 100644 --- a/lib/pleroma/mfa.ex +++ b/lib/pleroma/mfa.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.MFA do diff --git a/lib/pleroma/mfa/backup_codes.ex b/lib/pleroma/mfa/backup_codes.ex index 2b5ec34f8..9875310ff 100644 --- a/lib/pleroma/mfa/backup_codes.ex +++ b/lib/pleroma/mfa/backup_codes.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.MFA.BackupCodes do diff --git a/lib/pleroma/mfa/changeset.ex b/lib/pleroma/mfa/changeset.ex index 9b020aa8e..77c4fa202 100644 --- a/lib/pleroma/mfa/changeset.ex +++ b/lib/pleroma/mfa/changeset.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.MFA.Changeset do diff --git a/lib/pleroma/mfa/settings.ex b/lib/pleroma/mfa/settings.ex index 2764b889c..de6e2228f 100644 --- a/lib/pleroma/mfa/settings.ex +++ b/lib/pleroma/mfa/settings.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.MFA.Settings do diff --git a/lib/pleroma/mfa/token.ex b/lib/pleroma/mfa/token.ex index 25ff7fb29..0b2449971 100644 --- a/lib/pleroma/mfa/token.ex +++ b/lib/pleroma/mfa/token.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.MFA.Token do diff --git a/lib/pleroma/mfa/totp.ex b/lib/pleroma/mfa/totp.ex index 1407afc57..d2ea2b3aa 100644 --- a/lib/pleroma/mfa/totp.ex +++ b/lib/pleroma/mfa/totp.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.MFA.TOTP do diff --git a/lib/pleroma/migration_helper/notification_backfill.ex b/lib/pleroma/migration_helper/notification_backfill.ex new file mode 100644 index 000000000..b3770307a --- /dev/null +++ b/lib/pleroma/migration_helper/notification_backfill.ex @@ -0,0 +1,85 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.MigrationHelper.NotificationBackfill do + alias Pleroma.Notification + alias Pleroma.Object + alias Pleroma.Repo + alias Pleroma.User + + import Ecto.Query + + def fill_in_notification_types do + query = + from(n in Pleroma.Notification, + where: is_nil(n.type), + preload: :activity + ) + + query + |> Repo.chunk_stream(100) + |> Enum.each(fn notification -> + type = + notification.activity + |> type_from_activity() + + notification + |> Notification.changeset(%{type: type}) + |> Repo.update() + end) + end + + # This is copied over from Notifications to keep this stable. + defp type_from_activity(%{data: %{"type" => type}} = activity) do + case type do + "Follow" -> + accepted_function = fn activity -> + with %User{} = follower <- User.get_by_ap_id(activity.data["actor"]), + %User{} = followed <- User.get_by_ap_id(activity.data["object"]) do + Pleroma.FollowingRelationship.following?(follower, followed) + end + end + + if accepted_function.(activity) do + "follow" + else + "follow_request" + end + + "Announce" -> + "reblog" + + "Like" -> + "favourite" + + "Move" -> + "move" + + "EmojiReact" -> + "pleroma:emoji_reaction" + + # Compatibility with old reactions + "EmojiReaction" -> + "pleroma:emoji_reaction" + + "Create" -> + activity + |> type_from_activity_object() + + t -> + raise "No notification type for activity type #{t}" + end + end + + defp type_from_activity_object(%{data: %{"type" => "Create", "object" => %{}}}), do: "mention" + + defp type_from_activity_object(%{data: %{"type" => "Create"}} = activity) do + object = Object.get_by_ap_id(activity.data["object"]) + + case object && object.data["type"] do + "ChatMessage" -> "pleroma:chat_mention" + _ -> "mention" + end + end +end diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex index 8aa9ed2d4..9ee9606be 100644 --- a/lib/pleroma/notification.ex +++ b/lib/pleroma/notification.ex @@ -30,12 +30,29 @@ defmodule Pleroma.Notification do schema "notifications" do field(:seen, :boolean, default: false) + # This is an enum type in the database. If you add a new notification type, + # remember to add a migration to add it to the `notifications_type` enum + # as well. + field(:type, :string) belongs_to(:user, User, type: FlakeId.Ecto.CompatType) belongs_to(:activity, Activity, type: FlakeId.Ecto.CompatType) timestamps() end + def update_notification_type(user, activity) do + with %__MODULE__{} = notification <- + Repo.get_by(__MODULE__, user_id: user.id, activity_id: activity.id) do + type = + activity + |> type_from_activity() + + notification + |> changeset(%{type: type}) + |> Repo.update() + end + end + @spec unread_notifications_count(User.t()) :: integer() def unread_notifications_count(%User{id: user_id}) do from(q in __MODULE__, @@ -44,9 +61,21 @@ def unread_notifications_count(%User{id: user_id}) do |> Repo.aggregate(:count, :id) end + @notification_types ~w{ + favourite + follow + follow_request + mention + move + pleroma:chat_mention + pleroma:emoji_reaction + reblog + } + def changeset(%Notification{} = notification, attrs) do notification - |> cast(attrs, [:seen]) + |> cast(attrs, [:seen, :type]) + |> validate_inclusion(:type, @notification_types) end @spec last_read_query(User.t()) :: Ecto.Queryable.t() @@ -92,8 +121,9 @@ def for_user_query(user, opts \\ %{}) do |> join(:left, [n, a], object in Object, on: fragment( - "(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)", + "(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')", object.data, + a.data, a.data ) ) @@ -136,8 +166,16 @@ defp exclude_visibility(query, %{exclude_visibilities: visibility}) query |> join(:left, [n, a], mutated_activity in Pleroma.Activity, on: - fragment("?->>'context'", a.data) == - fragment("?->>'context'", mutated_activity.data) and + fragment( + "COALESCE((?->'object')->>'id', ?->>'object')", + a.data, + a.data + ) == + fragment( + "COALESCE((?->'object')->>'id', ?->>'object')", + mutated_activity.data, + mutated_activity.data + ) and fragment("(?->>'type' = 'Like' or ?->>'type' = 'Announce')", a.data, a.data) and fragment("?->>'type'", mutated_activity.data) == "Create", as: :mutated_activity @@ -224,18 +262,8 @@ def set_read_up_to(%{id: user_id} = user, id) do |> Marker.multi_set_last_read_id(user, "notifications") |> Repo.transaction() - Notification + for_user_query(user) |> where([n], n.id in ^notification_ids) - |> join(:inner, [n], activity in assoc(n, :activity)) - |> join(:left, [n, a], object in Object, - on: - fragment( - "(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)", - object.data, - a.data - ) - ) - |> preload([n, a, o], activity: {a, object: o}) |> Repo.all() end @@ -309,42 +337,95 @@ def dismiss(%{id: user_id} = _user, id) do end end - def create_notifications(%Activity{data: %{"to" => _, "type" => "Create"}} = activity) do - object = Object.normalize(activity) + def create_notifications(activity, options \\ []) + + def create_notifications(%Activity{data: %{"to" => _, "type" => "Create"}} = activity, options) do + object = Object.normalize(activity, false) if object && object.data["type"] == "Answer" do {:ok, []} else - do_create_notifications(activity) + do_create_notifications(activity, options) end end - def create_notifications(%Activity{data: %{"type" => type}} = activity) + def create_notifications(%Activity{data: %{"type" => type}} = activity, options) when type in ["Follow", "Like", "Announce", "Move", "EmojiReact"] do - do_create_notifications(activity) + do_create_notifications(activity, options) end - def create_notifications(_), do: {:ok, []} + def create_notifications(_, _), do: {:ok, []} + + defp do_create_notifications(%Activity{} = activity, options) do + do_send = Keyword.get(options, :do_send, true) - defp do_create_notifications(%Activity{} = activity) do {enabled_receivers, disabled_receivers} = get_notified_from_activity(activity) potential_receivers = enabled_receivers ++ disabled_receivers notifications = Enum.map(potential_receivers, fn user -> - do_send = user in enabled_receivers + do_send = do_send && user in enabled_receivers create_notification(activity, user, do_send) end) {:ok, notifications} end + defp type_from_activity(%{data: %{"type" => type}} = activity) do + case type do + "Follow" -> + if Activity.follow_accepted?(activity) do + "follow" + else + "follow_request" + end + + "Announce" -> + "reblog" + + "Like" -> + "favourite" + + "Move" -> + "move" + + "EmojiReact" -> + "pleroma:emoji_reaction" + + # Compatibility with old reactions + "EmojiReaction" -> + "pleroma:emoji_reaction" + + "Create" -> + activity + |> type_from_activity_object() + + t -> + raise "No notification type for activity type #{t}" + end + end + + defp type_from_activity_object(%{data: %{"type" => "Create", "object" => %{}}}), do: "mention" + + defp type_from_activity_object(%{data: %{"type" => "Create"}} = activity) do + object = Object.get_by_ap_id(activity.data["object"]) + + case object && object.data["type"] do + "ChatMessage" -> "pleroma:chat_mention" + _ -> "mention" + end + end + # TODO move to sql, too. def create_notification(%Activity{} = activity, %User{} = user, do_send \\ true) do unless skip?(activity, user) do {:ok, %{notification: notification}} = Multi.new() - |> Multi.insert(:notification, %Notification{user_id: user.id, activity: activity}) + |> Multi.insert(:notification, %Notification{ + user_id: user.id, + activity: activity, + type: type_from_activity(activity) + }) |> Marker.multi_set_last_read_id(user, "notifications") |> Repo.transaction() @@ -370,7 +451,8 @@ def get_notified_from_activity(%Activity{data: %{"type" => type}} = activity, lo when type in ["Create", "Like", "Announce", "Follow", "Move", "EmojiReact"] do potential_receiver_ap_ids = get_potential_receiver_ap_ids(activity) - potential_receivers = User.get_users_from_set(potential_receiver_ap_ids, local_only) + potential_receivers = + User.get_users_from_set(potential_receiver_ap_ids, local_only: local_only) notification_enabled_ap_ids = potential_receiver_ap_ids @@ -467,6 +549,7 @@ def exclude_thread_muter_ap_ids(ap_ids, %Activity{} = activity) do def skip?(%Activity{} = activity, %User{} = user) do [ :self, + :invisible, :followers, :follows, :non_followers, @@ -483,6 +566,12 @@ def skip?(:self, %Activity{} = activity, %User{} = user) do activity.data["actor"] == user.ap_id end + def skip?(:invisible, %Activity{} = activity, _) do + actor = activity.data["actor"] + user = User.get_cached_by_ap_id(actor) + User.invisible?(user) + end + def skip?( :followers, %Activity{} = activity, @@ -535,4 +624,12 @@ def skip?(:recently_followed, %Activity{data: %{"type" => "Follow"}} = activity, end def skip?(_, _, _), do: false + + def for_user_and_activity(user, activity) do + from(n in __MODULE__, + where: n.user_id == ^user.id, + where: n.activity_id == ^activity.id + ) + |> Repo.one() + end end diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex index e678fd415..546c4ea01 100644 --- a/lib/pleroma/object.ex +++ b/lib/pleroma/object.ex @@ -9,11 +9,13 @@ defmodule Pleroma.Object do import Ecto.Changeset alias Pleroma.Activity + alias Pleroma.Config alias Pleroma.Object alias Pleroma.Object.Fetcher alias Pleroma.ObjectTombstone alias Pleroma.Repo alias Pleroma.User + alias Pleroma.Workers.AttachmentsCleanupWorker require Logger @@ -138,12 +140,17 @@ def normalize(ap_id, true, options) when is_binary(ap_id) do def normalize(_, _, _), do: nil - # Owned objects can only be mutated by their owner - def authorize_mutation(%Object{data: %{"actor" => actor}}, %User{ap_id: ap_id}), - do: actor == ap_id + # Owned objects can only be accessed by their owner + def authorize_access(%Object{data: %{"actor" => actor}}, %User{ap_id: ap_id}) do + if actor == ap_id do + :ok + else + {:error, :forbidden} + end + end - # Legacy objects can be mutated by anybody - def authorize_mutation(%Object{}, %User{}), do: true + # Legacy objects can be accessed by anybody + def authorize_access(%Object{}, %User{}), do: :ok @spec get_cached_by_ap_id(String.t()) :: Object.t() | nil def get_cached_by_ap_id(ap_id) do @@ -183,27 +190,37 @@ def swap_object_with_tombstone(object) do def delete(%Object{data: %{"id" => id}} = object) do with {:ok, _obj} = swap_object_with_tombstone(object), deleted_activity = Activity.delete_all_by_object_ap_id(id), - {:ok, true} <- Cachex.del(:object_cache, "object:#{id}"), - {:ok, _} <- Cachex.del(:web_resp_cache, URI.parse(id).path) do - with true <- Pleroma.Config.get([:instance, :cleanup_attachments]) do - {:ok, _} = - Pleroma.Workers.AttachmentsCleanupWorker.enqueue("cleanup_attachments", %{ - "object" => object - }) - end + {:ok, _} <- invalid_object_cache(object) do + cleanup_attachments( + Config.get([:instance, :cleanup_attachments]), + %{"object" => object} + ) {:ok, object, deleted_activity} end end - def prune(%Object{data: %{"id" => id}} = object) do + @spec cleanup_attachments(boolean(), %{required(:object) => map()}) :: + {:ok, Oban.Job.t() | nil} + def cleanup_attachments(true, %{"object" => _} = params) do + AttachmentsCleanupWorker.enqueue("cleanup_attachments", params) + end + + def cleanup_attachments(_, _), do: {:ok, nil} + + def prune(%Object{data: %{"id" => _id}} = object) do with {:ok, object} <- Repo.delete(object), - {:ok, true} <- Cachex.del(:object_cache, "object:#{id}"), - {:ok, _} <- Cachex.del(:web_resp_cache, URI.parse(id).path) do + {:ok, _} <- invalid_object_cache(object) do {:ok, object} end end + def invalid_object_cache(%Object{data: %{"id" => id}}) do + with {:ok, true} <- Cachex.del(:object_cache, "object:#{id}") do + Cachex.del(:web_resp_cache, URI.parse(id).path) + end + end + def set_cache(%Object{data: %{"id" => ap_id}} = object) do Cachex.put(:object_cache, "object:#{ap_id}", object) {:ok, object} diff --git a/lib/pleroma/object/fetcher.ex b/lib/pleroma/object/fetcher.ex index 263ded5dd..3e2949ee2 100644 --- a/lib/pleroma/object/fetcher.ex +++ b/lib/pleroma/object/fetcher.ex @@ -83,8 +83,8 @@ def fetch_object_from_id(id, options \\ []) do {:transmogrifier, {:error, {:reject, nil}}} -> {:reject, nil} - {:transmogrifier, _} -> - {:error, "Transmogrifier failure."} + {:transmogrifier, _} = e -> + {:error, e} {:object, data, nil} -> reinject_object(%Object{}, data) diff --git a/lib/pleroma/pagination.ex b/lib/pleroma/pagination.ex index d43a96cd2..9a3795769 100644 --- a/lib/pleroma/pagination.ex +++ b/lib/pleroma/pagination.ex @@ -23,12 +23,12 @@ def page_keys, do: @page_keys @spec fetch_paginated(Ecto.Query.t(), map(), type(), atom() | nil) :: [Ecto.Schema.t()] def fetch_paginated(query, params, type \\ :keyset, table_binding \\ nil) - def fetch_paginated(query, %{"total" => true} = params, :keyset, table_binding) do + def fetch_paginated(query, %{total: true} = params, :keyset, table_binding) do total = Repo.aggregate(query, :count, :id) %{ total: total, - items: fetch_paginated(query, Map.drop(params, ["total"]), :keyset, table_binding) + items: fetch_paginated(query, Map.drop(params, [:total]), :keyset, table_binding) } end @@ -41,7 +41,7 @@ def fetch_paginated(query, params, :keyset, table_binding) do |> enforce_order(options) end - def fetch_paginated(query, %{"total" => true} = params, :offset, table_binding) do + def fetch_paginated(query, %{total: true} = params, :offset, table_binding) do total = query |> Ecto.Query.exclude(:left_join) @@ -49,7 +49,7 @@ def fetch_paginated(query, %{"total" => true} = params, :offset, table_binding) %{ total: total, - items: fetch_paginated(query, Map.drop(params, ["total"]), :offset, table_binding) + items: fetch_paginated(query, Map.drop(params, [:total]), :offset, table_binding) } end @@ -64,6 +64,12 @@ def fetch_paginated(query, params, :offset, table_binding) do @spec paginate(Ecto.Query.t(), map(), type(), atom() | nil) :: [Ecto.Schema.t()] def paginate(query, options, method \\ :keyset, table_binding \\ nil) + def paginate(list, options, _method, _table_binding) when is_list(list) do + offset = options[:offset] || 0 + limit = options[:limit] || 0 + Enum.slice(list, offset, limit) + end + def paginate(query, options, :keyset, table_binding) do query |> restrict(:min_id, options, table_binding) @@ -90,12 +96,6 @@ defp cast_params(params) do skip_order: :boolean } - params = - Enum.reduce(params, %{}, fn - {key, _value}, acc when is_atom(key) -> Map.drop(acc, [key]) - {key, value}, acc -> Map.put(acc, key, value) - end) - changeset = cast({%{}, param_types}, params, Map.keys(param_types)) changeset.changes end diff --git a/lib/pleroma/plugs/authentication_plug.ex b/lib/pleroma/plugs/authentication_plug.ex index 2cdf6c951..057ea42f1 100644 --- a/lib/pleroma/plugs/authentication_plug.ex +++ b/lib/pleroma/plugs/authentication_plug.ex @@ -30,6 +30,25 @@ def checkpw(_password, _password_hash) do false end + def maybe_update_password(%User{password_hash: "$2" <> _} = user, password) do + do_update_password(user, password) + end + + def maybe_update_password(%User{password_hash: "$6" <> _} = user, password) do + do_update_password(user, password) + end + + def maybe_update_password(user, _), do: {:ok, user} + + defp do_update_password(user, password) do + user + |> User.password_update_changeset(%{ + "password" => password, + "password_confirmation" => password + }) + |> Pleroma.Repo.update() + end + def call(%{assigns: %{user: %User{}}} = conn, _), do: conn def call( @@ -42,6 +61,8 @@ def call( _ ) do if checkpw(password, password_hash) do + {:ok, auth_user} = maybe_update_password(auth_user, password) + conn |> assign(:user, auth_user) |> OAuthScopesPlug.skip_plug() diff --git a/lib/pleroma/plugs/http_security_plug.ex b/lib/pleroma/plugs/http_security_plug.ex index 6462797b6..1420a9611 100644 --- a/lib/pleroma/plugs/http_security_plug.ex +++ b/lib/pleroma/plugs/http_security_plug.ex @@ -31,7 +31,7 @@ defp headers do {"x-content-type-options", "nosniff"}, {"referrer-policy", referrer_policy}, {"x-download-options", "noopen"}, - {"content-security-policy", csp_string() <> ";"} + {"content-security-policy", csp_string()} ] if report_uri do @@ -43,23 +43,46 @@ defp headers do ] } - headers ++ [{"reply-to", Jason.encode!(report_group)}] + [{"reply-to", Jason.encode!(report_group)} | headers] else headers end end + static_csp_rules = [ + "default-src 'none'", + "base-uri 'self'", + "frame-ancestors 'none'", + "style-src 'self' 'unsafe-inline'", + "font-src 'self'", + "manifest-src 'self'" + ] + + @csp_start [Enum.join(static_csp_rules, ";") <> ";"] + defp csp_string do scheme = Config.get([Pleroma.Web.Endpoint, :url])[:scheme] static_url = Pleroma.Web.Endpoint.static_url() websocket_url = Pleroma.Web.Endpoint.websocket_url() report_uri = Config.get([:http_security, :report_uri]) - connect_src = "connect-src 'self' #{static_url} #{websocket_url}" + img_src = "img-src 'self' data: blob:" + media_src = "media-src 'self'" + + {img_src, media_src} = + if Config.get([:media_proxy, :enabled]) && + !Config.get([:media_proxy, :proxy_opts, :redirect_on_failure]) do + sources = get_proxy_and_attachment_sources() + {[img_src, sources], [media_src, sources]} + else + {[img_src, " https:"], [media_src, " https:"]} + end + + connect_src = ["connect-src 'self' blob: ", static_url, ?\s, websocket_url] connect_src = if Pleroma.Config.get(:env) == :dev do - connect_src <> " http://localhost:3035/" + [connect_src, " http://localhost:3035/"] else connect_src end @@ -71,27 +94,51 @@ defp csp_string do "script-src 'self'" end - main_part = [ - "default-src 'none'", - "base-uri 'self'", - "frame-ancestors 'none'", - "img-src 'self' data: blob: https:", - "media-src 'self' https:", - "style-src 'self' 'unsafe-inline'", - "font-src 'self'", - "manifest-src 'self'", - connect_src, - script_src - ] + report = if report_uri, do: ["report-uri ", report_uri, ";report-to csp-endpoint"] + insecure = if scheme == "https", do: "upgrade-insecure-requests" - report = if report_uri, do: ["report-uri #{report_uri}; report-to csp-endpoint"], else: [] - - insecure = if scheme == "https", do: ["upgrade-insecure-requests"], else: [] - - (main_part ++ report ++ insecure) - |> Enum.join("; ") + @csp_start + |> add_csp_param(img_src) + |> add_csp_param(media_src) + |> add_csp_param(connect_src) + |> add_csp_param(script_src) + |> add_csp_param(insecure) + |> add_csp_param(report) + |> :erlang.iolist_to_binary() end + defp get_proxy_and_attachment_sources do + media_proxy_whitelist = + Enum.reduce(Config.get([:media_proxy, :whitelist]), [], fn host, acc -> + add_source(acc, host) + end) + + media_proxy_base_url = + if Config.get([:media_proxy, :base_url]), + do: URI.parse(Config.get([:media_proxy, :base_url])).host + + upload_base_url = + if Config.get([Pleroma.Upload, :base_url]), + do: URI.parse(Config.get([Pleroma.Upload, :base_url])).host + + s3_endpoint = + if Config.get([Pleroma.Upload, :uploader]) == Pleroma.Uploaders.S3, + do: URI.parse(Config.get([Pleroma.Uploaders.S3, :public_endpoint])).host + + [] + |> add_source(media_proxy_base_url) + |> add_source(upload_base_url) + |> add_source(s3_endpoint) + |> add_source(media_proxy_whitelist) + end + + defp add_source(iodata, nil), do: iodata + defp add_source(iodata, source), do: [[?\s, source] | iodata] + + defp add_csp_param(csp_iodata, nil), do: csp_iodata + + defp add_csp_param(csp_iodata, param), do: [[param, ?;] | csp_iodata] + def warn_if_disabled do unless Config.get([:http_security, :enabled]) do Logger.warn(" diff --git a/lib/pleroma/plugs/uploaded_media.ex b/lib/pleroma/plugs/uploaded_media.ex index 94147e0c4..40984cfc0 100644 --- a/lib/pleroma/plugs/uploaded_media.ex +++ b/lib/pleroma/plugs/uploaded_media.ex @@ -10,6 +10,8 @@ defmodule Pleroma.Plugs.UploadedMedia do import Pleroma.Web.Gettext require Logger + alias Pleroma.Web.MediaProxy + @behaviour Plug # no slashes @path "media" @@ -35,8 +37,7 @@ def call(%{request_path: <<"/", @path, "/", file::binary>>} = conn, opts) do %{query_params: %{"name" => name}} = conn -> name = String.replace(name, "\"", "\\\"") - conn - |> put_resp_header("content-disposition", "filename=\"#{name}\"") + put_resp_header(conn, "content-disposition", "filename=\"#{name}\"") conn -> conn @@ -47,7 +48,8 @@ def call(%{request_path: <<"/", @path, "/", file::binary>>} = conn, opts) do with uploader <- Keyword.fetch!(config, :uploader), proxy_remote = Keyword.get(config, :proxy_remote, false), - {:ok, get_method} <- uploader.get_file(file) do + {:ok, get_method} <- uploader.get_file(file), + false <- media_is_banned(conn, get_method) do get_media(conn, get_method, proxy_remote, opts) else _ -> @@ -59,6 +61,14 @@ def call(%{request_path: <<"/", @path, "/", file::binary>>} = conn, opts) do def call(conn, _opts), do: conn + defp media_is_banned(%{request_path: path} = _conn, {:static_dir, _}) do + MediaProxy.in_banned_urls(Pleroma.Web.base_url() <> path) + end + + defp media_is_banned(_, {:url, url}), do: MediaProxy.in_banned_urls(url) + + defp media_is_banned(_, _), do: false + defp get_media(conn, {:static_dir, directory}, _, opts) do static_opts = Map.get(opts, :static_plug_opts) diff --git a/lib/pleroma/repo.ex b/lib/pleroma/repo.ex index f62138466..f317e4d58 100644 --- a/lib/pleroma/repo.ex +++ b/lib/pleroma/repo.ex @@ -8,11 +8,10 @@ defmodule Pleroma.Repo do adapter: Ecto.Adapters.Postgres, migration_timestamps: [type: :naive_datetime_usec] + import Ecto.Query require Logger - defmodule Instrumenter do - use Prometheus.EctoInstrumenter - end + defmodule Instrumenter, do: use(Prometheus.EctoInstrumenter) @doc """ Dynamically loads the repository url from the @@ -50,36 +49,30 @@ def get_assoc(resource, association) do end end - def check_migrations_applied!() do - unless Pleroma.Config.get( - [:i_am_aware_this_may_cause_data_loss, :disable_migration_check], - false - ) do - Ecto.Migrator.with_repo(__MODULE__, fn repo -> - down_migrations = - Ecto.Migrator.migrations(repo) - |> Enum.reject(fn - {:up, _, _} -> true - {:down, _, _} -> false - end) + def chunk_stream(query, chunk_size) do + # We don't actually need start and end funcitons of resource streaming, + # but it seems to be the only way to not fetch records one-by-one and + # have individual records be the elements of the stream, instead of + # lists of records + Stream.resource( + fn -> 0 end, + fn + last_id -> + query + |> order_by(asc: :id) + |> where([r], r.id > ^last_id) + |> limit(^chunk_size) + |> all() + |> case do + [] -> + {:halt, last_id} - if length(down_migrations) > 0 do - down_migrations_text = - Enum.map(down_migrations, fn {:down, id, name} -> "- #{name} (#{id})\n" end) - - Logger.error( - "The following migrations were not applied:\n#{down_migrations_text}If you want to start Pleroma anyway, set\nconfig :pleroma, :i_am_aware_this_may_cause_data_loss, disable_migration_check: true" - ) - - raise Pleroma.Repo.UnappliedMigrationsError - end - end) - else - :ok - end + records -> + last_id = List.last(records).id + {records, last_id} + end + end, + fn _ -> :ok end + ) end end - -defmodule Pleroma.Repo.UnappliedMigrationsError do - defexception message: "Unapplied Migrations detected" -end diff --git a/lib/pleroma/signature.ex b/lib/pleroma/signature.ex index d01728361..3aa6909d2 100644 --- a/lib/pleroma/signature.ex +++ b/lib/pleroma/signature.ex @@ -5,10 +5,10 @@ defmodule Pleroma.Signature do @behaviour HTTPSignatures.Adapter + alias Pleroma.EctoType.ActivityPub.ObjectValidators alias Pleroma.Keys alias Pleroma.User alias Pleroma.Web.ActivityPub.ActivityPub - alias Pleroma.Web.ActivityPub.ObjectValidators.Types def key_id_to_actor_id(key_id) do uri = @@ -24,7 +24,7 @@ def key_id_to_actor_id(key_id) do maybe_ap_id = URI.to_string(uri) - case Types.ObjectID.cast(maybe_ap_id) do + case ObjectValidators.ObjectID.cast(maybe_ap_id) do {:ok, ap_id} -> {:ok, ap_id} diff --git a/lib/pleroma/stats.ex b/lib/pleroma/stats.ex index 6b3a8a41f..9a03f01db 100644 --- a/lib/pleroma/stats.ex +++ b/lib/pleroma/stats.ex @@ -97,20 +97,11 @@ def calculate_stat_data do } end - def get_status_visibility_count do - counter_cache = - CounterCache.get_as_map([ - "status_visibility_public", - "status_visibility_private", - "status_visibility_unlisted", - "status_visibility_direct" - ]) - - %{ - public: counter_cache["status_visibility_public"] || 0, - unlisted: counter_cache["status_visibility_unlisted"] || 0, - private: counter_cache["status_visibility_private"] || 0, - direct: counter_cache["status_visibility_direct"] || 0 - } + def get_status_visibility_count(instance \\ nil) do + if is_nil(instance) do + CounterCache.get_sum() + else + CounterCache.get_by_instance(instance) + end end end diff --git a/lib/pleroma/upload.ex b/lib/pleroma/upload.ex index 1be1a3a5b..797555bff 100644 --- a/lib/pleroma/upload.ex +++ b/lib/pleroma/upload.ex @@ -67,6 +67,7 @@ def store(upload, opts \\ []) do {:ok, %{ "type" => opts.activity_type, + "mediaType" => upload.content_type, "url" => [ %{ "type" => "Link", diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index cba391072..9d5c61e79 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -14,6 +14,7 @@ defmodule Pleroma.User do alias Pleroma.Config alias Pleroma.Conversation.Participation alias Pleroma.Delivery + alias Pleroma.EctoType.ActivityPub.ObjectValidators alias Pleroma.Emoji alias Pleroma.FollowingRelationship alias Pleroma.Formatter @@ -30,7 +31,6 @@ defmodule Pleroma.User do alias Pleroma.Web alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.Builder - alias Pleroma.Web.ActivityPub.ObjectValidators.Types alias Pleroma.Web.ActivityPub.Pipeline alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.CommonAPI @@ -79,6 +79,7 @@ defmodule Pleroma.User do schema "users" do field(:bio, :string) + field(:raw_bio, :string) field(:email, :string) field(:name, :string) field(:nickname, :string) @@ -115,7 +116,7 @@ defmodule Pleroma.User do field(:is_admin, :boolean, default: false) field(:show_role, :boolean, default: true) field(:settings, :map, default: nil) - field(:uri, Types.Uri, default: nil) + field(:uri, ObjectValidators.Uri, default: nil) field(:hide_followers_count, :boolean, default: false) field(:hide_follows_count, :boolean, default: false) field(:hide_followers, :boolean, default: false) @@ -262,37 +263,60 @@ def account_status(%User{deactivated: true}), do: :deactivated def account_status(%User{password_reset_pending: true}), do: :password_reset_pending def account_status(%User{confirmation_pending: true}) do - case Config.get([:instance, :account_activation_required]) do - true -> :confirmation_pending - _ -> :active + if Config.get([:instance, :account_activation_required]) do + :confirmation_pending + else + :active end end def account_status(%User{}), do: :active - @spec visible_for?(User.t(), User.t() | nil) :: boolean() - def visible_for?(user, for_user \\ nil) + @spec visible_for(User.t(), User.t() | nil) :: + :visible + | :invisible + | :restricted_unauthenticated + | :deactivated + | :confirmation_pending + def visible_for(user, for_user \\ nil) - def visible_for?(%User{invisible: true}, _), do: false + def visible_for(%User{invisible: true}, _), do: :invisible - def visible_for?(%User{id: user_id}, %User{id: user_id}), do: true + def visible_for(%User{id: user_id}, %User{id: user_id}), do: :visible - def visible_for?(%User{local: local} = user, nil) do - cfg_key = - if local, - do: :local, - else: :remote - - if Config.get([:restrict_unauthenticated, :profiles, cfg_key]), - do: false, - else: account_status(user) == :active + def visible_for(%User{} = user, nil) do + if restrict_unauthenticated?(user) do + :restrict_unauthenticated + else + visible_account_status(user) + end end - def visible_for?(%User{} = user, for_user) do - account_status(user) == :active || superuser?(for_user) + def visible_for(%User{} = user, for_user) do + if superuser?(for_user) do + :visible + else + visible_account_status(user) + end end - def visible_for?(_, _), do: false + def visible_for(_, _), do: :invisible + + defp restrict_unauthenticated?(%User{local: local}) do + config_key = if local, do: :local, else: :remote + + Config.get([:restrict_unauthenticated, :profiles, config_key], false) + end + + defp visible_account_status(user) do + status = account_status(user) + + if status in [:active, :password_reset_pending] do + :visible + else + status + end + end @spec superuser?(User.t()) :: boolean() def superuser?(%User{local: true, is_admin: true}), do: true @@ -305,8 +329,13 @@ def invisible?(_), do: false def avatar_url(user, options \\ []) do case user.avatar do - %{"url" => [%{"href" => href} | _]} -> href - _ -> !options[:no_default] && "#{Web.base_url()}/images/avi.png" + %{"url" => [%{"href" => href} | _]} -> + href + + _ -> + unless options[:no_default] do + Config.get([:assets, :default_user_avatar], "#{Web.base_url()}/images/avi.png") + end end end @@ -427,6 +456,7 @@ def update_changeset(struct, params \\ %{}) do params, [ :bio, + :raw_bio, :name, :emoji, :avatar, @@ -458,6 +488,7 @@ def update_changeset(struct, params \\ %{}) do |> validate_format(:nickname, local_nickname_regex()) |> validate_length(:bio, max: bio_limit) |> validate_length(:name, min: 1, max: name_limit) + |> validate_inclusion(:actor_type, ["Person", "Service"]) |> put_fields() |> put_emoji() |> put_change_if_present(:bio, &{:ok, parse_bio(&1, struct)}) @@ -533,9 +564,10 @@ def update_as_admin_changeset(struct, params) do |> delete_change(:also_known_as) |> unique_constraint(:email) |> validate_format(:email, @email_regex) + |> validate_inclusion(:actor_type, ["Person", "Service"]) end - @spec update_as_admin(%User{}, map) :: {:ok, User.t()} | {:error, Ecto.Changeset.t()} + @spec update_as_admin(User.t(), map()) :: {:ok, User.t()} | {:error, Changeset.t()} def update_as_admin(user, params) do params = Map.put(params, "password_confirmation", params["password"]) changeset = update_as_admin_changeset(user, params) @@ -556,7 +588,7 @@ def password_update_changeset(struct, params) do |> put_change(:password_reset_pending, false) end - @spec reset_password(User.t(), map) :: {:ok, User.t()} | {:error, Ecto.Changeset.t()} + @spec reset_password(User.t(), map()) :: {:ok, User.t()} | {:error, Changeset.t()} def reset_password(%User{} = user, params) do reset_password(user, user, params) end @@ -601,7 +633,16 @@ def register_changeset(struct, params \\ %{}, opts \\ []) do struct |> confirmation_changeset(need_confirmation: need_confirmation?) - |> cast(params, [:bio, :email, :name, :nickname, :password, :password_confirmation, :emoji]) + |> cast(params, [ + :bio, + :raw_bio, + :email, + :name, + :nickname, + :password, + :password_confirmation, + :emoji + ]) |> validate_required([:name, :nickname, :password, :password_confirmation]) |> validate_confirmation(:password) |> unique_constraint(:email) @@ -741,7 +782,6 @@ def follow(%User{} = follower, %User{} = followed, state \\ :follow_accept) do follower |> update_following_count() - |> set_cache() end end @@ -749,7 +789,19 @@ def unfollow(%User{ap_id: ap_id}, %User{ap_id: ap_id}) do {:error, "Not subscribed!"} end + @spec unfollow(User.t(), User.t()) :: {:ok, User.t(), Activity.t()} | {:error, String.t()} def unfollow(%User{} = follower, %User{} = followed) do + case do_unfollow(follower, followed) do + {:ok, follower, followed} -> + {:ok, follower, Utils.fetch_latest_follow(follower, followed)} + + error -> + error + end + end + + @spec do_unfollow(User.t(), User.t()) :: {:ok, User.t(), User.t()} | {:error, String.t()} + defp do_unfollow(%User{} = follower, %User{} = followed) do case get_follow_state(follower, followed) do state when state in [:follow_pending, :follow_accept] -> FollowingRelationship.unfollow(follower, followed) @@ -758,9 +810,8 @@ def unfollow(%User{} = follower, %User{} = followed) do {:ok, follower} = follower |> update_following_count() - |> set_cache() - {:ok, follower, Utils.fetch_latest_follow(follower, followed)} + {:ok, follower, followed} nil -> {:error, "Not subscribed!"} @@ -1110,35 +1161,25 @@ defp follow_information_changeset(user, params) do ]) end + @spec update_follower_count(User.t()) :: {:ok, User.t()} def update_follower_count(%User{} = user) do if user.local or !Pleroma.Config.get([:instance, :external_user_synchronization]) do - follower_count_query = - User.Query.build(%{followers: user, deactivated: false}) - |> select([u], %{count: count(u.id)}) + follower_count = FollowingRelationship.follower_count(user) - User - |> where(id: ^user.id) - |> join(:inner, [u], s in subquery(follower_count_query)) - |> update([u, s], - set: [follower_count: s.count] - ) - |> select([u], u) - |> Repo.update_all([]) - |> case do - {1, [user]} -> set_cache(user) - _ -> {:error, user} - end + user + |> follow_information_changeset(%{follower_count: follower_count}) + |> update_and_set_cache else {:ok, maybe_fetch_follow_information(user)} end end - @spec update_following_count(User.t()) :: User.t() + @spec update_following_count(User.t()) :: {:ok, User.t()} def update_following_count(%User{local: false} = user) do if Pleroma.Config.get([:instance, :external_user_synchronization]) do - maybe_fetch_follow_information(user) + {:ok, maybe_fetch_follow_information(user)} else - user + {:ok, user} end end @@ -1147,7 +1188,7 @@ def update_following_count(%User{local: true} = user) do user |> follow_information_changeset(%{following_count: following_count}) - |> Repo.update!() + |> update_and_set_cache() end def set_unread_conversation_count(%User{local: true} = user) do @@ -1191,8 +1232,9 @@ def increment_unread_conversation_count(conversation, %User{local: true} = user) def increment_unread_conversation_count(_, user), do: {:ok, user} - @spec get_users_from_set([String.t()], boolean()) :: [User.t()] - def get_users_from_set(ap_ids, local_only \\ true) do + @spec get_users_from_set([String.t()], keyword()) :: [User.t()] + def get_users_from_set(ap_ids, opts \\ []) do + local_only = Keyword.get(opts, :local_only, true) criteria = %{ap_id: ap_ids, deactivated: false} criteria = if local_only, do: Map.put(criteria, :local, true), else: criteria @@ -1204,7 +1246,9 @@ def get_users_from_set(ap_ids, local_only \\ true) do def get_recipients_from_activity(%Activity{recipients: to, actor: actor}) do to = [actor | to] - User.Query.build(%{recipients_from_activity: to, local: true, deactivated: false}) + query = User.Query.build(%{recipients_from_activity: to, local: true, deactivated: false}) + + query |> Repo.all() end @@ -1265,7 +1309,8 @@ def block(%User{} = blocker, %User{} = blocked) do unsubscribe(blocked, blocker) - if following?(blocked, blocker), do: unfollow(blocked, blocker) + unfollowing_blocked = Config.get([:activitypub, :unfollow_blocked], true) + if unfollowing_blocked && following?(blocked, blocker), do: unfollow(blocked, blocker) {:ok, blocker} = update_follower_count(blocker) {:ok, blocker, _} = Participation.mark_all_as_read(blocker, blocked) @@ -1400,15 +1445,13 @@ def deactivate(%User{} = user, status) do user |> get_followers() |> Enum.filter(& &1.local) - |> Enum.each(fn follower -> - follower |> update_following_count() |> set_cache() - end) + |> Enum.each(&set_cache(update_following_count(&1))) # Only update local user counts, remote will be update during the next pull. user |> get_friends() |> Enum.filter(& &1.local) - |> Enum.each(&update_follower_count/1) + |> Enum.each(&do_unfollow(user, &1)) {:ok, user} end @@ -1430,6 +1473,25 @@ def delete(%User{} = user) do BackgroundWorker.enqueue("delete_user", %{"user_id" => user.id}) end + defp delete_and_invalidate_cache(%User{} = user) do + invalidate_cache(user) + Repo.delete(user) + end + + defp delete_or_deactivate(%User{local: false} = user), do: delete_and_invalidate_cache(user) + + defp delete_or_deactivate(%User{local: true} = user) do + status = account_status(user) + + if status == :confirmation_pending do + delete_and_invalidate_cache(user) + else + user + |> change(%{deactivated: true, email: nil}) + |> update_and_set_cache() + end + end + def perform(:force_password_reset, user), do: force_password_reset(user) @spec perform(atom(), User.t()) :: {:ok, User.t()} @@ -1450,15 +1512,11 @@ def perform(:delete, %User{} = user) do end) delete_user_activities(user) + delete_notifications_from_user_activities(user) - if user.local do - user - |> change(%{deactivated: true, email: nil}) - |> update_and_set_cache() - else - invalidate_cache(user) - Repo.delete(user) - end + delete_outgoing_pending_follow_requests(user) + + delete_or_deactivate(user) end def perform(:deactivate_async, user, status), do: deactivate(user, status) @@ -1470,8 +1528,7 @@ def perform(:blocks_import, %User{} = blocker, blocked_identifiers) blocked_identifiers, fn blocked_identifier -> with {:ok, %User{} = blocked} <- get_or_fetch(blocked_identifier), - {:ok, _user_block} <- block(blocker, blocked), - {:ok, _} <- ActivityPub.block(blocker, blocked) do + {:ok, _block} <- CommonAPI.block(blocker, blocked) do blocked else err -> @@ -1543,6 +1600,13 @@ def follow_import(%User{} = follower, followed_identifiers) }) end + def delete_notifications_from_user_activities(%User{ap_id: ap_id}) do + Notification + |> join(:inner, [n], activity in assoc(n, :activity)) + |> where([n, a], fragment("? = ?", a.actor, ^ap_id)) + |> Repo.delete_all() + end + def delete_user_activities(%User{ap_id: ap_id} = user) do ap_id |> Activity.Queries.by_actor() @@ -1580,6 +1644,12 @@ defp delete_activity(%{data: %{"type" => type}} = activity, user) defp delete_activity(_activity, _user), do: "Doing nothing" + defp delete_outgoing_pending_follow_requests(user) do + user + |> FollowingRelationship.outgoing_pending_follow_requests_query() + |> Repo.delete_all() + end + def html_filter_policy(%User{no_rich_text: true}) do Pleroma.HTML.Scrubber.TwitterText end @@ -1589,12 +1659,19 @@ def html_filter_policy(_), do: Pleroma.Config.get([:markup, :scrub_policy]) def fetch_by_ap_id(ap_id), do: ActivityPub.make_user_from_ap_id(ap_id) def get_or_fetch_by_ap_id(ap_id) do - user = get_cached_by_ap_id(ap_id) + cached_user = get_cached_by_ap_id(ap_id) - if !is_nil(user) and !needs_update?(user) do - {:ok, user} - else - fetch_by_ap_id(ap_id) + maybe_fetched_user = needs_update?(cached_user) && fetch_by_ap_id(ap_id) + + case {cached_user, maybe_fetched_user} do + {_, {:ok, %User{} = user}} -> + {:ok, user} + + {%User{} = user, _} -> + {:ok, user} + + _ -> + {:error, :not_found} end end diff --git a/lib/pleroma/user/query.ex b/lib/pleroma/user/query.ex index 3a3b04793..66ffe9090 100644 --- a/lib/pleroma/user/query.ex +++ b/lib/pleroma/user/query.ex @@ -45,7 +45,7 @@ defmodule Pleroma.User.Query do is_admin: boolean(), is_moderator: boolean(), super_users: boolean(), - exclude_service_users: boolean(), + invisible: boolean(), followers: User.t(), friends: User.t(), recipients_from_activity: [String.t()], @@ -89,8 +89,8 @@ defp compose_query({key, value}, query) where(query, [u], ilike(field(u, ^key), ^"%#{value}%")) end - defp compose_query({:exclude_service_users, _}, query) do - where(query, [u], not like(u.ap_id, "%/relay") and not like(u.ap_id, "%/internal/fetch")) + defp compose_query({:invisible, bool}, query) when is_boolean(bool) do + where(query, [u], u.invisible == ^bool) end defp compose_query({key, value}, query) @@ -167,20 +167,18 @@ defp compose_query({:friends, %User{id: id}}, query) do end defp compose_query({:recipients_from_activity, to}, query) do - query - |> join(:left, [u], r in FollowingRelationship, - as: :relationships, - on: r.follower_id == u.id + following_query = + from(u in User, + join: f in FollowingRelationship, + on: u.id == f.following_id, + where: f.state == ^:follow_accept, + where: u.follower_address in ^to, + select: f.follower_id + ) + + from(u in query, + where: u.ap_id in ^to or u.id in subquery(following_query) ) - |> join(:left, [relationships: r], f in User, - as: :following, - on: f.id == r.following_id - ) - |> where( - [u, following: f, relationships: r], - u.ap_id in ^to or (f.follower_address in ^to and r.state == ^:follow_accept) - ) - |> distinct(true) end defp compose_query({:order_by, key}, query) do diff --git a/lib/pleroma/user_relationship.ex b/lib/pleroma/user_relationship.ex index 235ad427c..6dfdd2860 100644 --- a/lib/pleroma/user_relationship.ex +++ b/lib/pleroma/user_relationship.ex @@ -87,6 +87,22 @@ def dictionary( source_to_target_rel_types \\ nil, target_to_source_rel_types \\ nil ) + + def dictionary( + _source_users, + _target_users, + [] = _source_to_target_rel_types, + [] = _target_to_source_rel_types + ) do + [] + end + + def dictionary( + source_users, + target_users, + source_to_target_rel_types, + target_to_source_rel_types + ) when is_list(source_users) and is_list(target_users) do source_user_ids = User.binary_id(source_users) target_user_ids = User.binary_id(target_users) @@ -138,11 +154,16 @@ def view_relationships_option(nil = _reading_user, _actors, _opts) do def view_relationships_option(%User{} = reading_user, actors, opts) do {source_to_target_rel_types, target_to_source_rel_types} = - if opts[:source_mutes_only] do - # This option is used for rendering statuses (FE needs `muted` flag for each one anyways) - {[:mute], []} - else - {[:block, :mute, :notification_mute, :reblog_mute], [:block, :inverse_subscription]} + case opts[:subset] do + :source_mutes -> + # Used for statuses rendering (FE needs `muted` flag for each status when statuses load) + {[:mute], []} + + nil -> + {[:block, :mute, :notification_mute, :reblog_mute], [:block, :inverse_subscription]} + + unknown -> + raise "Unsupported :subset option value: #{inspect(unknown)}" end user_relationships = @@ -153,7 +174,17 @@ def view_relationships_option(%User{} = reading_user, actors, opts) do target_to_source_rel_types ) - following_relationships = FollowingRelationship.all_between_user_sets([reading_user], actors) + following_relationships = + case opts[:subset] do + :source_mutes -> + [] + + nil -> + FollowingRelationship.all_between_user_sets([reading_user], actors) + + unknown -> + raise "Unsupported :subset option value: #{inspect(unknown)}" + end %{user_relationships: user_relationships, following_relationships: following_relationships} end diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index d752f4f04..05bd824f5 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -5,10 +5,12 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do alias Pleroma.Activity alias Pleroma.Activity.Ir.Topics + alias Pleroma.ActivityExpiration alias Pleroma.Config alias Pleroma.Constants alias Pleroma.Conversation alias Pleroma.Conversation.Participation + alias Pleroma.Maps alias Pleroma.Notification alias Pleroma.Object alias Pleroma.Object.Containment @@ -19,7 +21,6 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do alias Pleroma.User alias Pleroma.Web.ActivityPub.MRF alias Pleroma.Web.ActivityPub.Transmogrifier - alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.Streamer alias Pleroma.Web.WebFinger alias Pleroma.Workers.BackgroundWorker @@ -31,25 +32,6 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do require Logger require Pleroma.Constants - # For Announce activities, we filter the recipients based on following status for any actors - # that match actual users. See issue #164 for more information about why this is necessary. - defp get_recipients(%{"type" => "Announce"} = data) do - to = Map.get(data, "to", []) - cc = Map.get(data, "cc", []) - bcc = Map.get(data, "bcc", []) - actor = User.get_cached_by_ap_id(data["actor"]) - - recipients = - Enum.filter(Enum.concat([to, cc, bcc]), fn recipient -> - case User.get_cached_by_ap_id(recipient) do - nil -> true - user -> User.following?(user, actor) - end - end) - - {recipients, to, cc} - end - defp get_recipients(%{"type" => "Create"} = data) do to = Map.get(data, "to", []) cc = Map.get(data, "cc", []) @@ -67,16 +49,12 @@ defp get_recipients(data) do {recipients, to, cc} end - defp check_actor_is_active(actor) do - if not is_nil(actor) do - with user <- User.get_cached_by_ap_id(actor), - false <- user.deactivated do - true - else - _e -> false - end - else - true + defp check_actor_is_active(nil), do: true + + defp check_actor_is_active(actor) when is_binary(actor) do + case User.get_cached_by_ap_id(actor) do + %User{deactivated: deactivated} -> not deactivated + _ -> false end end @@ -87,7 +65,7 @@ defp check_remote_limit(%{"object" => %{"content" => content}}) when not is_nil( defp check_remote_limit(_), do: true - def increase_note_count_if_public(actor, object) do + defp increase_note_count_if_public(actor, object) do if is_public?(object), do: User.increase_note_count(actor), else: {:ok, actor} end @@ -95,38 +73,35 @@ def decrease_note_count_if_public(actor, object) do if is_public?(object), do: User.decrease_note_count(actor), else: {:ok, actor} end - def increase_replies_count_if_reply(%{ - "object" => %{"inReplyTo" => reply_ap_id} = object, - "type" => "Create" - }) do + defp increase_replies_count_if_reply(%{ + "object" => %{"inReplyTo" => reply_ap_id} = object, + "type" => "Create" + }) do if is_public?(object) do Object.increase_replies_count(reply_ap_id) end end - def increase_replies_count_if_reply(_create_data), do: :noop + defp increase_replies_count_if_reply(_create_data), do: :noop - def decrease_replies_count_if_reply(%Object{ - data: %{"inReplyTo" => reply_ap_id} = object - }) do - if is_public?(object) do - Object.decrease_replies_count(reply_ap_id) - end - end - - def decrease_replies_count_if_reply(_object), do: :noop - - def increase_poll_votes_if_vote(%{ - "object" => %{"inReplyTo" => reply_ap_id, "name" => name}, - "type" => "Create", - "actor" => actor - }) do + defp increase_poll_votes_if_vote(%{ + "object" => %{"inReplyTo" => reply_ap_id, "name" => name}, + "type" => "Create", + "actor" => actor + }) do Object.increase_vote_count(reply_ap_id, name, actor) end - def increase_poll_votes_if_vote(_create_data), do: :noop + defp increase_poll_votes_if_vote(_create_data), do: :noop + @object_types ["ChatMessage"] @spec persist(map(), keyword()) :: {:ok, Activity.t() | Object.t()} + def persist(%{"type" => type} = object, meta) when type in @object_types do + with {:ok, object} <- Object.create(object) do + {:ok, object, meta} + end + end + def persist(object, meta) do with local <- Keyword.fetch!(meta, :local), {recipients, _, _} <- get_recipients(object), @@ -153,20 +128,17 @@ def insert(map, local \\ true, fake \\ false, bypass_actor_check \\ false) when {:containment, :ok} <- {:containment, Containment.contain_child(map)}, {:ok, map, object} <- insert_full_object(map) do {:ok, activity} = - Repo.insert(%Activity{ + %Activity{ data: map, local: local, actor: map["actor"], recipients: recipients - }) + } + |> Repo.insert() + |> maybe_create_activity_expiration() # Splice in the child object if we have one. - activity = - if not is_nil(object) do - Map.put(activity, :object, object) - else - activity - end + activity = Maps.put_if_present(activity, :object, object) BackgroundWorker.enqueue("fetch_data_for_activity", %{"activity_id" => activity.id}) @@ -201,10 +173,18 @@ def notify_and_stream(activity) do stream_out_participations(participations) end + defp maybe_create_activity_expiration({:ok, %{data: %{"expires_at" => expires_at}} = activity}) do + with {:ok, _} <- ActivityExpiration.create(activity, expires_at) do + {:ok, activity} + end + end + + defp maybe_create_activity_expiration(result), do: result + defp create_or_bump_conversation(activity, actor) do with {:ok, conversation} <- Conversation.create_or_bump_for(activity), - %User{} = user <- User.get_cached_by_ap_id(actor), - Participation.mark_as_read(user, conversation) do + %User{} = user <- User.get_cached_by_ap_id(actor) do + Participation.mark_as_read(user, conversation) {:ok, conversation} end end @@ -226,13 +206,15 @@ def stream_out_participations(participations) do end def stream_out_participations(%Object{data: %{"context" => context}}, user) do - with %Conversation{} = conversation <- Conversation.get_for_ap_id(context), - conversation = Repo.preload(conversation, :participations), - last_activity_id = - fetch_latest_activity_id_for_context(conversation.ap_id, %{ - "user" => user, - "blocking_user" => user - }) do + with %Conversation{} = conversation <- Conversation.get_for_ap_id(context) do + conversation = Repo.preload(conversation, :participations) + + last_activity_id = + fetch_latest_direct_activity_id_for_context(conversation.ap_id, %{ + user: user, + blocking_user: user + }) + if last_activity_id do stream_out_participations(conversation.participations) end @@ -266,12 +248,13 @@ defp do_create(%{to: to, actor: actor, context: context, object: object} = param published = params[:published] quick_insert? = Config.get([:env]) == :benchmark - with create_data <- - make_create_data( - %{to: to, actor: actor, published: published, context: context, object: object}, - additional - ), - {:ok, activity} <- insert(create_data, local, fake), + create_data = + make_create_data( + %{to: to, actor: actor, published: published, context: context, object: object}, + additional + ) + + with {:ok, activity} <- insert(create_data, local, fake), {:fake, false, activity} <- {:fake, fake, activity}, _ <- increase_replies_count_if_reply(create_data), _ <- increase_poll_votes_if_vote(create_data), @@ -299,12 +282,13 @@ def listen(%{to: to, actor: actor, context: context, object: object} = params) d local = !(params[:local] == false) published = params[:published] - with listen_data <- - make_listen_data( - %{to: to, actor: actor, published: published, context: context, object: object}, - additional - ), - {:ok, activity} <- insert(listen_data, local), + listen_data = + make_listen_data( + %{to: to, actor: actor, published: published, context: context, object: object}, + additional + ) + + with {:ok, activity} <- insert(listen_data, local), _ <- notify_and_stream(activity), :ok <- maybe_federate(activity) do {:ok, activity} @@ -322,83 +306,36 @@ def reject(params) do end @spec accept_or_reject(String.t(), map()) :: {:ok, Activity.t()} | {:error, any()} - def accept_or_reject(type, %{to: to, actor: actor, object: object} = params) do + defp accept_or_reject(type, %{to: to, actor: actor, object: object} = params) do local = Map.get(params, :local, true) activity_id = Map.get(params, :activity_id, nil) - with data <- - %{"to" => to, "type" => type, "actor" => actor.ap_id, "object" => object} - |> Utils.maybe_put("id", activity_id), - {:ok, activity} <- insert(data, local), + data = + %{"to" => to, "type" => type, "actor" => actor.ap_id, "object" => object} + |> Maps.put_if_present("id", activity_id) + + with {:ok, activity} <- insert(data, local), _ <- notify_and_stream(activity), :ok <- maybe_federate(activity) do {:ok, activity} end end - @spec update(map()) :: {:ok, Activity.t()} | {:error, any()} - def update(%{to: to, cc: cc, actor: actor, object: object} = params) do - local = !(params[:local] == false) - activity_id = params[:activity_id] - - with data <- %{ - "to" => to, - "cc" => cc, - "type" => "Update", - "actor" => actor, - "object" => object - }, - data <- Utils.maybe_put(data, "id", activity_id), - {:ok, activity} <- insert(data, local), - _ <- notify_and_stream(activity), - :ok <- maybe_federate(activity) do - {:ok, activity} - end - end - - @spec announce(User.t(), Object.t(), String.t() | nil, boolean(), boolean()) :: - {:ok, Activity.t(), Object.t()} | {:error, any()} - def announce( - %User{ap_id: _} = user, - %Object{data: %{"id" => _}} = object, - activity_id \\ nil, - local \\ true, - public \\ true - ) do - with {:ok, result} <- - Repo.transaction(fn -> do_announce(user, object, activity_id, local, public) end) do - result - end - end - - defp do_announce(user, object, activity_id, local, public) do - with true <- is_announceable?(object, user, public), - object <- Object.get_by_id(object.id), - announce_data <- make_announce_data(user, object, activity_id, public), - {:ok, activity} <- insert(announce_data, local), - {:ok, object} <- add_announce_to_object(activity, object), - _ <- notify_and_stream(activity), - :ok <- maybe_federate(activity) do - {:ok, activity, object} - else - false -> {:error, false} - {:error, error} -> Repo.rollback(error) - end - end - - @spec follow(User.t(), User.t(), String.t() | nil, boolean()) :: + @spec follow(User.t(), User.t(), String.t() | nil, boolean(), keyword()) :: {:ok, Activity.t()} | {:error, any()} - def follow(follower, followed, activity_id \\ nil, local \\ true) do + def follow(follower, followed, activity_id \\ nil, local \\ true, opts \\ []) do with {:ok, result} <- - Repo.transaction(fn -> do_follow(follower, followed, activity_id, local) end) do + Repo.transaction(fn -> do_follow(follower, followed, activity_id, local, opts) end) do result end end - defp do_follow(follower, followed, activity_id, local) do - with data <- make_follow_data(follower, followed, activity_id), - {:ok, activity} <- insert(data, local), - _ <- notify_and_stream(activity), + defp do_follow(follower, followed, activity_id, local, opts) do + skip_notify_and_stream = Keyword.get(opts, :skip_notify_and_stream, false) + data = make_follow_data(follower, followed, activity_id) + + with {:ok, activity} <- insert(data, local), + _ <- skip_notify_and_stream || notify_and_stream(activity), :ok <- maybe_federate(activity) do {:ok, activity} else @@ -429,33 +366,6 @@ defp do_unfollow(follower, followed, activity_id, local) do end end - @spec block(User.t(), User.t(), String.t() | nil, boolean()) :: - {:ok, Activity.t()} | {:error, any()} - def block(blocker, blocked, activity_id \\ nil, local \\ true) do - with {:ok, result} <- - Repo.transaction(fn -> do_block(blocker, blocked, activity_id, local) end) do - result - end - end - - defp do_block(blocker, blocked, activity_id, local) do - unfollow_blocked = Config.get([:activitypub, :unfollow_blocked]) - - if unfollow_blocked do - follow_activity = fetch_latest_follow(blocker, blocked) - if follow_activity, do: unfollow(blocker, blocked, nil, local) - end - - with block_data <- make_block_data(blocker, blocked, activity_id), - {:ok, activity} <- insert(block_data, local), - _ <- notify_and_stream(activity), - :ok <- maybe_federate(activity) do - {:ok, activity} - else - {:error, error} -> Repo.rollback(error) - end - end - @spec flag(map()) :: {:ok, Activity.t()} | {:error, any()} def flag( %{ @@ -526,8 +436,8 @@ def fetch_activities_for_context_query(context, opts) do public = [Constants.as_public()] recipients = - if opts["user"], - do: [opts["user"].ap_id | User.following(opts["user"])] ++ public, + if opts[:user], + do: [opts[:user].ap_id | User.following(opts[:user])] ++ public, else: public from(activity in Activity) @@ -535,7 +445,7 @@ def fetch_activities_for_context_query(context, opts) do |> maybe_preload_bookmarks(opts) |> maybe_set_thread_muted_field(opts) |> restrict_blocked(opts) - |> restrict_recipients(recipients, opts["user"]) + |> restrict_recipients(recipients, opts[:user]) |> where( [activity], fragment( @@ -558,45 +468,50 @@ def fetch_activities_for_context(context, opts \\ %{}) do |> Repo.all() end - @spec fetch_latest_activity_id_for_context(String.t(), keyword() | map()) :: + @spec fetch_latest_direct_activity_id_for_context(String.t(), keyword() | map()) :: FlakeId.Ecto.CompatType.t() | nil - def fetch_latest_activity_id_for_context(context, opts \\ %{}) do + def fetch_latest_direct_activity_id_for_context(context, opts \\ %{}) do context - |> fetch_activities_for_context_query(Map.merge(%{"skip_preload" => true}, opts)) + |> fetch_activities_for_context_query(Map.merge(%{skip_preload: true}, opts)) + |> restrict_visibility(%{visibility: "direct"}) |> limit(1) |> select([a], a.id) |> Repo.one() end - @spec fetch_public_activities(map(), Pagination.type()) :: [Activity.t()] - def fetch_public_activities(opts \\ %{}, pagination \\ :keyset) do - opts = Map.drop(opts, ["user"]) + @spec fetch_public_or_unlisted_activities(map(), Pagination.type()) :: [Activity.t()] + def fetch_public_or_unlisted_activities(opts \\ %{}, pagination \\ :keyset) do + opts = Map.delete(opts, :user) [Constants.as_public()] |> fetch_activities_query(opts) - |> restrict_unlisted() + |> restrict_unlisted(opts) |> Pagination.fetch_paginated(opts, pagination) end + @spec fetch_public_activities(map(), Pagination.type()) :: [Activity.t()] + def fetch_public_activities(opts \\ %{}, pagination \\ :keyset) do + opts + |> Map.put(:restrict_unlisted, true) + |> fetch_public_or_unlisted_activities(pagination) + end + @valid_visibilities ~w[direct unlisted public private] defp restrict_visibility(query, %{visibility: visibility}) when is_list(visibility) do if Enum.all?(visibility, &(&1 in @valid_visibilities)) do - query = - from( - a in query, - where: - fragment( - "activity_visibility(?, ?, ?) = ANY (?)", - a.actor, - a.recipients, - a.data, - ^visibility - ) - ) - - query + from( + a in query, + where: + fragment( + "activity_visibility(?, ?, ?) = ANY (?)", + a.actor, + a.recipients, + a.data, + ^visibility + ) + ) else Logger.error("Could not restrict visibility to #{visibility}") end @@ -618,7 +533,7 @@ defp restrict_visibility(_query, %{visibility: visibility}) defp restrict_visibility(query, _visibility), do: query - defp exclude_visibility(query, %{"exclude_visibilities" => visibility}) + defp exclude_visibility(query, %{exclude_visibilities: visibility}) when is_list(visibility) do if Enum.all?(visibility, &(&1 in @valid_visibilities)) do from( @@ -638,7 +553,7 @@ defp exclude_visibility(query, %{"exclude_visibilities" => visibility}) end end - defp exclude_visibility(query, %{"exclude_visibilities" => visibility}) + defp exclude_visibility(query, %{exclude_visibilities: visibility}) when visibility in @valid_visibilities do from( a in query, @@ -653,7 +568,7 @@ defp exclude_visibility(query, %{"exclude_visibilities" => visibility}) ) end - defp exclude_visibility(query, %{"exclude_visibilities" => visibility}) + defp exclude_visibility(query, %{exclude_visibilities: visibility}) when visibility not in [nil | @valid_visibilities] do Logger.error("Could not exclude visibility to #{visibility}") query @@ -664,14 +579,10 @@ defp exclude_visibility(query, _visibility), do: query defp restrict_thread_visibility(query, _, %{skip_thread_containment: true} = _), do: query - defp restrict_thread_visibility( - query, - %{"user" => %User{skip_thread_containment: true}}, - _ - ), - do: query + defp restrict_thread_visibility(query, %{user: %User{skip_thread_containment: true}}, _), + do: query - defp restrict_thread_visibility(query, %{"user" => %User{ap_id: ap_id}}, _) do + defp restrict_thread_visibility(query, %{user: %User{ap_id: ap_id}}, _) do from( a in query, where: fragment("thread_visibility(?, (?)->>'id') = true", ^ap_id, a.data) @@ -683,87 +594,99 @@ defp restrict_thread_visibility(query, _, _), do: query def fetch_user_abstract_activities(user, reading_user, params \\ %{}) do params = params - |> Map.put("user", reading_user) - |> Map.put("actor_id", user.ap_id) + |> Map.put(:user, reading_user) + |> Map.put(:actor_id, user.ap_id) - recipients = - user_activities_recipients(%{ - "godmode" => params["godmode"], - "reading_user" => reading_user - }) - - fetch_activities(recipients, params) + %{ + godmode: params[:godmode], + reading_user: reading_user + } + |> user_activities_recipients() + |> fetch_activities(params) |> Enum.reverse() end def fetch_user_activities(user, reading_user, params \\ %{}) do params = params - |> Map.put("type", ["Create", "Announce"]) - |> Map.put("user", reading_user) - |> Map.put("actor_id", user.ap_id) - |> Map.put("pinned_activity_ids", user.pinned_activities) + |> Map.put(:type, ["Create", "Announce"]) + |> Map.put(:user, reading_user) + |> Map.put(:actor_id, user.ap_id) + |> Map.put(:pinned_activity_ids, user.pinned_activities) params = if User.blocks?(reading_user, user) do params else params - |> Map.put("blocking_user", reading_user) - |> Map.put("muting_user", reading_user) + |> Map.put(:blocking_user, reading_user) + |> Map.put(:muting_user, reading_user) end - recipients = - user_activities_recipients(%{ - "godmode" => params["godmode"], - "reading_user" => reading_user - }) - - fetch_activities(recipients, params) + %{ + godmode: params[:godmode], + reading_user: reading_user + } + |> user_activities_recipients() + |> fetch_activities(params) |> Enum.reverse() end def fetch_statuses(reading_user, params) do - params = - params - |> Map.put("type", ["Create", "Announce"]) + params = Map.put(params, :type, ["Create", "Announce"]) - recipients = - user_activities_recipients(%{ - "godmode" => params["godmode"], - "reading_user" => reading_user - }) - - fetch_activities(recipients, params, :offset) + %{ + godmode: params[:godmode], + reading_user: reading_user + } + |> user_activities_recipients() + |> fetch_activities(params, :offset) |> Enum.reverse() end - defp user_activities_recipients(%{"godmode" => true}) do - [] - end + defp user_activities_recipients(%{godmode: true}), do: [] - defp user_activities_recipients(%{"reading_user" => reading_user}) do + defp user_activities_recipients(%{reading_user: reading_user}) do if reading_user do - [Constants.as_public()] ++ [reading_user.ap_id | User.following(reading_user)] + [Constants.as_public(), reading_user.ap_id | User.following(reading_user)] else [Constants.as_public()] end end - defp restrict_since(query, %{"since_id" => ""}), do: query + defp restrict_announce_object_actor(_query, %{announce_filtering_user: _, skip_preload: true}) do + raise "Can't use the child object without preloading!" + end - defp restrict_since(query, %{"since_id" => since_id}) do + defp restrict_announce_object_actor(query, %{announce_filtering_user: %{ap_id: actor}}) do + from( + [activity, object] in query, + where: + fragment( + "?->>'type' != ? or ?->>'actor' != ?", + activity.data, + "Announce", + object.data, + ^actor + ) + ) + end + + defp restrict_announce_object_actor(query, _), do: query + + defp restrict_since(query, %{since_id: ""}), do: query + + defp restrict_since(query, %{since_id: since_id}) do from(activity in query, where: activity.id > ^since_id) end defp restrict_since(query, _), do: query - defp restrict_tag_reject(_query, %{"tag_reject" => _tag_reject, "skip_preload" => true}) do + defp restrict_tag_reject(_query, %{tag_reject: _tag_reject, skip_preload: true}) do raise "Can't use the child object without preloading!" end - defp restrict_tag_reject(query, %{"tag_reject" => tag_reject}) - when is_list(tag_reject) and tag_reject != [] do + defp restrict_tag_reject(query, %{tag_reject: [_ | _] = tag_reject}) do from( [_activity, object] in query, where: fragment("not (?)->'tag' \\?| (?)", object.data, ^tag_reject) @@ -772,12 +695,11 @@ defp restrict_tag_reject(query, %{"tag_reject" => tag_reject}) defp restrict_tag_reject(query, _), do: query - defp restrict_tag_all(_query, %{"tag_all" => _tag_all, "skip_preload" => true}) do + defp restrict_tag_all(_query, %{tag_all: _tag_all, skip_preload: true}) do raise "Can't use the child object without preloading!" end - defp restrict_tag_all(query, %{"tag_all" => tag_all}) - when is_list(tag_all) and tag_all != [] do + defp restrict_tag_all(query, %{tag_all: [_ | _] = tag_all}) do from( [_activity, object] in query, where: fragment("(?)->'tag' \\?& (?)", object.data, ^tag_all) @@ -786,18 +708,18 @@ defp restrict_tag_all(query, %{"tag_all" => tag_all}) defp restrict_tag_all(query, _), do: query - defp restrict_tag(_query, %{"tag" => _tag, "skip_preload" => true}) do + defp restrict_tag(_query, %{tag: _tag, skip_preload: true}) do raise "Can't use the child object without preloading!" end - defp restrict_tag(query, %{"tag" => tag}) when is_list(tag) do + defp restrict_tag(query, %{tag: tag}) when is_list(tag) do from( [_activity, object] in query, where: fragment("(?)->'tag' \\?| (?)", object.data, ^tag) ) end - defp restrict_tag(query, %{"tag" => tag}) when is_binary(tag) do + defp restrict_tag(query, %{tag: tag}) when is_binary(tag) do from( [_activity, object] in query, where: fragment("(?)->'tag' \\? (?)", object.data, ^tag) @@ -820,35 +742,35 @@ defp restrict_recipients(query, recipients, user) do ) end - defp restrict_local(query, %{"local_only" => true}) do + defp restrict_local(query, %{local_only: true}) do from(activity in query, where: activity.local == true) end defp restrict_local(query, _), do: query - defp restrict_actor(query, %{"actor_id" => actor_id}) do + defp restrict_actor(query, %{actor_id: actor_id}) do from(activity in query, where: activity.actor == ^actor_id) end defp restrict_actor(query, _), do: query - defp restrict_type(query, %{"type" => type}) when is_binary(type) do + defp restrict_type(query, %{type: type}) when is_binary(type) do from(activity in query, where: fragment("?->>'type' = ?", activity.data, ^type)) end - defp restrict_type(query, %{"type" => type}) do + defp restrict_type(query, %{type: type}) do from(activity in query, where: fragment("?->>'type' = ANY(?)", activity.data, ^type)) end defp restrict_type(query, _), do: query - defp restrict_state(query, %{"state" => state}) do + defp restrict_state(query, %{state: state}) do from(activity in query, where: fragment("?->>'state' = ?", activity.data, ^state)) end defp restrict_state(query, _), do: query - defp restrict_favorited_by(query, %{"favorited_by" => ap_id}) do + defp restrict_favorited_by(query, %{favorited_by: ap_id}) do from( [_activity, object] in query, where: fragment("(?)->'likes' \\? (?)", object.data, ^ap_id) @@ -857,20 +779,21 @@ defp restrict_favorited_by(query, %{"favorited_by" => ap_id}) do defp restrict_favorited_by(query, _), do: query - defp restrict_media(_query, %{"only_media" => _val, "skip_preload" => true}) do + defp restrict_media(_query, %{only_media: _val, skip_preload: true}) do raise "Can't use the child object without preloading!" end - defp restrict_media(query, %{"only_media" => val}) when val in [true, "true", "1"] do + defp restrict_media(query, %{only_media: true}) do from( - [_activity, object] in query, + [activity, object] in query, + where: fragment("(?)->>'type' = ?", activity.data, "Create"), where: fragment("not (?)->'attachment' = (?)", object.data, ^[]) ) end defp restrict_media(query, _), do: query - defp restrict_replies(query, %{"exclude_replies" => val}) when val in [true, "true", "1"] do + defp restrict_replies(query, %{exclude_replies: true}) do from( [_activity, object] in query, where: fragment("?->>'inReplyTo' is null", object.data) @@ -878,8 +801,8 @@ defp restrict_replies(query, %{"exclude_replies" => val}) when val in [true, "tr end defp restrict_replies(query, %{ - "reply_filtering_user" => user, - "reply_visibility" => "self" + reply_filtering_user: user, + reply_visibility: "self" }) do from( [activity, object] in query, @@ -894,8 +817,8 @@ defp restrict_replies(query, %{ end defp restrict_replies(query, %{ - "reply_filtering_user" => user, - "reply_visibility" => "following" + reply_filtering_user: user, + reply_visibility: "following" }) do from( [activity, object] in query, @@ -914,16 +837,16 @@ defp restrict_replies(query, %{ defp restrict_replies(query, _), do: query - defp restrict_reblogs(query, %{"exclude_reblogs" => val}) when val in [true, "true", "1"] do + defp restrict_reblogs(query, %{exclude_reblogs: true}) do from(activity in query, where: fragment("?->>'type' != 'Announce'", activity.data)) end defp restrict_reblogs(query, _), do: query - defp restrict_muted(query, %{"with_muted" => val}) when val in [true, "true", "1"], do: query + defp restrict_muted(query, %{with_muted: true}), do: query - defp restrict_muted(query, %{"muting_user" => %User{} = user} = opts) do - mutes = opts["muted_users_ap_ids"] || User.muted_users_ap_ids(user) + defp restrict_muted(query, %{muting_user: %User{} = user} = opts) do + mutes = opts[:muted_users_ap_ids] || User.muted_users_ap_ids(user) query = from([activity] in query, @@ -931,7 +854,7 @@ defp restrict_muted(query, %{"muting_user" => %User{} = user} = opts) do where: fragment("not (?->'to' \\?| ?)", activity.data, ^mutes) ) - unless opts["skip_preload"] do + unless opts[:skip_preload] do from([thread_mute: tm] in query, where: is_nil(tm.user_id)) else query @@ -940,8 +863,8 @@ defp restrict_muted(query, %{"muting_user" => %User{} = user} = opts) do defp restrict_muted(query, _), do: query - defp restrict_blocked(query, %{"blocking_user" => %User{} = user} = opts) do - blocked_ap_ids = opts["blocked_users_ap_ids"] || User.blocked_users_ap_ids(user) + defp restrict_blocked(query, %{blocking_user: %User{} = user} = opts) do + blocked_ap_ids = opts[:blocked_users_ap_ids] || User.blocked_users_ap_ids(user) domain_blocks = user.domain_blocks || [] following_ap_ids = User.get_friends_ap_ids(user) @@ -953,6 +876,12 @@ defp restrict_blocked(query, %{"blocking_user" => %User{} = user} = opts) do [activity, object: o] in query, where: fragment("not (? = ANY(?))", activity.actor, ^blocked_ap_ids), where: fragment("not (? && ?)", activity.recipients, ^blocked_ap_ids), + where: + fragment( + "recipients_contain_blocked_domains(?, ?) = false", + activity.recipients, + ^domain_blocks + ), where: fragment( "not (?->>'type' = 'Announce' and ?->'to' \\?| ?)", @@ -981,7 +910,7 @@ defp restrict_blocked(query, %{"blocking_user" => %User{} = user} = opts) do defp restrict_blocked(query, _), do: query - defp restrict_unlisted(query) do + defp restrict_unlisted(query, %{restrict_unlisted: true}) do from( activity in query, where: @@ -993,19 +922,16 @@ defp restrict_unlisted(query) do ) end - # TODO: when all endpoints migrated to OpenAPI compare `pinned` with `true` (boolean) only, - # the same for `restrict_media/2`, `restrict_replies/2`, 'restrict_reblogs/2' - # and `restrict_muted/2` + defp restrict_unlisted(query, _), do: query - defp restrict_pinned(query, %{"pinned" => pinned, "pinned_activity_ids" => ids}) - when pinned in [true, "true", "1"] do + defp restrict_pinned(query, %{pinned: true, pinned_activity_ids: ids}) do from(activity in query, where: activity.id in ^ids) end defp restrict_pinned(query, _), do: query - defp restrict_muted_reblogs(query, %{"muting_user" => %User{} = user} = opts) do - muted_reblogs = opts["reblog_muted_users_ap_ids"] || User.reblog_muted_users_ap_ids(user) + defp restrict_muted_reblogs(query, %{muting_user: %User{} = user} = opts) do + muted_reblogs = opts[:reblog_muted_users_ap_ids] || User.reblog_muted_users_ap_ids(user) from( activity in query, @@ -1021,7 +947,7 @@ defp restrict_muted_reblogs(query, %{"muting_user" => %User{} = user} = opts) do defp restrict_muted_reblogs(query, _), do: query - defp restrict_instance(query, %{"instance" => instance}) do + defp restrict_instance(query, %{instance: instance}) do users = from( u in User, @@ -1035,7 +961,7 @@ defp restrict_instance(query, %{"instance" => instance}) do defp restrict_instance(query, _), do: query - defp exclude_poll_votes(query, %{"include_poll_votes" => true}), do: query + defp exclude_poll_votes(query, %{include_poll_votes: true}), do: query defp exclude_poll_votes(query, _) do if has_named_binding?(query, :object) do @@ -1047,38 +973,61 @@ defp exclude_poll_votes(query, _) do end end - defp exclude_id(query, %{"exclude_id" => id}) when is_binary(id) do + defp exclude_chat_messages(query, %{include_chat_messages: true}), do: query + + defp exclude_chat_messages(query, _) do + if has_named_binding?(query, :object) do + from([activity, object: o] in query, + where: fragment("not(?->>'type' = ?)", o.data, "ChatMessage") + ) + else + query + end + end + + defp exclude_invisible_actors(query, %{invisible_actors: true}), do: query + + defp exclude_invisible_actors(query, _opts) do + invisible_ap_ids = + User.Query.build(%{invisible: true, select: [:ap_id]}) + |> Repo.all() + |> Enum.map(fn %{ap_id: ap_id} -> ap_id end) + + from([activity] in query, where: activity.actor not in ^invisible_ap_ids) + end + + defp exclude_id(query, %{exclude_id: id}) when is_binary(id) do from(activity in query, where: activity.id != ^id) end defp exclude_id(query, _), do: query - defp maybe_preload_objects(query, %{"skip_preload" => true}), do: query + defp maybe_preload_objects(query, %{skip_preload: true}), do: query defp maybe_preload_objects(query, _) do query |> Activity.with_preloaded_object() end - defp maybe_preload_bookmarks(query, %{"skip_preload" => true}), do: query + defp maybe_preload_bookmarks(query, %{skip_preload: true}), do: query defp maybe_preload_bookmarks(query, opts) do query - |> Activity.with_preloaded_bookmark(opts["user"]) + |> Activity.with_preloaded_bookmark(opts[:user]) end - defp maybe_preload_report_notes(query, %{"preload_report_notes" => true}) do + defp maybe_preload_report_notes(query, %{preload_report_notes: true}) do query |> Activity.with_preloaded_report_notes() end defp maybe_preload_report_notes(query, _), do: query - defp maybe_set_thread_muted_field(query, %{"skip_preload" => true}), do: query + defp maybe_set_thread_muted_field(query, %{skip_preload: true}), do: query defp maybe_set_thread_muted_field(query, opts) do query - |> Activity.with_set_thread_muted_field(opts["muting_user"] || opts["user"]) + |> Activity.with_set_thread_muted_field(opts[:muting_user] || opts[:user]) end defp maybe_order(query, %{order: :desc}) do @@ -1094,24 +1043,23 @@ defp maybe_order(query, %{order: :asc}) do defp maybe_order(query, _), do: query defp fetch_activities_query_ap_ids_ops(opts) do - source_user = opts["muting_user"] + source_user = opts[:muting_user] ap_id_relationships = if source_user, do: [:mute, :reblog_mute], else: [] ap_id_relationships = - ap_id_relationships ++ - if opts["blocking_user"] && opts["blocking_user"] == source_user do - [:block] - else - [] - end + if opts[:blocking_user] && opts[:blocking_user] == source_user do + [:block | ap_id_relationships] + else + ap_id_relationships + end preloaded_ap_ids = User.outgoing_relationships_ap_ids(source_user, ap_id_relationships) - restrict_blocked_opts = Map.merge(%{"blocked_users_ap_ids" => preloaded_ap_ids[:block]}, opts) - restrict_muted_opts = Map.merge(%{"muted_users_ap_ids" => preloaded_ap_ids[:mute]}, opts) + restrict_blocked_opts = Map.merge(%{blocked_users_ap_ids: preloaded_ap_ids[:block]}, opts) + restrict_muted_opts = Map.merge(%{muted_users_ap_ids: preloaded_ap_ids[:mute]}, opts) restrict_muted_reblogs_opts = - Map.merge(%{"reblog_muted_users_ap_ids" => preloaded_ap_ids[:reblog_mute]}, opts) + Map.merge(%{reblog_muted_users_ap_ids: preloaded_ap_ids[:reblog_mute]}, opts) {restrict_blocked_opts, restrict_muted_opts, restrict_muted_reblogs_opts} end @@ -1130,7 +1078,7 @@ def fetch_activities_query(recipients, opts \\ %{}) do |> maybe_preload_report_notes(opts) |> maybe_set_thread_muted_field(opts) |> maybe_order(opts) - |> restrict_recipients(recipients, opts["user"]) + |> restrict_recipients(recipients, opts[:user]) |> restrict_replies(opts) |> restrict_tag(opts) |> restrict_tag_reject(opts) @@ -1150,18 +1098,21 @@ def fetch_activities_query(recipients, opts \\ %{}) do |> restrict_pinned(opts) |> restrict_muted_reblogs(restrict_muted_reblogs_opts) |> restrict_instance(opts) + |> restrict_announce_object_actor(opts) |> Activity.restrict_deactivated_users() |> exclude_poll_votes(opts) + |> exclude_chat_messages(opts) + |> exclude_invisible_actors(opts) |> exclude_visibility(opts) end def fetch_activities(recipients, opts \\ %{}, pagination \\ :keyset) do - list_memberships = Pleroma.List.memberships(opts["user"]) + list_memberships = Pleroma.List.memberships(opts[:user]) fetch_activities_query(recipients ++ list_memberships, opts) |> Pagination.fetch_paginated(opts, pagination) |> Enum.reverse() - |> maybe_update_cc(list_memberships, opts["user"]) + |> maybe_update_cc(list_memberships, opts[:user]) end @doc """ @@ -1174,19 +1125,17 @@ def fetch_favourites(user, params \\ %{}, pagination \\ :keyset) do |> Activity.Queries.by_type("Like") |> Activity.with_joined_object() |> Object.with_joined_activity() - |> select([_like, object, activity], %{activity | object: object}) - |> order_by([like, _, _], desc: like.id) + |> select([like, object, activity], %{activity | object: object, pagination_id: like.id}) + |> order_by([like, _, _], desc_nulls_last: like.id) |> Pagination.fetch_paginated( - Map.merge(params, %{"skip_order" => true}), - pagination, - :object_activity + Map.merge(params, %{skip_order: true}), + pagination ) end - defp maybe_update_cc(activities, list_memberships, %User{ap_id: user_ap_id}) - when is_list(list_memberships) and length(list_memberships) > 0 do + defp maybe_update_cc(activities, [_ | _] = list_memberships, %User{ap_id: user_ap_id}) do Enum.map(activities, fn - %{data: %{"bcc" => bcc}} = activity when is_list(bcc) and length(bcc) > 0 -> + %{data: %{"bcc" => [_ | _] = bcc}} = activity -> if Enum.any?(bcc, &(&1 in list_memberships)) do update_in(activity.data["cc"], &[user_ap_id | &1]) else @@ -1200,7 +1149,7 @@ defp maybe_update_cc(activities, list_memberships, %User{ap_id: user_ap_id}) defp maybe_update_cc(activities, _, _), do: activities - def fetch_activities_bounded_query(query, recipients, recipients_with_public) do + defp fetch_activities_bounded_query(query, recipients, recipients_with_public) do from(activity in query, where: fragment("? && ?", activity.recipients, ^recipients) or @@ -1224,12 +1173,7 @@ def fetch_activities_bounded( @spec upload(Upload.source(), keyword()) :: {:ok, Object.t()} | {:error, any()} def upload(file, opts \\ []) do with {:ok, data} <- Upload.store(file, opts) do - obj_data = - if opts[:actor] do - Map.put(data, "actor", opts[:actor]) - else - data - end + obj_data = Maps.put_if_present(data, "actor", opts[:actor]) Repo.insert(%Object{data: obj_data}) end @@ -1275,8 +1219,8 @@ defp object_to_user_data(data) do %{"type" => "Emoji"} -> true _ -> false end) - |> Enum.reduce(%{}, fn %{"icon" => %{"url" => url}, "name" => name}, acc -> - Map.put(acc, String.trim(name, ":"), url) + |> Map.new(fn %{"icon" => %{"url" => url}, "name" => name} -> + {String.trim(name, ":"), url} end) locked = data["manuallyApprovesFollowers"] || false @@ -1322,18 +1266,15 @@ defp object_to_user_data(data) do } # nickname can be nil because of virtual actors - user_data = - if data["preferredUsername"] do - Map.put( - user_data, - :nickname, - "#{data["preferredUsername"]}@#{URI.parse(data["id"]).host}" - ) - else - Map.put(user_data, :nickname, nil) - end - - {:ok, user_data} + if data["preferredUsername"] do + Map.put( + user_data, + :nickname, + "#{data["preferredUsername"]}@#{URI.parse(data["id"]).host}" + ) + else + Map.put(user_data, :nickname, nil) + end end def fetch_follow_information_for_user(user) do @@ -1408,9 +1349,8 @@ defp collection_private(%{"first" => first}) do defp collection_private(_data), do: {:ok, true} def user_data_from_user_object(data) do - with {:ok, data} <- MRF.filter(data), - {:ok, data} <- object_to_user_data(data) do - {:ok, data} + with {:ok, data} <- MRF.filter(data) do + {:ok, object_to_user_data(data)} else e -> {:error, e} end @@ -1418,15 +1358,14 @@ def user_data_from_user_object(data) do def fetch_and_prepare_user_from_ap_id(ap_id) do with {:ok, data} <- Fetcher.fetch_and_contain_remote_object_from_id(ap_id), - {:ok, data} <- user_data_from_user_object(data), - data <- maybe_update_follow_information(data) do - {:ok, data} + {:ok, data} <- user_data_from_user_object(data) do + {:ok, maybe_update_follow_information(data)} else - {:error, "Object has been deleted"} = e -> + {:error, "Object has been deleted" = e} -> Logger.debug("Could not decode user at fetch #{ap_id}, #{inspect(e)}") {:error, e} - e -> + {:error, e} -> Logger.error("Could not decode user at fetch #{ap_id}, #{inspect(e)}") {:error, e} end @@ -1449,8 +1388,6 @@ def make_user_from_ap_id(ap_id) do |> Repo.insert() |> User.set_cache() end - else - e -> {:error, e} end end end @@ -1464,7 +1401,7 @@ def make_user_from_nickname(nickname) do end # filter out broken threads - def contain_broken_threads(%Activity{} = activity, %User{} = user) do + defp contain_broken_threads(%Activity{} = activity, %User{} = user) do entire_thread_visible_for_user?(activity, user) end @@ -1475,7 +1412,7 @@ def contain_activity(%Activity{} = activity, %User{} = user) do def fetch_direct_messages_query do Activity - |> restrict_type(%{"type" => "Create"}) + |> restrict_type(%{type: "Create"}) |> restrict_visibility(%{visibility: "direct"}) |> order_by([activity], asc: activity.id) end diff --git a/lib/pleroma/web/activity_pub/activity_pub_controller.ex b/lib/pleroma/web/activity_pub/activity_pub_controller.ex index 62ad15d85..220c4fe52 100644 --- a/lib/pleroma/web/activity_pub/activity_pub_controller.ex +++ b/lib/pleroma/web/activity_pub/activity_pub_controller.ex @@ -21,6 +21,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubController do alias Pleroma.Web.ActivityPub.UserView alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.ActivityPub.Visibility + alias Pleroma.Web.ControllerHelper + alias Pleroma.Web.Endpoint alias Pleroma.Web.FederatingPlug alias Pleroma.Web.Federator @@ -75,8 +77,8 @@ def user(conn, %{"nickname" => nickname}) do end end - def object(conn, %{"uuid" => uuid}) do - with ap_id <- o_status_url(conn, :object, uuid), + def object(conn, _) do + with ap_id <- Endpoint.url() <> conn.request_path, %Object{} = object <- Object.get_cached_by_ap_id(ap_id), {_, true} <- {:public?, Visibility.is_public?(object)} do conn @@ -101,8 +103,8 @@ def track_object_fetch(conn, object_id) do conn end - def activity(conn, %{"uuid" => uuid}) do - with ap_id <- o_status_url(conn, :activity, uuid), + def activity(conn, _params) do + with ap_id <- Endpoint.url() <> conn.request_path, %Activity{} = activity <- Activity.normalize(ap_id), {_, true} <- {:public?, Visibility.is_public?(activity)} do conn @@ -229,27 +231,23 @@ def outbox( when page? in [true, "true"] do with %User{} = user <- User.get_cached_by_nickname(nickname), {:ok, user} <- User.ensure_keys_present(user) do - activities = - if params["max_id"] do - ActivityPub.fetch_user_activities(user, for_user, %{ - "max_id" => params["max_id"], - # This is a hack because postgres generates inefficient queries when filtering by - # 'Answer', poll votes will be hidden by the visibility filter in this case anyway - "include_poll_votes" => true, - "limit" => 10 - }) - else - ActivityPub.fetch_user_activities(user, for_user, %{ - "limit" => 10, - "include_poll_votes" => true - }) - end + # "include_poll_votes" is a hack because postgres generates inefficient + # queries when filtering by 'Answer', poll votes will be hidden by the + # visibility filter in this case anyway + params = + params + |> Map.drop(["nickname", "page"]) + |> Map.put("include_poll_votes", true) + |> Map.new(fn {k, v} -> {String.to_existing_atom(k), v} end) + + activities = ActivityPub.fetch_user_activities(user, for_user, params) conn |> put_resp_content_type("application/activity+json") |> put_view(UserView) |> render("activity_collection_page.json", %{ activities: activities, + pagination: ControllerHelper.get_pagination_fields(conn, activities), iri: "#{user.ap_id}/outbox" }) end @@ -352,21 +350,24 @@ def read_inbox( %{"nickname" => nickname, "page" => page?} = params ) when page? in [true, "true"] do + params = + params + |> Map.drop(["nickname", "page"]) + |> Map.put("blocking_user", user) + |> Map.put("user", user) + |> Map.new(fn {k, v} -> {String.to_existing_atom(k), v} end) + activities = - if params["max_id"] do - ActivityPub.fetch_activities([user.ap_id | User.following(user)], %{ - "max_id" => params["max_id"], - "limit" => 10 - }) - else - ActivityPub.fetch_activities([user.ap_id | User.following(user)], %{"limit" => 10}) - end + [user.ap_id | User.following(user)] + |> ActivityPub.fetch_activities(params) + |> Enum.reverse() conn |> put_resp_content_type("application/activity+json") |> put_view(UserView) |> render("activity_collection_page.json", %{ activities: activities, + pagination: ControllerHelper.get_pagination_fields(conn, activities), iri: "#{user.ap_id}/inbox" }) end @@ -513,7 +514,6 @@ defp ensure_user_keys_present_and_maybe_refresh_for_user(user, for_user) do {new_user, for_user} end - # TODO: Add support for "object" field @doc """ Endpoint based on @@ -524,6 +524,8 @@ defp ensure_user_keys_present_and_maybe_refresh_for_user(user, for_user) do Response: - HTTP Code: 201 Created - HTTP Body: ActivityPub object to be inserted into another's `attachment` field + + Note: Will not point to a URL with a `Location` header because no standalone Activity has been created. """ def upload_media(%{assigns: %{user: %User{} = user}} = conn, %{"file" => file} = data) do with {:ok, object} <- diff --git a/lib/pleroma/web/activity_pub/builder.ex b/lib/pleroma/web/activity_pub/builder.ex index 4a247ad0c..cabc28de9 100644 --- a/lib/pleroma/web/activity_pub/builder.ex +++ b/lib/pleroma/web/activity_pub/builder.ex @@ -5,11 +5,15 @@ defmodule Pleroma.Web.ActivityPub.Builder do This module encodes our addressing policies and general shape of our objects. """ + alias Pleroma.Emoji alias Pleroma.Object alias Pleroma.User + alias Pleroma.Web.ActivityPub.Relay alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.ActivityPub.Visibility + require Pleroma.Constants + @spec emoji_react(User.t(), Object.t(), String.t()) :: {:ok, map(), keyword()} def emoji_react(actor, object, emoji) do with {:ok, data, meta} <- object_action(actor, object) do @@ -62,6 +66,42 @@ def delete(actor, object_id) do }, []} end + def create(actor, object, recipients) do + {:ok, + %{ + "id" => Utils.generate_activity_id(), + "actor" => actor.ap_id, + "to" => recipients, + "object" => object, + "type" => "Create", + "published" => DateTime.utc_now() |> DateTime.to_iso8601() + }, []} + end + + def chat_message(actor, recipient, content, opts \\ []) do + basic = %{ + "id" => Utils.generate_object_id(), + "actor" => actor.ap_id, + "type" => "ChatMessage", + "to" => [recipient], + "content" => content, + "published" => DateTime.utc_now() |> DateTime.to_iso8601(), + "emoji" => Emoji.Formatter.get_emoji_map(content) + } + + case opts[:attachment] do + %Object{data: attachment_data} -> + { + :ok, + Map.put(basic, "attachment", attachment_data), + [] + } + + _ -> + {:ok, basic, []} + end + end + @spec tombstone(String.t(), String.t()) :: {:ok, map(), keyword()} def tombstone(actor, id) do {:ok, @@ -83,6 +123,61 @@ def like(actor, object) do end end + # Retricted to user updates for now, always public + @spec update(User.t(), Object.t()) :: {:ok, map(), keyword()} + def update(actor, object) do + to = [Pleroma.Constants.as_public(), actor.follower_address] + + {:ok, + %{ + "id" => Utils.generate_activity_id(), + "type" => "Update", + "actor" => actor.ap_id, + "object" => object, + "to" => to + }, []} + end + + @spec block(User.t(), User.t()) :: {:ok, map(), keyword()} + def block(blocker, blocked) do + {:ok, + %{ + "id" => Utils.generate_activity_id(), + "type" => "Block", + "actor" => blocker.ap_id, + "object" => blocked.ap_id, + "to" => [blocked.ap_id] + }, []} + end + + @spec announce(User.t(), Object.t(), keyword()) :: {:ok, map(), keyword()} + def announce(actor, object, options \\ []) do + public? = Keyword.get(options, :public, false) + + to = + cond do + actor.ap_id == Relay.relay_ap_id() -> + [actor.follower_address] + + public? -> + [actor.follower_address, object.data["actor"], Pleroma.Constants.as_public()] + + true -> + [actor.follower_address, object.data["actor"]] + end + + {:ok, + %{ + "id" => Utils.generate_activity_id(), + "actor" => actor.ap_id, + "object" => object.data["id"], + "to" => to, + "context" => object.data["context"], + "type" => "Announce", + "published" => Utils.make_date() + }, []} + end + @spec object_action(User.t(), Object.t()) :: {:ok, map(), keyword()} defp object_action(actor, object) do object_actor = User.get_cached_by_ap_id(object.data["actor"]) diff --git a/lib/pleroma/web/activity_pub/mrf.ex b/lib/pleroma/web/activity_pub/mrf.ex index a0b3af432..206d6af52 100644 --- a/lib/pleroma/web/activity_pub/mrf.ex +++ b/lib/pleroma/web/activity_pub/mrf.ex @@ -8,18 +8,15 @@ defmodule Pleroma.Web.ActivityPub.MRF do def filter(policies, %{} = object) do policies |> Enum.reduce({:ok, object}, fn - policy, {:ok, object} -> - policy.filter(object) - - _, error -> - error + policy, {:ok, object} -> policy.filter(object) + _, error -> error end) end def filter(%{} = object), do: get_policies() |> filter(object) def get_policies do - Pleroma.Config.get([:instance, :rewrite_policy], []) |> get_policies() + Pleroma.Config.get([:mrf, :policies], []) |> get_policies() end defp get_policies(policy) when is_atom(policy), do: [policy] @@ -54,7 +51,7 @@ def describe(policies) do get_policies() |> Enum.map(fn policy -> to_string(policy) |> String.split(".") |> List.last() end) - exclusions = Pleroma.Config.get([:instance, :mrf_transparency_exclusions]) + exclusions = Pleroma.Config.get([:mrf, :transparency_exclusions]) base = %{ diff --git a/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex b/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex new file mode 100644 index 000000000..8e47f1e02 --- /dev/null +++ b/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex @@ -0,0 +1,43 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy do + @moduledoc "Adds expiration to all local Create activities" + @behaviour Pleroma.Web.ActivityPub.MRF + + @impl true + def filter(activity) do + activity = + if note?(activity) and local?(activity) do + maybe_add_expiration(activity) + else + activity + end + + {:ok, activity} + end + + @impl true + def describe, do: {:ok, %{}} + + defp local?(%{"id" => id}) do + String.starts_with?(id, Pleroma.Web.Endpoint.url()) + end + + defp note?(activity) do + match?(%{"type" => "Create", "object" => %{"type" => "Note"}}, activity) + end + + defp maybe_add_expiration(activity) do + days = Pleroma.Config.get([:mrf_activity_expiration, :days], 365) + expires_at = NaiveDateTime.utc_now() |> Timex.shift(days: days) + + with %{"expires_at" => existing_expires_at} <- activity, + :lt <- NaiveDateTime.compare(existing_expires_at, expires_at) do + activity + else + _ -> Map.put(activity, "expires_at", expires_at) + end + end +end diff --git a/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex b/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex index 9e7800997..a7e187b5e 100644 --- a/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex @@ -27,11 +27,14 @@ defp contains_links?(_), do: false @impl true def filter(%{"type" => "Create", "actor" => actor, "object" => object} = message) do - with {:ok, %User{} = u} <- User.get_or_fetch_by_ap_id(actor), + with {:ok, %User{local: false} = u} <- User.get_or_fetch_by_ap_id(actor), {:contains_links, true} <- {:contains_links, contains_links?(object)}, {:old_user, true} <- {:old_user, old_user?(u)} do {:ok, message} else + {:ok, %User{local: true}} -> + {:ok, message} + {:contains_links, false} -> {:ok, message} diff --git a/lib/pleroma/web/activity_pub/mrf/hellthread_policy.ex b/lib/pleroma/web/activity_pub/mrf/hellthread_policy.ex index 1764bc789..f6b2c4415 100644 --- a/lib/pleroma/web/activity_pub/mrf/hellthread_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/hellthread_policy.ex @@ -13,8 +13,10 @@ defmodule Pleroma.Web.ActivityPub.MRF.HellthreadPolicy do defp delist_message(message, threshold) when threshold > 0 do follower_collection = User.get_cached_by_ap_id(message["actor"]).follower_address + to = message["to"] || [] + cc = message["cc"] || [] - follower_collection? = Enum.member?(message["to"] ++ message["cc"], follower_collection) + follower_collection? = Enum.member?(to ++ cc, follower_collection) message = case get_recipient_count(message) do @@ -71,7 +73,8 @@ defp get_recipient_count(message) do end @impl true - def filter(%{"type" => "Create"} = message) do + def filter(%{"type" => "Create", "object" => %{"type" => object_type}} = message) + when object_type in ~w{Note Article} do reject_threshold = Pleroma.Config.get( [:mrf_hellthread, :reject_threshold], diff --git a/lib/pleroma/web/activity_pub/mrf/simple_policy.ex b/lib/pleroma/web/activity_pub/mrf/simple_policy.ex index b7dcb1b86..9cea6bcf9 100644 --- a/lib/pleroma/web/activity_pub/mrf/simple_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/simple_policy.ex @@ -3,21 +3,23 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do - alias Pleroma.User - alias Pleroma.Web.ActivityPub.MRF @moduledoc "Filter activities depending on their origin instance" @behaviour Pleroma.Web.ActivityPub.MRF + alias Pleroma.Config + alias Pleroma.User + alias Pleroma.Web.ActivityPub.MRF + require Pleroma.Constants defp check_accept(%{host: actor_host} = _actor_info, object) do accepts = - Pleroma.Config.get([:mrf_simple, :accept]) + Config.get([:mrf_simple, :accept]) |> MRF.subdomains_regex() cond do accepts == [] -> {:ok, object} - actor_host == Pleroma.Config.get([Pleroma.Web.Endpoint, :url, :host]) -> {:ok, object} + actor_host == Config.get([Pleroma.Web.Endpoint, :url, :host]) -> {:ok, object} MRF.subdomain_match?(accepts, actor_host) -> {:ok, object} true -> {:reject, nil} end @@ -25,7 +27,7 @@ defp check_accept(%{host: actor_host} = _actor_info, object) do defp check_reject(%{host: actor_host} = _actor_info, object) do rejects = - Pleroma.Config.get([:mrf_simple, :reject]) + Config.get([:mrf_simple, :reject]) |> MRF.subdomains_regex() if MRF.subdomain_match?(rejects, actor_host) do @@ -41,7 +43,7 @@ defp check_media_removal( ) when length(child_attachment) > 0 do media_removal = - Pleroma.Config.get([:mrf_simple, :media_removal]) + Config.get([:mrf_simple, :media_removal]) |> MRF.subdomains_regex() object = @@ -65,7 +67,7 @@ defp check_media_nsfw( } = object ) do media_nsfw = - Pleroma.Config.get([:mrf_simple, :media_nsfw]) + Config.get([:mrf_simple, :media_nsfw]) |> MRF.subdomains_regex() object = @@ -85,7 +87,7 @@ defp check_media_nsfw(_actor_info, object), do: {:ok, object} defp check_ftl_removal(%{host: actor_host} = _actor_info, object) do timeline_removal = - Pleroma.Config.get([:mrf_simple, :federated_timeline_removal]) + Config.get([:mrf_simple, :federated_timeline_removal]) |> MRF.subdomains_regex() object = @@ -108,7 +110,7 @@ defp check_ftl_removal(%{host: actor_host} = _actor_info, object) do defp check_report_removal(%{host: actor_host} = _actor_info, %{"type" => "Flag"} = object) do report_removal = - Pleroma.Config.get([:mrf_simple, :report_removal]) + Config.get([:mrf_simple, :report_removal]) |> MRF.subdomains_regex() if MRF.subdomain_match?(report_removal, actor_host) do @@ -122,7 +124,7 @@ defp check_report_removal(_actor_info, object), do: {:ok, object} defp check_avatar_removal(%{host: actor_host} = _actor_info, %{"icon" => _icon} = object) do avatar_removal = - Pleroma.Config.get([:mrf_simple, :avatar_removal]) + Config.get([:mrf_simple, :avatar_removal]) |> MRF.subdomains_regex() if MRF.subdomain_match?(avatar_removal, actor_host) do @@ -136,7 +138,7 @@ defp check_avatar_removal(_actor_info, object), do: {:ok, object} defp check_banner_removal(%{host: actor_host} = _actor_info, %{"image" => _image} = object) do banner_removal = - Pleroma.Config.get([:mrf_simple, :banner_removal]) + Config.get([:mrf_simple, :banner_removal]) |> MRF.subdomains_regex() if MRF.subdomain_match?(banner_removal, actor_host) do @@ -197,10 +199,10 @@ def filter(object), do: {:ok, object} @impl true def describe do - exclusions = Pleroma.Config.get([:instance, :mrf_transparency_exclusions]) + exclusions = Config.get([:mrf, :transparency_exclusions]) mrf_simple = - Pleroma.Config.get(:mrf_simple) + Config.get(:mrf_simple) |> Enum.map(fn {k, v} -> {k, Enum.reject(v, fn v -> v in exclusions end)} end) |> Enum.into(%{}) diff --git a/lib/pleroma/web/activity_pub/mrf/steal_emoji_policy.ex b/lib/pleroma/web/activity_pub/mrf/steal_emoji_policy.ex new file mode 100644 index 000000000..2858af9eb --- /dev/null +++ b/lib/pleroma/web/activity_pub/mrf/steal_emoji_policy.ex @@ -0,0 +1,97 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.MRF.StealEmojiPolicy do + require Logger + + alias Pleroma.Config + + @moduledoc "Detect new emojis by their shortcode and steals them" + @behaviour Pleroma.Web.ActivityPub.MRF + + defp remote_host?(host), do: host != Config.get([Pleroma.Web.Endpoint, :url, :host]) + + defp accept_host?(host), do: host in Config.get([:mrf_steal_emoji, :hosts], []) + + defp steal_emoji({shortcode, url}) do + url = Pleroma.Web.MediaProxy.url(url) + {:ok, response} = Pleroma.HTTP.get(url) + size_limit = Config.get([:mrf_steal_emoji, :size_limit], 50_000) + + if byte_size(response.body) <= size_limit do + emoji_dir_path = + Config.get( + [:mrf_steal_emoji, :path], + Path.join(Config.get([:instance, :static_dir]), "emoji/stolen") + ) + + extension = + url + |> URI.parse() + |> Map.get(:path) + |> Path.basename() + |> Path.extname() + + file_path = Path.join([emoji_dir_path, shortcode <> (extension || ".png")]) + + try do + :ok = File.write(file_path, response.body) + + shortcode + rescue + e -> + Logger.warn("MRF.StealEmojiPolicy: Failed to write to #{file_path}: #{inspect(e)}") + nil + end + else + Logger.debug( + "MRF.StealEmojiPolicy: :#{shortcode}: at #{url} (#{byte_size(response.body)} B) over size limit (#{ + size_limit + } B)" + ) + + nil + end + rescue + e -> + Logger.warn("MRF.StealEmojiPolicy: Failed to fetch #{url}: #{inspect(e)}") + nil + end + + @impl true + def filter(%{"object" => %{"emoji" => foreign_emojis, "actor" => actor}} = message) do + host = URI.parse(actor).host + + if remote_host?(host) and accept_host?(host) do + installed_emoji = Pleroma.Emoji.get_all() |> Enum.map(fn {k, _} -> k end) + + new_emojis = + foreign_emojis + |> Enum.filter(fn {shortcode, _url} -> shortcode not in installed_emoji end) + |> Enum.filter(fn {shortcode, _url} -> + reject_emoji? = + Config.get([:mrf_steal_emoji, :rejected_shortcodes], []) + |> Enum.find(false, fn regex -> String.match?(shortcode, regex) end) + + !reject_emoji? + end) + |> Enum.map(&steal_emoji(&1)) + |> Enum.filter(& &1) + + if !Enum.empty?(new_emojis) do + Logger.info("Stole new emojis: #{inspect(new_emojis)}") + Pleroma.Emoji.reload() + end + end + + {:ok, message} + end + + def filter(message), do: {:ok, message} + + @impl true + def describe do + {:ok, %{}} + end +end diff --git a/lib/pleroma/web/activity_pub/mrf/user_allow_list_policy.ex b/lib/pleroma/web/activity_pub/mrf/user_allow_list_policy.ex index a927a4ed8..651aed70f 100644 --- a/lib/pleroma/web/activity_pub/mrf/user_allow_list_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/user_allow_list_policy.ex @@ -24,7 +24,7 @@ def filter(%{"actor" => actor} = object) do allow_list = Config.get( - [:mrf_user_allowlist, String.to_atom(actor_info.host)], + [:mrf_user_allowlist, actor_info.host], [] ) diff --git a/lib/pleroma/web/activity_pub/object_validator.ex b/lib/pleroma/web/activity_pub/object_validator.ex index 549e5e761..bb6324460 100644 --- a/lib/pleroma/web/activity_pub/object_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validator.ex @@ -9,17 +9,51 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidator do the system. """ + alias Pleroma.EctoType.ActivityPub.ObjectValidators alias Pleroma.Object alias Pleroma.User + alias Pleroma.Web.ActivityPub.ObjectValidators.AnnounceValidator + alias Pleroma.Web.ActivityPub.ObjectValidators.BlockValidator + alias Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator + alias Pleroma.Web.ActivityPub.ObjectValidators.CreateChatMessageValidator alias Pleroma.Web.ActivityPub.ObjectValidators.DeleteValidator alias Pleroma.Web.ActivityPub.ObjectValidators.EmojiReactValidator alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator - alias Pleroma.Web.ActivityPub.ObjectValidators.Types alias Pleroma.Web.ActivityPub.ObjectValidators.UndoValidator + alias Pleroma.Web.ActivityPub.ObjectValidators.UpdateValidator @spec validate(map(), keyword()) :: {:ok, map(), keyword()} | {:error, any()} def validate(object, meta) + def validate(%{"type" => "Block"} = block_activity, meta) do + with {:ok, block_activity} <- + block_activity + |> BlockValidator.cast_and_validate() + |> Ecto.Changeset.apply_action(:insert) do + block_activity = stringify_keys(block_activity) + outgoing_blocks = Pleroma.Config.get([:activitypub, :outgoing_blocks]) + + meta = + if !outgoing_blocks do + Keyword.put(meta, :do_not_federate, true) + else + meta + end + + {:ok, block_activity, meta} + end + end + + def validate(%{"type" => "Update"} = update_activity, meta) do + with {:ok, update_activity} <- + update_activity + |> UpdateValidator.cast_and_validate() + |> Ecto.Changeset.apply_action(:insert) do + update_activity = stringify_keys(update_activity) + {:ok, update_activity, meta} + end + end + def validate(%{"type" => "Undo"} = object, meta) do with {:ok, object} <- object @@ -42,8 +76,20 @@ def validate(%{"type" => "Delete"} = object, meta) do def validate(%{"type" => "Like"} = object, meta) do with {:ok, object} <- - object |> LikeValidator.cast_and_validate() |> Ecto.Changeset.apply_action(:insert) do - object = stringify_keys(object |> Map.from_struct()) + object + |> LikeValidator.cast_and_validate() + |> Ecto.Changeset.apply_action(:insert) do + object = stringify_keys(object) + {:ok, object, meta} + end + end + + def validate(%{"type" => "ChatMessage"} = object, meta) do + with {:ok, object} <- + object + |> ChatMessageValidator.cast_and_validate() + |> Ecto.Changeset.apply_action(:insert) do + object = stringify_keys(object) {:ok, object, meta} end end @@ -58,26 +104,61 @@ def validate(%{"type" => "EmojiReact"} = object, meta) do end end + def validate(%{"type" => "Create", "object" => object} = create_activity, meta) do + with {:ok, object_data} <- cast_and_apply(object), + meta = Keyword.put(meta, :object_data, object_data |> stringify_keys), + {:ok, create_activity} <- + create_activity + |> CreateChatMessageValidator.cast_and_validate(meta) + |> Ecto.Changeset.apply_action(:insert) do + create_activity = stringify_keys(create_activity) + {:ok, create_activity, meta} + end + end + + def validate(%{"type" => "Announce"} = object, meta) do + with {:ok, object} <- + object + |> AnnounceValidator.cast_and_validate() + |> Ecto.Changeset.apply_action(:insert) do + object = stringify_keys(object |> Map.from_struct()) + {:ok, object, meta} + end + end + + def cast_and_apply(%{"type" => "ChatMessage"} = object) do + ChatMessageValidator.cast_and_apply(object) + end + + def cast_and_apply(o), do: {:error, {:validator_not_set, o}} + def stringify_keys(%{__struct__: _} = object) do object |> Map.from_struct() |> stringify_keys end - def stringify_keys(object) do + def stringify_keys(object) when is_map(object) do object - |> Map.new(fn {key, val} -> {to_string(key), val} end) + |> Map.new(fn {key, val} -> {to_string(key), stringify_keys(val)} end) end + def stringify_keys(object) when is_list(object) do + object + |> Enum.map(&stringify_keys/1) + end + + def stringify_keys(object), do: object + def fetch_actor(object) do - with {:ok, actor} <- Types.ObjectID.cast(object["actor"]) do + with {:ok, actor} <- ObjectValidators.ObjectID.cast(object["actor"]) do User.get_or_fetch_by_ap_id(actor) end end def fetch_actor_and_object(object) do fetch_actor(object) - Object.normalize(object["object"]) + Object.normalize(object["object"], true) :ok end end diff --git a/lib/pleroma/web/activity_pub/object_validators/announce_validator.ex b/lib/pleroma/web/activity_pub/object_validators/announce_validator.ex new file mode 100644 index 000000000..6f757f49c --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/announce_validator.ex @@ -0,0 +1,101 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.ObjectValidators.AnnounceValidator do + use Ecto.Schema + + alias Pleroma.EctoType.ActivityPub.ObjectValidators + alias Pleroma.Object + alias Pleroma.User + alias Pleroma.Web.ActivityPub.Utils + alias Pleroma.Web.ActivityPub.Visibility + + import Ecto.Changeset + import Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations + + require Pleroma.Constants + + @primary_key false + + embedded_schema do + field(:id, ObjectValidators.ObjectID, primary_key: true) + field(:type, :string) + field(:object, ObjectValidators.ObjectID) + field(:actor, ObjectValidators.ObjectID) + field(:context, :string, autogenerate: {Utils, :generate_context_id, []}) + field(:to, ObjectValidators.Recipients, default: []) + field(:cc, ObjectValidators.Recipients, default: []) + field(:published, ObjectValidators.DateTime) + end + + def cast_and_validate(data) do + data + |> cast_data() + |> validate_data() + end + + def cast_data(data) do + %__MODULE__{} + |> changeset(data) + end + + def changeset(struct, data) do + struct + |> cast(data, __schema__(:fields)) + |> fix_after_cast() + end + + def fix_after_cast(cng) do + cng + end + + def validate_data(data_cng) do + data_cng + |> validate_inclusion(:type, ["Announce"]) + |> validate_required([:id, :type, :object, :actor, :to, :cc]) + |> validate_actor_presence() + |> validate_object_presence() + |> validate_existing_announce() + |> validate_announcable() + end + + def validate_announcable(cng) do + with actor when is_binary(actor) <- get_field(cng, :actor), + object when is_binary(object) <- get_field(cng, :object), + %User{} = actor <- User.get_cached_by_ap_id(actor), + %Object{} = object <- Object.get_cached_by_ap_id(object), + false <- Visibility.is_public?(object) do + same_actor = object.data["actor"] == actor.ap_id + is_public = Pleroma.Constants.as_public() in (get_field(cng, :to) ++ get_field(cng, :cc)) + + cond do + same_actor && is_public -> + cng + |> add_error(:actor, "can not announce this object publicly") + + !same_actor -> + cng + |> add_error(:actor, "can not announce this object") + + true -> + cng + end + else + _ -> cng + end + end + + def validate_existing_announce(cng) do + actor = get_field(cng, :actor) + object = get_field(cng, :object) + + if actor && object && Utils.get_existing_announce(actor, %{data: %{"id" => object}}) do + cng + |> add_error(:actor, "already announced this object") + |> add_error(:object, "already announced by this actor") + else + cng + end + end +end diff --git a/lib/pleroma/web/activity_pub/object_validators/attachment_validator.ex b/lib/pleroma/web/activity_pub/object_validators/attachment_validator.ex new file mode 100644 index 000000000..f53bb02be --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/attachment_validator.ex @@ -0,0 +1,80 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator do + use Ecto.Schema + + alias Pleroma.Web.ActivityPub.ObjectValidators.UrlObjectValidator + + import Ecto.Changeset + + @primary_key false + embedded_schema do + field(:type, :string) + field(:mediaType, :string, default: "application/octet-stream") + field(:name, :string) + + embeds_many(:url, UrlObjectValidator) + end + + def cast_and_validate(data) do + data + |> cast_data() + |> validate_data() + end + + def cast_data(data) do + %__MODULE__{} + |> changeset(data) + end + + def changeset(struct, data) do + data = + data + |> fix_media_type() + |> fix_url() + + struct + |> cast(data, [:type, :mediaType, :name]) + |> cast_embed(:url, required: true) + end + + def fix_media_type(data) do + data = + data + |> Map.put_new("mediaType", data["mimeType"]) + + if MIME.valid?(data["mediaType"]) do + data + else + data + |> Map.put("mediaType", "application/octet-stream") + end + end + + def fix_url(data) do + case data["url"] do + url when is_binary(url) -> + data + |> Map.put( + "url", + [ + %{ + "href" => url, + "type" => "Link", + "mediaType" => data["mediaType"] + } + ] + ) + + _ -> + data + end + end + + def validate_data(cng) do + cng + |> validate_required([:mediaType, :url, :type]) + end +end diff --git a/lib/pleroma/web/activity_pub/object_validators/block_validator.ex b/lib/pleroma/web/activity_pub/object_validators/block_validator.ex new file mode 100644 index 000000000..1dde77198 --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/block_validator.ex @@ -0,0 +1,42 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.ObjectValidators.BlockValidator do + use Ecto.Schema + + alias Pleroma.EctoType.ActivityPub.ObjectValidators + + import Ecto.Changeset + import Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations + + @primary_key false + + embedded_schema do + field(:id, ObjectValidators.ObjectID, primary_key: true) + field(:type, :string) + field(:actor, ObjectValidators.ObjectID) + field(:to, ObjectValidators.Recipients, default: []) + field(:cc, ObjectValidators.Recipients, default: []) + field(:object, ObjectValidators.ObjectID) + end + + def cast_data(data) do + %__MODULE__{} + |> cast(data, __schema__(:fields)) + end + + def validate_data(cng) do + cng + |> validate_required([:id, :type, :actor, :to, :cc, :object]) + |> validate_inclusion(:type, ["Block"]) + |> validate_actor_presence() + |> validate_actor_presence(field_name: :object) + end + + def cast_and_validate(data) do + data + |> cast_data + |> validate_data + end +end diff --git a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex new file mode 100644 index 000000000..c481d79e0 --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex @@ -0,0 +1,123 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator do + use Ecto.Schema + + alias Pleroma.EctoType.ActivityPub.ObjectValidators + alias Pleroma.User + alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator + + import Ecto.Changeset + import Pleroma.Web.ActivityPub.Transmogrifier, only: [fix_emoji: 1] + + @primary_key false + @derive Jason.Encoder + + embedded_schema do + field(:id, ObjectValidators.ObjectID, primary_key: true) + field(:to, ObjectValidators.Recipients, default: []) + field(:type, :string) + field(:content, ObjectValidators.SafeText) + field(:actor, ObjectValidators.ObjectID) + field(:published, ObjectValidators.DateTime) + field(:emoji, :map, default: %{}) + + embeds_one(:attachment, AttachmentValidator) + end + + def cast_and_apply(data) do + data + |> cast_data + |> apply_action(:insert) + end + + def cast_and_validate(data) do + data + |> cast_data() + |> validate_data() + end + + def cast_data(data) do + %__MODULE__{} + |> changeset(data) + end + + def fix(data) do + data + |> fix_emoji() + |> fix_attachment() + |> Map.put_new("actor", data["attributedTo"]) + end + + # Throws everything but the first one away + def fix_attachment(%{"attachment" => [attachment | _]} = data) do + data + |> Map.put("attachment", attachment) + end + + def fix_attachment(data), do: data + + def changeset(struct, data) do + data = fix(data) + + struct + |> cast(data, List.delete(__schema__(:fields), :attachment)) + |> cast_embed(:attachment) + end + + def validate_data(data_cng) do + data_cng + |> validate_inclusion(:type, ["ChatMessage"]) + |> validate_required([:id, :actor, :to, :type, :published]) + |> validate_content_or_attachment() + |> validate_length(:to, is: 1) + |> validate_length(:content, max: Pleroma.Config.get([:instance, :remote_limit])) + |> validate_local_concern() + end + + def validate_content_or_attachment(cng) do + attachment = get_field(cng, :attachment) + + if attachment do + cng + else + cng + |> validate_required([:content]) + end + end + + @doc """ + Validates the following + - If both users are in our system + - If at least one of the users in this ChatMessage is a local user + - If the recipient is not blocking the actor + """ + def validate_local_concern(cng) do + with actor_ap <- get_field(cng, :actor), + {_, %User{} = actor} <- {:find_actor, User.get_cached_by_ap_id(actor_ap)}, + {_, %User{} = recipient} <- + {:find_recipient, User.get_cached_by_ap_id(get_field(cng, :to) |> hd())}, + {_, false} <- {:blocking_actor?, User.blocks?(recipient, actor)}, + {_, true} <- {:local?, Enum.any?([actor, recipient], & &1.local)} do + cng + else + {:blocking_actor?, true} -> + cng + |> add_error(:actor, "actor is blocked by recipient") + + {:local?, false} -> + cng + |> add_error(:actor, "actor and recipient are both remote") + + {:find_actor, _} -> + cng + |> add_error(:actor, "can't find user") + + {:find_recipient, _} -> + cng + |> add_error(:to, "can't find user") + end + end +end diff --git a/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex new file mode 100644 index 000000000..7269f9ff0 --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex @@ -0,0 +1,91 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +# NOTES +# - Can probably be a generic create validator +# - doesn't embed, will only get the object id +defmodule Pleroma.Web.ActivityPub.ObjectValidators.CreateChatMessageValidator do + use Ecto.Schema + alias Pleroma.EctoType.ActivityPub.ObjectValidators + + alias Pleroma.Object + + import Ecto.Changeset + import Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations + + @primary_key false + + embedded_schema do + field(:id, ObjectValidators.ObjectID, primary_key: true) + field(:actor, ObjectValidators.ObjectID) + field(:type, :string) + field(:to, ObjectValidators.Recipients, default: []) + field(:object, ObjectValidators.ObjectID) + end + + def cast_and_apply(data) do + data + |> cast_data + |> apply_action(:insert) + end + + def cast_data(data) do + cast(%__MODULE__{}, data, __schema__(:fields)) + end + + def cast_and_validate(data, meta \\ []) do + cast_data(data) + |> validate_data(meta) + end + + def validate_data(cng, meta \\ []) do + cng + |> validate_required([:id, :actor, :to, :type, :object]) + |> validate_inclusion(:type, ["Create"]) + |> validate_actor_presence() + |> validate_recipients_match(meta) + |> validate_actors_match(meta) + |> validate_object_nonexistence() + end + + def validate_object_nonexistence(cng) do + cng + |> validate_change(:object, fn :object, object_id -> + if Object.get_cached_by_ap_id(object_id) do + [{:object, "The object to create already exists"}] + else + [] + end + end) + end + + def validate_actors_match(cng, meta) do + object_actor = meta[:object_data]["actor"] + + cng + |> validate_change(:actor, fn :actor, actor -> + if actor == object_actor do + [] + else + [{:actor, "Actor doesn't match with object actor"}] + end + end) + end + + def validate_recipients_match(cng, meta) do + object_recipients = meta[:object_data]["to"] || [] + + cng + |> validate_change(:to, fn :to, recipients -> + activity_set = MapSet.new(recipients) + object_set = MapSet.new(object_recipients) + + if MapSet.equal?(activity_set, object_set) do + [] + else + [{:to, "Recipients don't match with object recipients"}] + end + end) + end +end diff --git a/lib/pleroma/web/activity_pub/object_validators/create_validator.ex b/lib/pleroma/web/activity_pub/object_validators/create_note_validator.ex similarity index 81% rename from lib/pleroma/web/activity_pub/object_validators/create_validator.ex rename to lib/pleroma/web/activity_pub/object_validators/create_note_validator.ex index 926804ce7..316bd0c07 100644 --- a/lib/pleroma/web/activity_pub/object_validators/create_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/create_note_validator.ex @@ -5,16 +5,16 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CreateNoteValidator do use Ecto.Schema + alias Pleroma.EctoType.ActivityPub.ObjectValidators alias Pleroma.Web.ActivityPub.ObjectValidators.NoteValidator - alias Pleroma.Web.ActivityPub.ObjectValidators.Types import Ecto.Changeset @primary_key false embedded_schema do - field(:id, Types.ObjectID, primary_key: true) - field(:actor, Types.ObjectID) + field(:id, ObjectValidators.ObjectID, primary_key: true) + field(:actor, ObjectValidators.ObjectID) field(:type, :string) field(:to, {:array, :string}) field(:cc, {:array, :string}) diff --git a/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex b/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex index f42c03510..93a7b0e0b 100644 --- a/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex @@ -6,8 +6,8 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.DeleteValidator do use Ecto.Schema alias Pleroma.Activity + alias Pleroma.EctoType.ActivityPub.ObjectValidators alias Pleroma.User - alias Pleroma.Web.ActivityPub.ObjectValidators.Types import Ecto.Changeset import Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations @@ -15,13 +15,13 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.DeleteValidator do @primary_key false embedded_schema do - field(:id, Types.ObjectID, primary_key: true) + field(:id, ObjectValidators.ObjectID, primary_key: true) field(:type, :string) - field(:actor, Types.ObjectID) - field(:to, Types.Recipients, default: []) - field(:cc, Types.Recipients, default: []) - field(:deleted_activity_id, Types.ObjectID) - field(:object, Types.ObjectID) + field(:actor, ObjectValidators.ObjectID) + field(:to, ObjectValidators.Recipients, default: []) + field(:cc, ObjectValidators.Recipients, default: []) + field(:deleted_activity_id, ObjectValidators.ObjectID) + field(:object, ObjectValidators.ObjectID) end def cast_data(data) do @@ -46,12 +46,13 @@ def add_deleted_activity_id(cng) do Answer Article Audio + ChatMessage Event Note Page Question - Video Tombstone + Video } def validate_data(cng) do cng diff --git a/lib/pleroma/web/activity_pub/object_validators/emoji_react_validator.ex b/lib/pleroma/web/activity_pub/object_validators/emoji_react_validator.ex index e87519c59..a543af1f8 100644 --- a/lib/pleroma/web/activity_pub/object_validators/emoji_react_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/emoji_react_validator.ex @@ -5,8 +5,8 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.EmojiReactValidator do use Ecto.Schema + alias Pleroma.EctoType.ActivityPub.ObjectValidators alias Pleroma.Object - alias Pleroma.Web.ActivityPub.ObjectValidators.Types import Ecto.Changeset import Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations @@ -14,10 +14,10 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.EmojiReactValidator do @primary_key false embedded_schema do - field(:id, Types.ObjectID, primary_key: true) + field(:id, ObjectValidators.ObjectID, primary_key: true) field(:type, :string) - field(:object, Types.ObjectID) - field(:actor, Types.ObjectID) + field(:object, ObjectValidators.ObjectID) + field(:actor, ObjectValidators.ObjectID) field(:context, :string) field(:content, :string) field(:to, {:array, :string}, default: []) diff --git a/lib/pleroma/web/activity_pub/object_validators/like_validator.ex b/lib/pleroma/web/activity_pub/object_validators/like_validator.ex index 034f25492..493e4c247 100644 --- a/lib/pleroma/web/activity_pub/object_validators/like_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/like_validator.ex @@ -5,8 +5,8 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator do use Ecto.Schema + alias Pleroma.EctoType.ActivityPub.ObjectValidators alias Pleroma.Object - alias Pleroma.Web.ActivityPub.ObjectValidators.Types alias Pleroma.Web.ActivityPub.Utils import Ecto.Changeset @@ -15,13 +15,13 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator do @primary_key false embedded_schema do - field(:id, Types.ObjectID, primary_key: true) + field(:id, ObjectValidators.ObjectID, primary_key: true) field(:type, :string) - field(:object, Types.ObjectID) - field(:actor, Types.ObjectID) + field(:object, ObjectValidators.ObjectID) + field(:actor, ObjectValidators.ObjectID) field(:context, :string) - field(:to, Types.Recipients, default: []) - field(:cc, Types.Recipients, default: []) + field(:to, ObjectValidators.Recipients, default: []) + field(:cc, ObjectValidators.Recipients, default: []) end def cast_and_validate(data) do @@ -67,7 +67,7 @@ def fix_recipients(cng) do with {[], []} <- {to, cc}, %Object{data: %{"actor" => actor}} <- Object.get_cached_by_ap_id(object), - {:ok, actor} <- Types.ObjectID.cast(actor) do + {:ok, actor} <- ObjectValidators.ObjectID.cast(actor) do cng |> put_change(:to, [actor]) else diff --git a/lib/pleroma/web/activity_pub/object_validators/note_validator.ex b/lib/pleroma/web/activity_pub/object_validators/note_validator.ex index 462a5620a..56b93dde8 100644 --- a/lib/pleroma/web/activity_pub/object_validators/note_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/note_validator.ex @@ -5,14 +5,14 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.NoteValidator do use Ecto.Schema - alias Pleroma.Web.ActivityPub.ObjectValidators.Types + alias Pleroma.EctoType.ActivityPub.ObjectValidators import Ecto.Changeset @primary_key false embedded_schema do - field(:id, Types.ObjectID, primary_key: true) + field(:id, ObjectValidators.ObjectID, primary_key: true) field(:to, {:array, :string}, default: []) field(:cc, {:array, :string}, default: []) field(:bto, {:array, :string}, default: []) @@ -22,10 +22,10 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.NoteValidator do field(:type, :string) field(:content, :string) field(:context, :string) - field(:actor, Types.ObjectID) - field(:attributedTo, Types.ObjectID) + field(:actor, ObjectValidators.ObjectID) + field(:attributedTo, ObjectValidators.ObjectID) field(:summary, :string) - field(:published, Types.DateTime) + field(:published, ObjectValidators.DateTime) # TODO: Write type field(:emoji, :map, default: %{}) field(:sensitive, :boolean, default: false) @@ -35,13 +35,12 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.NoteValidator do field(:like_count, :integer, default: 0) field(:announcement_count, :integer, default: 0) field(:inRepyTo, :string) - field(:uri, Types.Uri) + field(:uri, ObjectValidators.Uri) field(:likes, {:array, :string}, default: []) field(:announcements, {:array, :string}, default: []) # see if needed - field(:conversation, :string) field(:context_id, :string) end diff --git a/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex b/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex deleted file mode 100644 index 48fe61e1a..000000000 --- a/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex +++ /dev/null @@ -1,34 +0,0 @@ -defmodule Pleroma.Web.ActivityPub.ObjectValidators.Types.Recipients do - use Ecto.Type - - alias Pleroma.Web.ActivityPub.ObjectValidators.Types.ObjectID - - def type, do: {:array, ObjectID} - - def cast(object) when is_binary(object) do - cast([object]) - end - - def cast(data) when is_list(data) do - data - |> Enum.reduce({:ok, []}, fn element, acc -> - case {acc, ObjectID.cast(element)} do - {:error, _} -> :error - {_, :error} -> :error - {{:ok, list}, {:ok, id}} -> {:ok, [id | list]} - end - end) - end - - def cast(_) do - :error - end - - def dump(data) do - {:ok, data} - end - - def load(data) do - {:ok, data} - end -end diff --git a/lib/pleroma/web/activity_pub/object_validators/undo_validator.ex b/lib/pleroma/web/activity_pub/object_validators/undo_validator.ex index d0ba418e8..e8d2d39c1 100644 --- a/lib/pleroma/web/activity_pub/object_validators/undo_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/undo_validator.ex @@ -6,7 +6,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.UndoValidator do use Ecto.Schema alias Pleroma.Activity - alias Pleroma.Web.ActivityPub.ObjectValidators.Types + alias Pleroma.EctoType.ActivityPub.ObjectValidators import Ecto.Changeset import Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations @@ -14,10 +14,10 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.UndoValidator do @primary_key false embedded_schema do - field(:id, Types.ObjectID, primary_key: true) + field(:id, ObjectValidators.ObjectID, primary_key: true) field(:type, :string) - field(:object, Types.ObjectID) - field(:actor, Types.ObjectID) + field(:object, ObjectValidators.ObjectID) + field(:actor, ObjectValidators.ObjectID) field(:to, {:array, :string}, default: []) field(:cc, {:array, :string}, default: []) end diff --git a/lib/pleroma/web/activity_pub/object_validators/update_validator.ex b/lib/pleroma/web/activity_pub/object_validators/update_validator.ex new file mode 100644 index 000000000..b4ba5ede0 --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/update_validator.ex @@ -0,0 +1,59 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.ObjectValidators.UpdateValidator do + use Ecto.Schema + + alias Pleroma.EctoType.ActivityPub.ObjectValidators + + import Ecto.Changeset + import Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations + + @primary_key false + + embedded_schema do + field(:id, ObjectValidators.ObjectID, primary_key: true) + field(:type, :string) + field(:actor, ObjectValidators.ObjectID) + field(:to, ObjectValidators.Recipients, default: []) + field(:cc, ObjectValidators.Recipients, default: []) + # In this case, we save the full object in this activity instead of just a + # reference, so we can always see what was actually changed by this. + field(:object, :map) + end + + def cast_data(data) do + %__MODULE__{} + |> cast(data, __schema__(:fields)) + end + + def validate_data(cng) do + cng + |> validate_required([:id, :type, :actor, :to, :cc, :object]) + |> validate_inclusion(:type, ["Update"]) + |> validate_actor_presence() + |> validate_updating_rights() + end + + def cast_and_validate(data) do + data + |> cast_data + |> validate_data + end + + # For now we only support updating users, and here the rule is easy: + # object id == actor id + def validate_updating_rights(cng) do + with actor = get_field(cng, :actor), + object = get_field(cng, :object), + {:ok, object_id} <- ObjectValidators.ObjectID.cast(object), + true <- actor == object_id do + cng + else + _e -> + cng + |> add_error(:object, "Can't be updated by this actor") + end + end +end diff --git a/lib/pleroma/web/activity_pub/object_validators/url_object_validator.ex b/lib/pleroma/web/activity_pub/object_validators/url_object_validator.ex new file mode 100644 index 000000000..f64fac46d --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/url_object_validator.ex @@ -0,0 +1,24 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.ObjectValidators.UrlObjectValidator do + use Ecto.Schema + + alias Pleroma.EctoType.ActivityPub.ObjectValidators + + import Ecto.Changeset + @primary_key false + + embedded_schema do + field(:type, :string) + field(:href, ObjectValidators.Uri) + field(:mediaType, :string) + end + + def changeset(struct, data) do + struct + |> cast(data, __schema__(:fields)) + |> validate_required([:type, :href, :mediaType]) + end +end diff --git a/lib/pleroma/web/activity_pub/pipeline.ex b/lib/pleroma/web/activity_pub/pipeline.ex index 657cdfdb1..6875c47f6 100644 --- a/lib/pleroma/web/activity_pub/pipeline.ex +++ b/lib/pleroma/web/activity_pub/pipeline.ex @@ -4,6 +4,7 @@ defmodule Pleroma.Web.ActivityPub.Pipeline do alias Pleroma.Activity + alias Pleroma.Config alias Pleroma.Object alias Pleroma.Repo alias Pleroma.Web.ActivityPub.ActivityPub @@ -16,6 +17,10 @@ defmodule Pleroma.Web.ActivityPub.Pipeline do {:ok, Activity.t() | Object.t(), keyword()} | {:error, any()} def common_pipeline(object, meta) do case Repo.transaction(fn -> do_common_pipeline(object, meta) end) do + {:ok, {:ok, activity, meta}} -> + SideEffects.handle_after_transaction(meta) + {:ok, activity, meta} + {:ok, value} -> value @@ -44,7 +49,7 @@ defp maybe_federate(%Object{}, _), do: {:ok, :not_federated} defp maybe_federate(%Activity{} = activity, meta) do with {:ok, local} <- Keyword.fetch(meta, :local) do - do_not_federate = meta[:do_not_federate] + do_not_federate = meta[:do_not_federate] || !Config.get([:instance, :federating]) if !do_not_federate && local do Federator.publish(activity) diff --git a/lib/pleroma/web/activity_pub/relay.ex b/lib/pleroma/web/activity_pub/relay.ex index 729c23af7..484178edd 100644 --- a/lib/pleroma/web/activity_pub/relay.ex +++ b/lib/pleroma/web/activity_pub/relay.ex @@ -4,9 +4,10 @@ defmodule Pleroma.Web.ActivityPub.Relay do alias Pleroma.Activity - alias Pleroma.Object alias Pleroma.User alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.ActivityPub.Visibility + alias Pleroma.Web.CommonAPI require Logger @relay_nickname "relay" @@ -48,11 +49,11 @@ def unfollow(target_instance) do end end - @spec publish(any()) :: {:ok, Activity.t(), Object.t()} | {:error, any()} + @spec publish(any()) :: {:ok, Activity.t()} | {:error, any()} def publish(%Activity{data: %{"type" => "Create"}} = activity) do with %User{} = user <- get_actor(), - %Object{} = object <- Object.normalize(activity) do - ActivityPub.announce(user, object, nil, true, false) + true <- Visibility.is_public?(activity) do + CommonAPI.repeat(activity.id, user) else error -> format_error(error) end diff --git a/lib/pleroma/web/activity_pub/side_effects.ex b/lib/pleroma/web/activity_pub/side_effects.ex index bfc2ab845..5cc2eb378 100644 --- a/lib/pleroma/web/activity_pub/side_effects.ex +++ b/lib/pleroma/web/activity_pub/side_effects.ex @@ -6,15 +6,55 @@ defmodule Pleroma.Web.ActivityPub.SideEffects do collection, and so on. """ alias Pleroma.Activity + alias Pleroma.Chat + alias Pleroma.Chat.MessageReference alias Pleroma.Notification alias Pleroma.Object alias Pleroma.Repo alias Pleroma.User alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.ActivityPub.Pipeline alias Pleroma.Web.ActivityPub.Utils + alias Pleroma.Web.Push + alias Pleroma.Web.Streamer def handle(object, meta \\ []) + # Tasks this handles: + # - Unfollow and block + def handle( + %{data: %{"type" => "Block", "object" => blocked_user, "actor" => blocking_user}} = + object, + meta + ) do + with %User{} = blocker <- User.get_cached_by_ap_id(blocking_user), + %User{} = blocked <- User.get_cached_by_ap_id(blocked_user) do + User.block(blocker, blocked) + end + + {:ok, object, meta} + end + + # Tasks this handles: + # - Update the user + # + # For a local user, we also get a changeset with the full information, so we + # can update non-federating, non-activitypub settings as well. + def handle(%{data: %{"type" => "Update", "object" => updated_object}} = object, meta) do + if changeset = Keyword.get(meta, :user_update_changeset) do + changeset + |> User.update_and_set_cache() + else + {:ok, new_user_data} = ActivityPub.user_data_from_user_object(updated_object) + + User.get_by_ap_id(updated_object["id"]) + |> User.remote_user_changeset(new_user_data) + |> User.update_and_set_cache() + end + + {:ok, object, meta} + end + # Tasks this handles: # - Add like to object # - Set up notification @@ -27,6 +67,42 @@ def handle(%{data: %{"type" => "Like"}} = object, meta) do {:ok, object, meta} end + # Tasks this handles + # - Actually create object + # - Rollback if we couldn't create it + # - Set up notifications + def handle(%{data: %{"type" => "Create"}} = activity, meta) do + with {:ok, _object, meta} <- handle_object_creation(meta[:object_data], meta) do + {:ok, notifications} = Notification.create_notifications(activity, do_send: false) + + meta = + meta + |> add_notifications(notifications) + + {:ok, activity, meta} + else + e -> Repo.rollback(e) + end + end + + # Tasks this handles: + # - Add announce to object + # - Set up notification + # - Stream out the announce + def handle(%{data: %{"type" => "Announce"}} = object, meta) do + announced_object = Object.get_by_ap_id(object.data["object"]) + user = User.get_cached_by_ap_id(object.data["actor"]) + + Utils.add_announce_to_object(object, announced_object) + + if !User.is_internal_user?(user) do + Notification.create_notifications(object) + ActivityPub.stream_out(object) + end + + {:ok, object, meta} + end + def handle(%{data: %{"type" => "Undo", "object" => undone_object}} = object, meta) do with undone_object <- Activity.get_by_ap_id(undone_object), :ok <- handle_undoing(undone_object) do @@ -70,6 +146,8 @@ def handle(%{data: %{"type" => "Delete", "object" => deleted_object}} = object, Object.decrease_replies_count(in_reply_to) end + MessageReference.delete_for_object(deleted_object) + ActivityPub.stream_out(object) ActivityPub.stream_out_participations(deleted_object, user) :ok @@ -94,6 +172,39 @@ def handle(object, meta) do {:ok, object, meta} end + def handle_object_creation(%{"type" => "ChatMessage"} = object, meta) do + with {:ok, object, meta} <- Pipeline.common_pipeline(object, meta) do + actor = User.get_cached_by_ap_id(object.data["actor"]) + recipient = User.get_cached_by_ap_id(hd(object.data["to"])) + + streamables = + [[actor, recipient], [recipient, actor]] + |> Enum.map(fn [user, other_user] -> + if user.local do + {:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id) + {:ok, cm_ref} = MessageReference.create(chat, object, user.ap_id != actor.ap_id) + + { + ["user", "user:pleroma_chat"], + {user, %{cm_ref | chat: chat, object: object}} + } + end + end) + |> Enum.filter(& &1) + + meta = + meta + |> add_streamables(streamables) + + {:ok, object, meta} + end + end + + # Nothing to do + def handle_object_creation(object) do + {:ok, object} + end + def handle_undoing(%{data: %{"type" => "Like"}} = object) do with %Object{} = liked_object <- Object.get_by_ap_id(object.data["object"]), {:ok, _} <- Utils.remove_like_from_object(object, liked_object), @@ -130,4 +241,43 @@ def handle_undoing( end def handle_undoing(object), do: {:error, ["don't know how to handle", object]} + + defp send_notifications(meta) do + Keyword.get(meta, :notifications, []) + |> Enum.each(fn notification -> + Streamer.stream(["user", "user:notification"], notification) + Push.send(notification) + end) + + meta + end + + defp send_streamables(meta) do + Keyword.get(meta, :streamables, []) + |> Enum.each(fn {topics, items} -> + Streamer.stream(topics, items) + end) + + meta + end + + defp add_streamables(meta, streamables) do + existing = Keyword.get(meta, :streamables, []) + + meta + |> Keyword.put(:streamables, streamables ++ existing) + end + + defp add_notifications(meta, notifications) do + existing = Keyword.get(meta, :notifications, []) + + meta + |> Keyword.put(:notifications, notifications ++ existing) + end + + def handle_after_transaction(meta) do + meta + |> send_notifications() + |> send_streamables() + end end diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 80701bb63..278fbbeab 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -8,7 +8,10 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do """ alias Pleroma.Activity alias Pleroma.EarmarkRenderer + alias Pleroma.EctoType.ActivityPub.ObjectValidators alias Pleroma.FollowingRelationship + alias Pleroma.Maps + alias Pleroma.Notification alias Pleroma.Object alias Pleroma.Object.Containment alias Pleroma.Repo @@ -16,7 +19,6 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.Builder alias Pleroma.Web.ActivityPub.ObjectValidator - alias Pleroma.Web.ActivityPub.ObjectValidators.Types alias Pleroma.Web.ActivityPub.Pipeline alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.ActivityPub.Visibility @@ -170,8 +172,8 @@ def fix_in_reply_to(%{"inReplyTo" => in_reply_to} = object, options) object |> Map.put("inReplyTo", replied_object.data["id"]) |> Map.put("inReplyToAtomUri", object["inReplyToAtomUri"] || in_reply_to_id) - |> Map.put("conversation", replied_object.data["context"] || object["conversation"]) |> Map.put("context", replied_object.data["context"] || object["conversation"]) + |> Map.drop(["conversation"]) else e -> Logger.error("Couldn't fetch #{inspect(in_reply_to_id)}, error: #{inspect(e)}") @@ -205,13 +207,7 @@ def fix_context(object) do object |> Map.put("context", context) - |> Map.put("conversation", context) - end - - defp add_if_present(map, _key, nil), do: map - - defp add_if_present(map, key, value) do - Map.put(map, key, value) + |> Map.drop(["conversation"]) end def fix_attachments(%{"attachment" => attachment} = object) when is_list(attachment) do @@ -226,9 +222,9 @@ def fix_attachments(%{"attachment" => attachment} = object) when is_list(attachm media_type = cond do - is_map(url) && is_binary(url["mediaType"]) -> url["mediaType"] - is_binary(data["mediaType"]) -> data["mediaType"] - is_binary(data["mimeType"]) -> data["mimeType"] + is_map(url) && MIME.valid?(url["mediaType"]) -> url["mediaType"] + MIME.valid?(data["mediaType"]) -> data["mediaType"] + MIME.valid?(data["mimeType"]) -> data["mimeType"] true -> nil end @@ -241,13 +237,13 @@ def fix_attachments(%{"attachment" => attachment} = object) when is_list(attachm attachment_url = %{"href" => href} - |> add_if_present("mediaType", media_type) - |> add_if_present("type", Map.get(url || %{}, "type")) + |> Maps.put_if_present("mediaType", media_type) + |> Maps.put_if_present("type", Map.get(url || %{}, "type")) %{"url" => [attachment_url]} - |> add_if_present("mediaType", media_type) - |> add_if_present("type", data["type"]) - |> add_if_present("name", data["name"]) + |> Maps.put_if_present("mediaType", media_type) + |> Maps.put_if_present("type", data["type"]) + |> Maps.put_if_present("name", data["name"]) end) Map.put(object, "attachment", attachments) @@ -462,7 +458,7 @@ def handle_incoming( to: data["to"], object: object, actor: user, - context: object["conversation"], + context: object["context"], local: false, published: data["published"], additional: @@ -532,7 +528,8 @@ def handle_incoming( User.get_cached_by_ap_id(Containment.get_actor(%{"actor" => followed})), {:ok, %User{} = follower} <- User.get_or_fetch_by_ap_id(Containment.get_actor(%{"actor" => follower})), - {:ok, activity} <- ActivityPub.follow(follower, followed, id, false) do + {:ok, activity} <- + ActivityPub.follow(follower, followed, id, false, skip_notify_and_stream: true) do with deny_follow_blocked <- Pleroma.Config.get([:user, :deny_follow_blocked]), {_, false} <- {:user_blocked, User.blocks?(followed, follower) && deny_follow_blocked}, {_, false} <- {:user_locked, User.locked?(followed)}, @@ -575,6 +572,7 @@ def handle_incoming( :noop end + ActivityPub.notify_and_stream(activity) {:ok, activity} else _e -> @@ -595,6 +593,8 @@ def handle_incoming( User.update_follower_count(followed) User.update_following_count(follower) + Notification.update_notification_type(followed, follow_activity) + ActivityPub.accept(%{ to: follow_activity.data["to"], type: "Accept", @@ -662,7 +662,18 @@ def handle_incoming( |> handle_incoming(options) end - def handle_incoming(%{"type" => type} = data, _options) when type in ["Like", "EmojiReact"] do + def handle_incoming( + %{"type" => "Create", "object" => %{"type" => "ChatMessage"}} = data, + _options + ) do + with {:ok, %User{}} <- ObjectValidator.fetch_actor(data), + {:ok, activity, _} <- Pipeline.common_pipeline(data, local: false) do + {:ok, activity} + end + end + + def handle_incoming(%{"type" => type} = data, _options) + when type in ~w{Like EmojiReact Announce} do with :ok <- ObjectValidator.fetch_actor_and_object(data), {:ok, activity, _meta} <- Pipeline.common_pipeline(data, local: false) do @@ -673,50 +684,13 @@ def handle_incoming(%{"type" => type} = data, _options) when type in ["Like", "E end def handle_incoming( - %{"type" => "Announce", "object" => object_id, "actor" => _actor, "id" => id} = data, - _options - ) do - with actor <- Containment.get_actor(data), - {:ok, %User{} = actor} <- User.get_or_fetch_by_ap_id(actor), - {:ok, object} <- get_embedded_obj_helper(object_id, actor), - public <- Visibility.is_public?(data), - {:ok, activity, _object} <- ActivityPub.announce(actor, object, id, false, public) do - {:ok, activity} - else - _e -> :error - end - end - - def handle_incoming( - %{"type" => "Update", "object" => %{"type" => object_type} = object, "actor" => actor_id} = - data, + %{"type" => type} = data, _options ) - when object_type in [ - "Person", - "Application", - "Service", - "Organization" - ] do - with %User{ap_id: ^actor_id} = actor <- User.get_cached_by_ap_id(object["id"]) do - {:ok, new_user_data} = ActivityPub.user_data_from_user_object(object) - - actor - |> User.remote_user_changeset(new_user_data) - |> User.update_and_set_cache() - - ActivityPub.update(%{ - local: false, - to: data["to"] || [], - cc: data["cc"] || [], - object: object, - actor: actor_id, - activity_id: data["id"] - }) - else - e -> - Logger.error(e) - :error + when type in ~w{Update Block} do + with {:ok, %User{}} <- ObjectValidator.fetch_actor(data), + {:ok, activity, _} <- Pipeline.common_pipeline(data, local: false) do + {:ok, activity} end end @@ -729,7 +703,7 @@ def handle_incoming( else {:error, {:validate_object, _}} = e -> # Check if we have a create activity for this - with {:ok, object_id} <- Types.ObjectID.cast(data["object"]), + with {:ok, object_id} <- ObjectValidators.ObjectID.cast(data["object"]), %Activity{data: %{"actor" => actor}} <- Activity.create_by_object_ap_id(object_id) |> Repo.one(), # We have one, insert a tombstone and retry @@ -792,21 +766,6 @@ def handle_incoming( end end - def handle_incoming( - %{"type" => "Block", "object" => blocked, "actor" => blocker, "id" => id} = _data, - _options - ) do - with %User{local: true} = blocked = User.get_cached_by_ap_id(blocked), - {:ok, %User{} = blocker} = User.get_or_fetch_by_ap_id(blocker), - {:ok, activity} <- ActivityPub.block(blocker, blocked, id, false) do - User.unfollow(blocker, blocked) - User.block(blocker, blocked) - {:ok, activity} - else - _e -> :error - end - end - def handle_incoming( %{ "type" => "Move", @@ -1059,10 +1018,14 @@ def add_hashtags(object) do Map.put(object, "tag", tags) end + # TODO These should be added on our side on insertion, it doesn't make much + # sense to regenerate these all the time def add_mention_tags(object) do - {enabled_receivers, disabled_receivers} = Utils.get_notified_from_object(object) - potential_receivers = enabled_receivers ++ disabled_receivers - mentions = Enum.map(potential_receivers, &build_mention_tag/1) + to = object["to"] || [] + cc = object["cc"] || [] + mentioned = User.get_users_from_set(to ++ cc, local_only: false) + + mentions = Enum.map(mentioned, &build_mention_tag/1) tags = object["tag"] || [] Map.put(object, "tag", tags ++ mentions) @@ -1123,6 +1086,9 @@ def add_attributed_to(object) do Map.put(object, "attributedTo", attributed_to) end + # TODO: Revisit this + def prepare_attachments(%{"type" => "ChatMessage"} = object), do: object + def prepare_attachments(object) do attachments = object diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index f2375bcc4..dfae602df 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -7,6 +7,7 @@ defmodule Pleroma.Web.ActivityPub.Utils do alias Ecto.UUID alias Pleroma.Activity alias Pleroma.Config + alias Pleroma.Maps alias Pleroma.Notification alias Pleroma.Object alias Pleroma.Repo @@ -244,7 +245,7 @@ defp lazy_put_object_defaults(activity, _), do: activity Inserts a full object if it is contained in an activity. """ def insert_full_object(%{"object" => %{"type" => type} = object_data} = map) - when is_map(object_data) and type in @supported_object_types do + when type in @supported_object_types do with {:ok, object} <- Object.create(object_data) do map = Map.put(map, "object", object.data["id"]) @@ -307,7 +308,7 @@ def make_like_data( "cc" => cc, "context" => object.data["context"] } - |> maybe_put("id", activity_id) + |> Maps.put_if_present("id", activity_id) end def make_emoji_reaction_data(user, object, emoji, activity_id) do @@ -477,7 +478,7 @@ def make_follow_data( "object" => followed_id, "state" => "pending" } - |> maybe_put("id", activity_id) + |> Maps.put_if_present("id", activity_id) end def fetch_latest_follow(%User{ap_id: follower_id}, %User{ap_id: followed_id}) do @@ -546,7 +547,7 @@ def make_announce_data( "cc" => [], "context" => object.data["context"] } - |> maybe_put("id", activity_id) + |> Maps.put_if_present("id", activity_id) end def make_announce_data( @@ -563,7 +564,7 @@ def make_announce_data( "cc" => [Pleroma.Constants.as_public()], "context" => object.data["context"] } - |> maybe_put("id", activity_id) + |> Maps.put_if_present("id", activity_id) end def make_undo_data( @@ -582,7 +583,7 @@ def make_undo_data( "cc" => [Pleroma.Constants.as_public()], "context" => context } - |> maybe_put("id", activity_id) + |> Maps.put_if_present("id", activity_id) end @spec add_announce_to_object(Activity.t(), Object.t()) :: @@ -627,7 +628,7 @@ def make_unfollow_data(follower, followed, follow_activity, activity_id) do "to" => [followed.ap_id], "object" => follow_activity.data } - |> maybe_put("id", activity_id) + |> Maps.put_if_present("id", activity_id) end #### Block-related helpers @@ -650,7 +651,7 @@ def make_block_data(blocker, blocked, activity_id) do "to" => [blocked.ap_id], "object" => blocked.ap_id } - |> maybe_put("id", activity_id) + |> Maps.put_if_present("id", activity_id) end #### Create-related helpers @@ -740,12 +741,12 @@ defp build_flag_object(_), do: [] def get_reports(params, page, page_size) do params = params - |> Map.put("type", "Flag") - |> Map.put("skip_preload", true) - |> Map.put("preload_report_notes", true) - |> Map.put("total", true) - |> Map.put("limit", page_size) - |> Map.put("offset", (page - 1) * page_size) + |> Map.put(:type, "Flag") + |> Map.put(:skip_preload, true) + |> Map.put(:preload_report_notes, true) + |> Map.put(:total, true) + |> Map.put(:limit, page_size) + |> Map.put(:offset, (page - 1) * page_size) ActivityPub.fetch_activities([], params, :offset) end @@ -870,7 +871,4 @@ def get_existing_votes(actor, %{data: %{"id" => id}}) do |> where([a, object: o], fragment("(?)->>'type' = 'Answer'", o.data)) |> Repo.all() end - - def maybe_put(map, _key, nil), do: map - def maybe_put(map, key, value), do: Map.put(map, key, value) end diff --git a/lib/pleroma/web/activity_pub/views/user_view.ex b/lib/pleroma/web/activity_pub/views/user_view.ex index 34590b16d..4a02b09a1 100644 --- a/lib/pleroma/web/activity_pub/views/user_view.ex +++ b/lib/pleroma/web/activity_pub/views/user_view.ex @@ -213,34 +213,24 @@ def render("activity_collection.json", %{iri: iri}) do |> Map.merge(Utils.make_json_ld_header()) end - def render("activity_collection_page.json", %{activities: activities, iri: iri}) do - # this is sorted chronologically, so first activity is the newest (max) - {max_id, min_id, collection} = - if length(activities) > 0 do - { - Enum.at(activities, 0).id, - Enum.at(Enum.reverse(activities), 0).id, - Enum.map(activities, fn act -> - {:ok, data} = Transmogrifier.prepare_outgoing(act.data) - data - end) - } - else - { - 0, - 0, - [] - } - end + def render("activity_collection_page.json", %{ + activities: activities, + iri: iri, + pagination: pagination + }) do + collection = + Enum.map(activities, fn activity -> + {:ok, data} = Transmogrifier.prepare_outgoing(activity.data) + data + end) %{ - "id" => "#{iri}?max_id=#{max_id}&page=true", "type" => "OrderedCollectionPage", "partOf" => iri, - "orderedItems" => collection, - "next" => "#{iri}?max_id=#{min_id}&page=true" + "orderedItems" => collection } |> Map.merge(Utils.make_json_ld_header()) + |> Map.merge(pagination) end defp maybe_put_total_items(map, false, _total), do: map diff --git a/lib/pleroma/web/activity_pub/visibility.ex b/lib/pleroma/web/activity_pub/visibility.ex index 453a6842e..343f41caa 100644 --- a/lib/pleroma/web/activity_pub/visibility.ex +++ b/lib/pleroma/web/activity_pub/visibility.ex @@ -47,6 +47,10 @@ def is_list?(_), do: false @spec visible_for_user?(Activity.t(), User.t() | nil) :: boolean() def visible_for_user?(%{actor: ap_id}, %User{ap_id: ap_id}), do: true + def visible_for_user?(nil, _), do: false + + def visible_for_user?(%{data: %{"listMessage" => _}}, nil), do: false + def visible_for_user?(%{data: %{"listMessage" => list_ap_id}} = activity, %User{} = user) do user.ap_id in activity.data["to"] || list_ap_id @@ -54,8 +58,6 @@ def visible_for_user?(%{data: %{"listMessage" => list_ap_id}} = activity, %User{ |> Pleroma.List.member?(user) end - def visible_for_user?(%{data: %{"listMessage" => _}}, nil), do: false - def visible_for_user?(%{local: local} = activity, nil) do cfg_key = if local, diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex similarity index 50% rename from lib/pleroma/web/admin_api/admin_api_controller.ex rename to lib/pleroma/web/admin_api/controllers/admin_api_controller.ex index 451dc92d6..f9545d895 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex @@ -7,37 +7,24 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do import Pleroma.Web.ControllerHelper, only: [json_response: 3] - alias Pleroma.Activity alias Pleroma.Config - alias Pleroma.ConfigDB alias Pleroma.MFA alias Pleroma.ModerationLog alias Pleroma.Plugs.OAuthScopesPlug - alias Pleroma.ReportNote alias Pleroma.Stats alias Pleroma.User - alias Pleroma.UserInviteToken alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.Builder alias Pleroma.Web.ActivityPub.Pipeline - alias Pleroma.Web.ActivityPub.Relay - alias Pleroma.Web.ActivityPub.Utils + alias Pleroma.Web.AdminAPI alias Pleroma.Web.AdminAPI.AccountView - alias Pleroma.Web.AdminAPI.ConfigView alias Pleroma.Web.AdminAPI.ModerationLogView - alias Pleroma.Web.AdminAPI.Report - alias Pleroma.Web.AdminAPI.ReportView alias Pleroma.Web.AdminAPI.Search - alias Pleroma.Web.CommonAPI alias Pleroma.Web.Endpoint - alias Pleroma.Web.MastodonAPI.AppView - alias Pleroma.Web.MastodonAPI.StatusView - alias Pleroma.Web.OAuth.App alias Pleroma.Web.Router require Logger - @descriptions Pleroma.Docs.JSON.compile() @users_page_size 50 plug( @@ -68,53 +55,24 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do ] ) - plug(OAuthScopesPlug, %{scopes: ["read:invites"], admin: true} when action == :invites) - - plug( - OAuthScopesPlug, - %{scopes: ["write:invites"], admin: true} - when action in [:create_invite_token, :revoke_invite, :email_invite] - ) - plug( OAuthScopesPlug, %{scopes: ["write:follows"], admin: true} - when action in [:user_follow, :user_unfollow, :relay_follow, :relay_unfollow] - ) - - plug( - OAuthScopesPlug, - %{scopes: ["read:reports"], admin: true} - when action in [:list_reports, :report_show] - ) - - plug( - OAuthScopesPlug, - %{scopes: ["write:reports"], admin: true} - when action in [:reports_update, :report_notes_create, :report_notes_delete] + when action in [:user_follow, :user_unfollow] ) plug( OAuthScopesPlug, %{scopes: ["read:statuses"], admin: true} - when action in [:list_statuses, :list_user_statuses, :list_instance_statuses, :status_show] - ) - - plug( - OAuthScopesPlug, - %{scopes: ["write:statuses"], admin: true} - when action in [:status_update, :status_delete] + when action in [:list_user_statuses, :list_instance_statuses] ) plug( OAuthScopesPlug, %{scopes: ["read"], admin: true} when action in [ - :config_show, :list_log, :stats, - :relay_list, - :config_descriptions, :need_reboot ] ) @@ -124,18 +82,13 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do %{scopes: ["write"], admin: true} when action in [ :restart, - :config_update, :resend_confirmation_email, :confirm_email, - :oauth_app_create, - :oauth_app_list, - :oauth_app_update, - :oauth_app_delete, :reload_emoji ] ) - action_fallback(:errors) + action_fallback(AdminAPI.FallbackController) def user_delete(conn, %{"nickname" => nickname}) do user_delete(conn, %{"nicknames" => [nickname]}) @@ -158,8 +111,7 @@ def user_delete(%{assigns: %{user: admin}} = conn, %{"nicknames" => nicknames}) action: "delete" }) - conn - |> json(nicknames) + json(conn, nicknames) end def user_follow(%{assigns: %{user: admin}} = conn, %{ @@ -178,8 +130,7 @@ def user_follow(%{assigns: %{user: admin}} = conn, %{ }) end - conn - |> json("ok") + json(conn, "ok") end def user_unfollow(%{assigns: %{user: admin}} = conn, %{ @@ -198,8 +149,7 @@ def user_unfollow(%{assigns: %{user: admin}} = conn, %{ }) end - conn - |> json("ok") + json(conn, "ok") end def users_create(%{assigns: %{user: admin}} = conn, %{"users" => users}) do @@ -238,8 +188,7 @@ def users_create(%{assigns: %{user: admin}} = conn, %{"users" => users}) do action: "create" }) - conn - |> json(res) + json(conn, res) {:error, id, changeset, _} -> res = @@ -273,15 +222,15 @@ def list_instance_statuses(conn, %{"instance" => instance} = params) do activities = ActivityPub.fetch_statuses(nil, %{ - "instance" => instance, - "limit" => page_size, - "offset" => (page - 1) * page_size, - "exclude_reblogs" => !with_reblogs && "true" + instance: instance, + limit: page_size, + offset: (page - 1) * page_size, + exclude_reblogs: not with_reblogs }) conn - |> put_view(Pleroma.Web.AdminAPI.StatusView) - |> render("index.json", %{activities: activities, as: :activity, skip_relationships: false}) + |> put_view(AdminAPI.StatusView) + |> render("index.json", %{activities: activities, as: :activity}) end def list_user_statuses(conn, %{"nickname" => nickname} = params) do @@ -293,14 +242,14 @@ def list_user_statuses(conn, %{"nickname" => nickname} = params) do activities = ActivityPub.fetch_user_activities(user, nil, %{ - "limit" => page_size, - "godmode" => godmode, - "exclude_reblogs" => !with_reblogs && "true" + limit: page_size, + godmode: godmode, + exclude_reblogs: not with_reblogs }) conn - |> put_view(StatusView) - |> render("index.json", %{activities: activities, as: :activity, skip_relationships: false}) + |> put_view(AdminAPI.StatusView) + |> render("index.json", %{activities: activities, as: :activity}) else _ -> {:error, :not_found} end @@ -410,8 +359,8 @@ defp maybe_parse_filters(filters) do filters |> String.split(",") |> Enum.filter(&Enum.member?(@filters, &1)) - |> Enum.map(&String.to_atom(&1)) - |> Enum.into(%{}, &{&1, true}) + |> Enum.map(&String.to_atom/1) + |> Map.new(&{&1, true}) end def right_add_multiple(%{assigns: %{user: admin}} = conn, %{ @@ -536,119 +485,6 @@ def right_delete(%{assigns: %{user: %{nickname: nickname}}} = conn, %{"nickname" render_error(conn, :forbidden, "You can't revoke your own admin status.") end - def relay_list(conn, _params) do - with {:ok, list} <- Relay.list() do - json(conn, %{relays: list}) - else - _ -> - conn - |> put_status(500) - end - end - - def relay_follow(%{assigns: %{user: admin}} = conn, %{"relay_url" => target}) do - with {:ok, _message} <- Relay.follow(target) do - ModerationLog.insert_log(%{ - action: "relay_follow", - actor: admin, - target: target - }) - - json(conn, target) - else - _ -> - conn - |> put_status(500) - |> json(target) - end - end - - def relay_unfollow(%{assigns: %{user: admin}} = conn, %{"relay_url" => target}) do - with {:ok, _message} <- Relay.unfollow(target) do - ModerationLog.insert_log(%{ - action: "relay_unfollow", - actor: admin, - target: target - }) - - json(conn, target) - else - _ -> - conn - |> put_status(500) - |> json(target) - end - end - - @doc "Sends registration invite via email" - def email_invite(%{assigns: %{user: user}} = conn, %{"email" => email} = params) do - with {_, false} <- {:registrations_open, Config.get([:instance, :registrations_open])}, - {_, true} <- {:invites_enabled, Config.get([:instance, :invites_enabled])}, - {:ok, invite_token} <- UserInviteToken.create_invite(), - email <- - Pleroma.Emails.UserEmail.user_invitation_email( - user, - invite_token, - email, - params["name"] - ), - {:ok, _} <- Pleroma.Emails.Mailer.deliver(email) do - json_response(conn, :no_content, "") - else - {:registrations_open, _} -> - errors( - conn, - {:error, "To send invites you need to set the `registrations_open` option to false."} - ) - - {:invites_enabled, _} -> - errors( - conn, - {:error, "To send invites you need to set the `invites_enabled` option to true."} - ) - end - end - - @doc "Create an account registration invite token" - def create_invite_token(conn, params) do - opts = %{} - - opts = - if params["max_use"], - do: Map.put(opts, :max_use, params["max_use"]), - else: opts - - opts = - if params["expires_at"], - do: Map.put(opts, :expires_at, params["expires_at"]), - else: opts - - {:ok, invite} = UserInviteToken.create_invite(opts) - - json(conn, AccountView.render("invite.json", %{invite: invite})) - end - - @doc "Get list of created invites" - def invites(conn, _params) do - invites = UserInviteToken.list_invites() - - conn - |> put_view(AccountView) - |> render("invites.json", %{invites: invites}) - end - - @doc "Revokes invite by token" - def revoke_invite(conn, %{"token" => token}) do - with {:ok, invite} <- UserInviteToken.find_by_token(token), - {:ok, updated_invite} = UserInviteToken.update_invite(invite, %{used: true}) do - conn - |> put_view(AccountView) - |> render("invite.json", %{invite: updated_invite}) - else - nil -> {:error, :not_found} - end - end - @doc "Get a password reset token (base64 string) for given nickname" def get_password_reset(conn, %{"nickname" => nickname}) do (%User{local: true} = user) = User.get_cached_by_nickname(nickname) @@ -704,7 +540,7 @@ def update_user_credentials( %{assigns: %{user: admin}} = conn, %{"nickname" => nickname} = params ) do - with {_, user} <- {:user, User.get_cached_by_nickname(nickname)}, + with {_, %User{} = user} <- {:user, User.get_cached_by_nickname(nickname)}, {:ok, _user} <- User.update_as_admin(user, params) do ModerationLog.insert_log(%{ @@ -726,155 +562,12 @@ def update_user_credentials( json(conn, %{status: "success"}) else {:error, changeset} -> - {_, {error, _}} = Enum.at(changeset.errors, 0) - json(conn, %{error: "New password #{error}."}) + errors = Map.new(changeset.errors, fn {key, {error, _}} -> {key, error} end) + + {:errors, errors} _ -> - json(conn, %{error: "Unable to change password."}) - end - end - - def list_reports(conn, params) do - {page, page_size} = page_params(params) - - reports = Utils.get_reports(params, page, page_size) - - conn - |> put_view(ReportView) - |> render("index.json", %{reports: reports}) - end - - def report_show(conn, %{"id" => id}) do - with %Activity{} = report <- Activity.get_by_id(id) do - conn - |> put_view(ReportView) - |> render("show.json", Report.extract_report_info(report)) - else - _ -> {:error, :not_found} - end - end - - def reports_update(%{assigns: %{user: admin}} = conn, %{"reports" => reports}) do - result = - reports - |> Enum.map(fn report -> - with {:ok, activity} <- CommonAPI.update_report_state(report["id"], report["state"]) do - ModerationLog.insert_log(%{ - action: "report_update", - actor: admin, - subject: activity - }) - - activity - else - {:error, message} -> %{id: report["id"], error: message} - end - end) - - case Enum.any?(result, &Map.has_key?(&1, :error)) do - true -> json_response(conn, :bad_request, result) - false -> json_response(conn, :no_content, "") - end - end - - def report_notes_create(%{assigns: %{user: user}} = conn, %{ - "id" => report_id, - "content" => content - }) do - with {:ok, _} <- ReportNote.create(user.id, report_id, content) do - ModerationLog.insert_log(%{ - action: "report_note", - actor: user, - subject: Activity.get_by_id(report_id), - text: content - }) - - json_response(conn, :no_content, "") - else - _ -> json_response(conn, :bad_request, "") - end - end - - def report_notes_delete(%{assigns: %{user: user}} = conn, %{ - "id" => note_id, - "report_id" => report_id - }) do - with {:ok, note} <- ReportNote.destroy(note_id) do - ModerationLog.insert_log(%{ - action: "report_note_delete", - actor: user, - subject: Activity.get_by_id(report_id), - text: note.content - }) - - json_response(conn, :no_content, "") - else - _ -> json_response(conn, :bad_request, "") - end - end - - def list_statuses(%{assigns: %{user: _admin}} = conn, params) do - godmode = params["godmode"] == "true" || params["godmode"] == true - local_only = params["local_only"] == "true" || params["local_only"] == true - with_reblogs = params["with_reblogs"] == "true" || params["with_reblogs"] == true - {page, page_size} = page_params(params) - - activities = - ActivityPub.fetch_statuses(nil, %{ - "godmode" => godmode, - "local_only" => local_only, - "limit" => page_size, - "offset" => (page - 1) * page_size, - "exclude_reblogs" => !with_reblogs && "true" - }) - - conn - |> put_view(Pleroma.Web.AdminAPI.StatusView) - |> render("index.json", %{activities: activities, as: :activity, skip_relationships: false}) - end - - def status_show(conn, %{"id" => id}) do - with %Activity{} = activity <- Activity.get_by_id(id) do - conn - |> put_view(StatusView) - |> render("show.json", %{activity: activity}) - else - _ -> errors(conn, {:error, :not_found}) - end - end - - def status_update(%{assigns: %{user: admin}} = conn, %{"id" => id} = params) do - params = - params - |> Map.take(["sensitive", "visibility"]) - |> Map.new(fn {key, value} -> {String.to_existing_atom(key), value} end) - - with {:ok, activity} <- CommonAPI.update_activity_scope(id, params) do - {:ok, sensitive} = Ecto.Type.cast(:boolean, params[:sensitive]) - - ModerationLog.insert_log(%{ - action: "status_update", - actor: admin, - subject: activity, - sensitive: sensitive, - visibility: params[:visibility] - }) - - conn - |> put_view(StatusView) - |> render("show.json", %{activity: activity}) - end - end - - def status_delete(%{assigns: %{user: user}} = conn, %{"id" => id}) do - with {:ok, %Activity{}} <- CommonAPI.delete(id, user) do - ModerationLog.insert_log(%{ - action: "status_delete", - actor: user, - subject_id: id - }) - - json(conn, %{}) + {:error, :not_found} end end @@ -896,107 +589,8 @@ def list_log(conn, params) do |> render("index.json", %{log: log}) end - def config_descriptions(conn, _params) do - descriptions = Enum.filter(@descriptions, &whitelisted_config?/1) - - json(conn, descriptions) - end - - def config_show(conn, %{"only_db" => true}) do - with :ok <- configurable_from_database(conn) do - configs = Pleroma.Repo.all(ConfigDB) - - conn - |> put_view(ConfigView) - |> render("index.json", %{configs: configs}) - end - end - - def config_show(conn, _params) do - with :ok <- configurable_from_database(conn) do - configs = ConfigDB.get_all_as_keyword() - - merged = - Config.Holder.default_config() - |> ConfigDB.merge(configs) - |> Enum.map(fn {group, values} -> - Enum.map(values, fn {key, value} -> - db = - if configs[group][key] do - ConfigDB.get_db_keys(configs[group][key], key) - end - - db_value = configs[group][key] - - merged_value = - if !is_nil(db_value) and Keyword.keyword?(db_value) and - ConfigDB.sub_key_full_update?(group, key, Keyword.keys(db_value)) do - ConfigDB.merge_group(group, key, value, db_value) - else - value - end - - setting = %{ - group: ConfigDB.convert(group), - key: ConfigDB.convert(key), - value: ConfigDB.convert(merged_value) - } - - if db, do: Map.put(setting, :db, db), else: setting - end) - end) - |> List.flatten() - - json(conn, %{configs: merged, need_reboot: Restarter.Pleroma.need_reboot?()}) - end - end - - def config_update(conn, %{"configs" => configs}) do - with :ok <- configurable_from_database(conn) do - {_errors, results} = - configs - |> Enum.filter(&whitelisted_config?/1) - |> Enum.map(fn - %{"group" => group, "key" => key, "delete" => true} = params -> - ConfigDB.delete(%{group: group, key: key, subkeys: params["subkeys"]}) - - %{"group" => group, "key" => key, "value" => value} -> - ConfigDB.update_or_create(%{group: group, key: key, value: value}) - end) - |> Enum.split_with(fn result -> elem(result, 0) == :error end) - - {deleted, updated} = - results - |> Enum.map(fn {:ok, config} -> - Map.put(config, :db, ConfigDB.get_db_keys(config)) - end) - |> Enum.split_with(fn config -> - Ecto.get_meta(config, :state) == :deleted - end) - - Config.TransferTask.load_and_update_env(deleted, false) - - if !Restarter.Pleroma.need_reboot?() do - changed_reboot_settings? = - (updated ++ deleted) - |> Enum.any?(fn config -> - group = ConfigDB.from_string(config.group) - key = ConfigDB.from_string(config.key) - value = ConfigDB.from_binary(config.value) - Config.TransferTask.pleroma_need_restart?(group, key, value) - end) - - if changed_reboot_settings?, do: Restarter.Pleroma.need_reboot() - end - - conn - |> put_view(ConfigView) - |> render("index.json", %{configs: updated, need_reboot: Restarter.Pleroma.need_reboot?()}) - end - end - def restart(conn, _params) do - with :ok <- configurable_from_database(conn) do + with :ok <- configurable_from_database() do Restarter.Pleroma.restart(Config.get(:env), 50) json(conn, %{}) @@ -1007,43 +601,18 @@ def need_reboot(conn, _params) do json(conn, %{need_reboot: Restarter.Pleroma.need_reboot?()}) end - defp configurable_from_database(conn) do + defp configurable_from_database do if Config.get(:configurable_from_database) do :ok else - errors( - conn, - {:error, "To use this endpoint you need to enable configuration from database."} - ) + {:error, "To use this endpoint you need to enable configuration from database."} end end - defp whitelisted_config?(group, key) do - if whitelisted_configs = Config.get(:database_config_whitelist) do - Enum.any?(whitelisted_configs, fn - {whitelisted_group} -> - group == inspect(whitelisted_group) - - {whitelisted_group, whitelisted_key} -> - group == inspect(whitelisted_group) && key == inspect(whitelisted_key) - end) - else - true - end - end - - defp whitelisted_config?(%{"group" => group, "key" => key}) do - whitelisted_config?(group, key) - end - - defp whitelisted_config?(%{:group => group} = config) do - whitelisted_config?(group, config[:key]) - end - def reload_emoji(conn, _params) do Pleroma.Emoji.reload() - conn |> json("ok") + json(conn, "ok") end def confirm_email(%{assigns: %{user: admin}} = conn, %{"nicknames" => nicknames}) do @@ -1057,7 +626,7 @@ def confirm_email(%{assigns: %{user: admin}} = conn, %{"nicknames" => nicknames} action: "confirm_email" }) - conn |> json("") + json(conn, "") end def resend_confirmation_email(%{assigns: %{user: admin}} = conn, %{"nicknames" => nicknames}) do @@ -1071,115 +640,13 @@ def resend_confirmation_email(%{assigns: %{user: admin}} = conn, %{"nicknames" = action: "resend_confirmation_email" }) - conn |> json("") + json(conn, "") end - def oauth_app_create(conn, params) do - params = - if params["name"] do - Map.put(params, "client_name", params["name"]) - else - params - end + def stats(conn, params) do + counters = Stats.get_status_visibility_count(params["instance"]) - result = - case App.create(params) do - {:ok, app} -> - AppView.render("show.json", %{app: app, admin: true}) - - {:error, changeset} -> - App.errors(changeset) - end - - json(conn, result) - end - - def oauth_app_update(conn, params) do - params = - if params["name"] do - Map.put(params, "client_name", params["name"]) - else - params - end - - with {:ok, app} <- App.update(params) do - json(conn, AppView.render("show.json", %{app: app, admin: true})) - else - {:error, changeset} -> - json(conn, App.errors(changeset)) - - nil -> - json_response(conn, :bad_request, "") - end - end - - def oauth_app_list(conn, params) do - {page, page_size} = page_params(params) - - search_params = %{ - client_name: params["name"], - client_id: params["client_id"], - page: page, - page_size: page_size - } - - search_params = - if Map.has_key?(params, "trusted") do - Map.put(search_params, :trusted, params["trusted"]) - else - search_params - end - - with {:ok, apps, count} <- App.search(search_params) do - json( - conn, - AppView.render("index.json", - apps: apps, - count: count, - page_size: page_size, - admin: true - ) - ) - end - end - - def oauth_app_delete(conn, params) do - with {:ok, _app} <- App.destroy(params["id"]) do - json_response(conn, :no_content, "") - else - _ -> json_response(conn, :bad_request, "") - end - end - - def stats(conn, _) do - count = Stats.get_status_visibility_count() - - conn - |> json(%{"status_visibility" => count}) - end - - defp errors(conn, {:error, :not_found}) do - conn - |> put_status(:not_found) - |> json(dgettext("errors", "Not found")) - end - - defp errors(conn, {:error, reason}) do - conn - |> put_status(:bad_request) - |> json(reason) - end - - defp errors(conn, {:param_cast, _}) do - conn - |> put_status(:bad_request) - |> json(dgettext("errors", "Invalid parameters")) - end - - defp errors(conn, _) do - conn - |> put_status(:internal_server_error) - |> json(dgettext("errors", "Something went wrong")) + json(conn, %{"status_visibility" => counters}) end defp page_params(params) do diff --git a/lib/pleroma/web/admin_api/controllers/config_controller.ex b/lib/pleroma/web/admin_api/controllers/config_controller.ex new file mode 100644 index 000000000..7f60470cb --- /dev/null +++ b/lib/pleroma/web/admin_api/controllers/config_controller.ex @@ -0,0 +1,152 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.ConfigController do + use Pleroma.Web, :controller + + alias Pleroma.Config + alias Pleroma.ConfigDB + alias Pleroma.Plugs.OAuthScopesPlug + + @descriptions Pleroma.Docs.JSON.compile() + + plug(Pleroma.Web.ApiSpec.CastAndValidate) + plug(OAuthScopesPlug, %{scopes: ["write"], admin: true} when action == :update) + + plug( + OAuthScopesPlug, + %{scopes: ["read"], admin: true} + when action in [:show, :descriptions] + ) + + action_fallback(Pleroma.Web.AdminAPI.FallbackController) + + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.Admin.ConfigOperation + + def descriptions(conn, _params) do + descriptions = Enum.filter(@descriptions, &whitelisted_config?/1) + + json(conn, descriptions) + end + + def show(conn, %{only_db: true}) do + with :ok <- configurable_from_database() do + configs = Pleroma.Repo.all(ConfigDB) + + render(conn, "index.json", %{ + configs: configs, + need_reboot: Restarter.Pleroma.need_reboot?() + }) + end + end + + def show(conn, _params) do + with :ok <- configurable_from_database() do + configs = ConfigDB.get_all_as_keyword() + + merged = + Config.Holder.default_config() + |> ConfigDB.merge(configs) + |> Enum.map(fn {group, values} -> + Enum.map(values, fn {key, value} -> + db = + if configs[group][key] do + ConfigDB.get_db_keys(configs[group][key], key) + end + + db_value = configs[group][key] + + merged_value = + if not is_nil(db_value) and Keyword.keyword?(db_value) and + ConfigDB.sub_key_full_update?(group, key, Keyword.keys(db_value)) do + ConfigDB.merge_group(group, key, value, db_value) + else + value + end + + %ConfigDB{ + group: group, + key: key, + value: merged_value + } + |> Pleroma.Maps.put_if_present(:db, db) + end) + end) + |> List.flatten() + + render(conn, "index.json", %{ + configs: merged, + need_reboot: Restarter.Pleroma.need_reboot?() + }) + end + end + + def update(%{body_params: %{configs: configs}} = conn, _) do + with :ok <- configurable_from_database() do + results = + configs + |> Enum.filter(&whitelisted_config?/1) + |> Enum.map(fn + %{group: group, key: key, delete: true} = params -> + ConfigDB.delete(%{group: group, key: key, subkeys: params[:subkeys]}) + + %{group: group, key: key, value: value} -> + ConfigDB.update_or_create(%{group: group, key: key, value: value}) + end) + |> Enum.reject(fn {result, _} -> result == :error end) + + {deleted, updated} = + results + |> Enum.map(fn {:ok, %{key: key, value: value} = config} -> + Map.put(config, :db, ConfigDB.get_db_keys(value, key)) + end) + |> Enum.split_with(&(Ecto.get_meta(&1, :state) == :deleted)) + + Config.TransferTask.load_and_update_env(deleted, false) + + if not Restarter.Pleroma.need_reboot?() do + changed_reboot_settings? = + (updated ++ deleted) + |> Enum.any?(&Config.TransferTask.pleroma_need_restart?(&1.group, &1.key, &1.value)) + + if changed_reboot_settings?, do: Restarter.Pleroma.need_reboot() + end + + render(conn, "index.json", %{ + configs: updated, + need_reboot: Restarter.Pleroma.need_reboot?() + }) + end + end + + defp configurable_from_database do + if Config.get(:configurable_from_database) do + :ok + else + {:error, "To use this endpoint you need to enable configuration from database."} + end + end + + defp whitelisted_config?(group, key) do + if whitelisted_configs = Config.get(:database_config_whitelist) do + Enum.any?(whitelisted_configs, fn + {whitelisted_group} -> + group == inspect(whitelisted_group) + + {whitelisted_group, whitelisted_key} -> + group == inspect(whitelisted_group) && key == inspect(whitelisted_key) + end) + else + true + end + end + + defp whitelisted_config?(%{group: group, key: key}) do + whitelisted_config?(group, key) + end + + defp whitelisted_config?(%{group: group} = config) do + whitelisted_config?(group, config[:key]) + end +end diff --git a/lib/pleroma/web/admin_api/controllers/fallback_controller.ex b/lib/pleroma/web/admin_api/controllers/fallback_controller.ex new file mode 100644 index 000000000..34d90db07 --- /dev/null +++ b/lib/pleroma/web/admin_api/controllers/fallback_controller.ex @@ -0,0 +1,37 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.FallbackController do + use Pleroma.Web, :controller + + def call(conn, {:error, :not_found}) do + conn + |> put_status(:not_found) + |> json(%{error: dgettext("errors", "Not found")}) + end + + def call(conn, {:error, reason}) do + conn + |> put_status(:bad_request) + |> json(%{error: reason}) + end + + def call(conn, {:errors, errors}) do + conn + |> put_status(:bad_request) + |> json(%{errors: errors}) + end + + def call(conn, {:param_cast, _}) do + conn + |> put_status(:bad_request) + |> json(dgettext("errors", "Invalid parameters")) + end + + def call(conn, _) do + conn + |> put_status(:internal_server_error) + |> json(%{error: dgettext("errors", "Something went wrong")}) + end +end diff --git a/lib/pleroma/web/admin_api/controllers/invite_controller.ex b/lib/pleroma/web/admin_api/controllers/invite_controller.ex new file mode 100644 index 000000000..7d169b8d2 --- /dev/null +++ b/lib/pleroma/web/admin_api/controllers/invite_controller.ex @@ -0,0 +1,78 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.InviteController do + use Pleroma.Web, :controller + + import Pleroma.Web.ControllerHelper, only: [json_response: 3] + + alias Pleroma.Config + alias Pleroma.Plugs.OAuthScopesPlug + alias Pleroma.UserInviteToken + + require Logger + + plug(Pleroma.Web.ApiSpec.CastAndValidate) + plug(OAuthScopesPlug, %{scopes: ["read:invites"], admin: true} when action == :index) + + plug( + OAuthScopesPlug, + %{scopes: ["write:invites"], admin: true} when action in [:create, :revoke, :email] + ) + + action_fallback(Pleroma.Web.AdminAPI.FallbackController) + + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.Admin.InviteOperation + + @doc "Get list of created invites" + def index(conn, _params) do + invites = UserInviteToken.list_invites() + + render(conn, "index.json", invites: invites) + end + + @doc "Create an account registration invite token" + def create(%{body_params: params} = conn, _) do + {:ok, invite} = UserInviteToken.create_invite(params) + + render(conn, "show.json", invite: invite) + end + + @doc "Revokes invite by token" + def revoke(%{body_params: %{token: token}} = conn, _) do + with {:ok, invite} <- UserInviteToken.find_by_token(token), + {:ok, updated_invite} = UserInviteToken.update_invite(invite, %{used: true}) do + render(conn, "show.json", invite: updated_invite) + else + nil -> {:error, :not_found} + error -> error + end + end + + @doc "Sends registration invite via email" + def email(%{assigns: %{user: user}, body_params: %{email: email} = params} = conn, _) do + with {_, false} <- {:registrations_open, Config.get([:instance, :registrations_open])}, + {_, true} <- {:invites_enabled, Config.get([:instance, :invites_enabled])}, + {:ok, invite_token} <- UserInviteToken.create_invite(), + {:ok, _} <- + user + |> Pleroma.Emails.UserEmail.user_invitation_email( + invite_token, + email, + params[:name] + ) + |> Pleroma.Emails.Mailer.deliver() do + json_response(conn, :no_content, "") + else + {:registrations_open, _} -> + {:error, "To send invites you need to set the `registrations_open` option to false."} + + {:invites_enabled, _} -> + {:error, "To send invites you need to set the `invites_enabled` option to true."} + + {:error, error} -> + {:error, error} + end + end +end diff --git a/lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex b/lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex new file mode 100644 index 000000000..e2759d59f --- /dev/null +++ b/lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex @@ -0,0 +1,63 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.MediaProxyCacheController do + use Pleroma.Web, :controller + + alias Pleroma.Plugs.OAuthScopesPlug + alias Pleroma.Web.ApiSpec.Admin, as: Spec + alias Pleroma.Web.MediaProxy + + plug(Pleroma.Web.ApiSpec.CastAndValidate) + + plug( + OAuthScopesPlug, + %{scopes: ["read:media_proxy_caches"], admin: true} when action in [:index] + ) + + plug( + OAuthScopesPlug, + %{scopes: ["write:media_proxy_caches"], admin: true} when action in [:purge, :delete] + ) + + action_fallback(Pleroma.Web.AdminAPI.FallbackController) + + defdelegate open_api_operation(action), to: Spec.MediaProxyCacheOperation + + def index(%{assigns: %{user: _}} = conn, params) do + cursor = + :banned_urls_cache + |> :ets.table([{:traverse, {:select, Cachex.Query.create(true, :key)}}]) + |> :qlc.cursor() + + urls = + case params.page do + 1 -> + :qlc.next_answers(cursor, params.page_size) + + _ -> + :qlc.next_answers(cursor, (params.page - 1) * params.page_size) + :qlc.next_answers(cursor, params.page_size) + end + + :qlc.delete_cursor(cursor) + + render(conn, "index.json", urls: urls) + end + + def delete(%{assigns: %{user: _}, body_params: %{urls: urls}} = conn, _) do + MediaProxy.remove_from_banned_urls(urls) + render(conn, "index.json", urls: urls) + end + + def purge(%{assigns: %{user: _}, body_params: %{urls: urls, ban: ban}} = conn, _) do + MediaProxy.Invalidation.purge(urls) + + if ban do + MediaProxy.put_in_banned_urls(urls) + end + + render(conn, "index.json", urls: urls) + end +end diff --git a/lib/pleroma/web/admin_api/controllers/oauth_app_controller.ex b/lib/pleroma/web/admin_api/controllers/oauth_app_controller.ex new file mode 100644 index 000000000..dca23ea73 --- /dev/null +++ b/lib/pleroma/web/admin_api/controllers/oauth_app_controller.ex @@ -0,0 +1,77 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.OAuthAppController do + use Pleroma.Web, :controller + + import Pleroma.Web.ControllerHelper, only: [json_response: 3] + + alias Pleroma.Plugs.OAuthScopesPlug + alias Pleroma.Web.OAuth.App + + require Logger + + plug(Pleroma.Web.ApiSpec.CastAndValidate) + plug(:put_view, Pleroma.Web.MastodonAPI.AppView) + + plug( + OAuthScopesPlug, + %{scopes: ["write"], admin: true} + when action in [:create, :index, :update, :delete] + ) + + action_fallback(Pleroma.Web.AdminAPI.FallbackController) + + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.Admin.OAuthAppOperation + + def index(conn, params) do + search_params = + params + |> Map.take([:client_id, :page, :page_size, :trusted]) + |> Map.put(:client_name, params[:name]) + + with {:ok, apps, count} <- App.search(search_params) do + render(conn, "index.json", + apps: apps, + count: count, + page_size: params.page_size, + admin: true + ) + end + end + + def create(%{body_params: params} = conn, _) do + params = Pleroma.Maps.put_if_present(params, :client_name, params[:name]) + + case App.create(params) do + {:ok, app} -> + render(conn, "show.json", app: app, admin: true) + + {:error, changeset} -> + json(conn, App.errors(changeset)) + end + end + + def update(%{body_params: params} = conn, %{id: id}) do + params = Pleroma.Maps.put_if_present(params, :client_name, params[:name]) + + with {:ok, app} <- App.update(id, params) do + render(conn, "show.json", app: app, admin: true) + else + {:error, changeset} -> + json(conn, App.errors(changeset)) + + nil -> + json_response(conn, :bad_request, "") + end + end + + def delete(conn, params) do + with {:ok, _app} <- App.destroy(params.id) do + json_response(conn, :no_content, "") + else + _ -> json_response(conn, :bad_request, "") + end + end +end diff --git a/lib/pleroma/web/admin_api/controllers/relay_controller.ex b/lib/pleroma/web/admin_api/controllers/relay_controller.ex new file mode 100644 index 000000000..cf9f3a14b --- /dev/null +++ b/lib/pleroma/web/admin_api/controllers/relay_controller.ex @@ -0,0 +1,67 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.RelayController do + use Pleroma.Web, :controller + + alias Pleroma.ModerationLog + alias Pleroma.Plugs.OAuthScopesPlug + alias Pleroma.Web.ActivityPub.Relay + + require Logger + + plug(Pleroma.Web.ApiSpec.CastAndValidate) + + plug( + OAuthScopesPlug, + %{scopes: ["write:follows"], admin: true} + when action in [:follow, :unfollow] + ) + + plug(OAuthScopesPlug, %{scopes: ["read"], admin: true} when action == :index) + + action_fallback(Pleroma.Web.AdminAPI.FallbackController) + + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.Admin.RelayOperation + + def index(conn, _params) do + with {:ok, list} <- Relay.list() do + json(conn, %{relays: list}) + end + end + + def follow(%{assigns: %{user: admin}, body_params: %{relay_url: target}} = conn, _) do + with {:ok, _message} <- Relay.follow(target) do + ModerationLog.insert_log(%{ + action: "relay_follow", + actor: admin, + target: target + }) + + json(conn, target) + else + _ -> + conn + |> put_status(500) + |> json(target) + end + end + + def unfollow(%{assigns: %{user: admin}, body_params: %{relay_url: target}} = conn, _) do + with {:ok, _message} <- Relay.unfollow(target) do + ModerationLog.insert_log(%{ + action: "relay_unfollow", + actor: admin, + target: target + }) + + json(conn, target) + else + _ -> + conn + |> put_status(500) + |> json(target) + end + end +end diff --git a/lib/pleroma/web/admin_api/controllers/report_controller.ex b/lib/pleroma/web/admin_api/controllers/report_controller.ex new file mode 100644 index 000000000..4c011e174 --- /dev/null +++ b/lib/pleroma/web/admin_api/controllers/report_controller.ex @@ -0,0 +1,107 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.ReportController do + use Pleroma.Web, :controller + + import Pleroma.Web.ControllerHelper, only: [json_response: 3] + + alias Pleroma.Activity + alias Pleroma.ModerationLog + alias Pleroma.Plugs.OAuthScopesPlug + alias Pleroma.ReportNote + alias Pleroma.Web.ActivityPub.Utils + alias Pleroma.Web.AdminAPI + alias Pleroma.Web.AdminAPI.Report + alias Pleroma.Web.CommonAPI + + require Logger + + plug(Pleroma.Web.ApiSpec.CastAndValidate) + plug(OAuthScopesPlug, %{scopes: ["read:reports"], admin: true} when action in [:index, :show]) + + plug( + OAuthScopesPlug, + %{scopes: ["write:reports"], admin: true} + when action in [:update, :notes_create, :notes_delete] + ) + + action_fallback(AdminAPI.FallbackController) + + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.Admin.ReportOperation + + def index(conn, params) do + reports = Utils.get_reports(params, params.page, params.page_size) + + render(conn, "index.json", reports: reports) + end + + def show(conn, %{id: id}) do + with %Activity{} = report <- Activity.get_by_id(id) do + render(conn, "show.json", Report.extract_report_info(report)) + else + _ -> {:error, :not_found} + end + end + + def update(%{assigns: %{user: admin}, body_params: %{reports: reports}} = conn, _) do + result = + Enum.map(reports, fn report -> + case CommonAPI.update_report_state(report.id, report.state) do + {:ok, activity} -> + ModerationLog.insert_log(%{ + action: "report_update", + actor: admin, + subject: activity + }) + + activity + + {:error, message} -> + %{id: report.id, error: message} + end + end) + + if Enum.any?(result, &Map.has_key?(&1, :error)) do + json_response(conn, :bad_request, result) + else + json_response(conn, :no_content, "") + end + end + + def notes_create(%{assigns: %{user: user}, body_params: %{content: content}} = conn, %{ + id: report_id + }) do + with {:ok, _} <- ReportNote.create(user.id, report_id, content) do + ModerationLog.insert_log(%{ + action: "report_note", + actor: user, + subject: Activity.get_by_id(report_id), + text: content + }) + + json_response(conn, :no_content, "") + else + _ -> json_response(conn, :bad_request, "") + end + end + + def notes_delete(%{assigns: %{user: user}} = conn, %{ + id: note_id, + report_id: report_id + }) do + with {:ok, note} <- ReportNote.destroy(note_id) do + ModerationLog.insert_log(%{ + action: "report_note_delete", + actor: user, + subject: Activity.get_by_id(report_id), + text: note.content + }) + + json_response(conn, :no_content, "") + else + _ -> json_response(conn, :bad_request, "") + end + end +end diff --git a/lib/pleroma/web/admin_api/controllers/status_controller.ex b/lib/pleroma/web/admin_api/controllers/status_controller.ex new file mode 100644 index 000000000..bc48cc527 --- /dev/null +++ b/lib/pleroma/web/admin_api/controllers/status_controller.ex @@ -0,0 +1,77 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.StatusController do + use Pleroma.Web, :controller + + alias Pleroma.Activity + alias Pleroma.ModerationLog + alias Pleroma.Plugs.OAuthScopesPlug + alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.CommonAPI + alias Pleroma.Web.MastodonAPI + + require Logger + + plug(Pleroma.Web.ApiSpec.CastAndValidate) + plug(OAuthScopesPlug, %{scopes: ["read:statuses"], admin: true} when action in [:index, :show]) + + plug( + OAuthScopesPlug, + %{scopes: ["write:statuses"], admin: true} when action in [:update, :delete] + ) + + action_fallback(Pleroma.Web.AdminAPI.FallbackController) + + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.Admin.StatusOperation + + def index(%{assigns: %{user: _admin}} = conn, params) do + activities = + ActivityPub.fetch_statuses(nil, %{ + godmode: params.godmode, + local_only: params.local_only, + limit: params.page_size, + offset: (params.page - 1) * params.page_size, + exclude_reblogs: not params.with_reblogs + }) + + render(conn, "index.json", activities: activities, as: :activity) + end + + def show(conn, %{id: id}) do + with %Activity{} = activity <- Activity.get_by_id(id) do + render(conn, "show.json", %{activity: activity}) + else + nil -> {:error, :not_found} + end + end + + def update(%{assigns: %{user: admin}, body_params: params} = conn, %{id: id}) do + with {:ok, activity} <- CommonAPI.update_activity_scope(id, params) do + ModerationLog.insert_log(%{ + action: "status_update", + actor: admin, + subject: activity, + sensitive: params[:sensitive], + visibility: params[:visibility] + }) + + conn + |> put_view(MastodonAPI.StatusView) + |> render("show.json", %{activity: activity}) + end + end + + def delete(%{assigns: %{user: user}} = conn, %{id: id}) do + with {:ok, %Activity{}} <- CommonAPI.delete(id, user) do + ModerationLog.insert_log(%{ + action: "status_delete", + actor: user, + subject_id: id + }) + + json(conn, %{}) + end + end +end diff --git a/lib/pleroma/web/admin_api/search.ex b/lib/pleroma/web/admin_api/search.ex index c28efadd5..0bfb8f022 100644 --- a/lib/pleroma/web/admin_api/search.ex +++ b/lib/pleroma/web/admin_api/search.ex @@ -21,7 +21,7 @@ def user(params \\ %{}) do query = params |> Map.drop([:page, :page_size]) - |> Map.put(:exclude_service_users, true) + |> Map.put(:invisible, false) |> User.Query.build() |> order_by([u], u.nickname) @@ -31,7 +31,6 @@ def user(params \\ %{}) do count = Repo.aggregate(query, :count, :id) results = Repo.all(paginated_query) - {:ok, results, count} end end diff --git a/lib/pleroma/web/admin_api/views/account_view.ex b/lib/pleroma/web/admin_api/views/account_view.ex index a16a3ebf0..e1e929632 100644 --- a/lib/pleroma/web/admin_api/views/account_view.ex +++ b/lib/pleroma/web/admin_api/views/account_view.ex @@ -6,7 +6,9 @@ defmodule Pleroma.Web.AdminAPI.AccountView do use Pleroma.Web, :view alias Pleroma.User + alias Pleroma.Web.AdminAPI alias Pleroma.Web.AdminAPI.AccountView + alias Pleroma.Web.MastodonAPI alias Pleroma.Web.MediaProxy def render("index.json", %{users: users, count: count, page_size: page_size}) do @@ -74,25 +76,8 @@ def render("show.json", %{user: user}) do "local" => user.local, "roles" => User.roles(user), "tags" => user.tags || [], - "confirmation_pending" => user.confirmation_pending - } - end - - def render("invite.json", %{invite: invite}) do - %{ - "id" => invite.id, - "token" => invite.token, - "used" => invite.used, - "expires_at" => invite.expires_at, - "uses" => invite.uses, - "max_use" => invite.max_use, - "invite_type" => invite.invite_type - } - end - - def render("invites.json", %{invites: invites}) do - %{ - invites: render_many(invites, AccountView, "invite.json", as: :invite) + "confirmation_pending" => user.confirmation_pending, + "url" => user.uri || user.ap_id } end @@ -119,6 +104,13 @@ def render("create-error.json", %{changeset: %Ecto.Changeset{changes: changes, e } end + def merge_account_views(%User{} = user) do + MastodonAPI.AccountView.render("show.json", %{user: user}) + |> Map.merge(AdminAPI.AccountView.render("show.json", %{user: user})) + end + + def merge_account_views(_), do: %{} + defp parse_error([]), do: "" defp parse_error(errors) do diff --git a/lib/pleroma/web/admin_api/views/config_view.ex b/lib/pleroma/web/admin_api/views/config_view.ex index 587ef760e..d2d8b5907 100644 --- a/lib/pleroma/web/admin_api/views/config_view.ex +++ b/lib/pleroma/web/admin_api/views/config_view.ex @@ -5,23 +5,20 @@ defmodule Pleroma.Web.AdminAPI.ConfigView do use Pleroma.Web, :view - def render("index.json", %{configs: configs} = params) do - map = %{ - configs: render_many(configs, __MODULE__, "show.json", as: :config) - } + alias Pleroma.ConfigDB - if params[:need_reboot] do - Map.put(map, :need_reboot, true) - else - map - end + def render("index.json", %{configs: configs} = params) do + %{ + configs: render_many(configs, __MODULE__, "show.json", as: :config), + need_reboot: params[:need_reboot] + } end def render("show.json", %{config: config}) do map = %{ - key: config.key, - group: config.group, - value: Pleroma.ConfigDB.from_binary_with_convert(config.value) + key: ConfigDB.to_json_types(config.key), + group: ConfigDB.to_json_types(config.group), + value: ConfigDB.to_json_types(config.value) } if config.db != [] do diff --git a/lib/pleroma/web/admin_api/views/invite_view.ex b/lib/pleroma/web/admin_api/views/invite_view.ex new file mode 100644 index 000000000..f93cb6916 --- /dev/null +++ b/lib/pleroma/web/admin_api/views/invite_view.ex @@ -0,0 +1,25 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.InviteView do + use Pleroma.Web, :view + + def render("index.json", %{invites: invites}) do + %{ + invites: render_many(invites, __MODULE__, "show.json", as: :invite) + } + end + + def render("show.json", %{invite: invite}) do + %{ + "id" => invite.id, + "token" => invite.token, + "used" => invite.used, + "expires_at" => invite.expires_at, + "uses" => invite.uses, + "max_use" => invite.max_use, + "invite_type" => invite.invite_type + } + end +end diff --git a/lib/pleroma/web/admin_api/views/media_proxy_cache_view.ex b/lib/pleroma/web/admin_api/views/media_proxy_cache_view.ex new file mode 100644 index 000000000..c97400beb --- /dev/null +++ b/lib/pleroma/web/admin_api/views/media_proxy_cache_view.ex @@ -0,0 +1,11 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.MediaProxyCacheView do + use Pleroma.Web, :view + + def render("index.json", %{urls: urls}) do + %{urls: urls} + end +end diff --git a/lib/pleroma/web/admin_api/views/report_view.ex b/lib/pleroma/web/admin_api/views/report_view.ex index d50969b2a..773f798fe 100644 --- a/lib/pleroma/web/admin_api/views/report_view.ex +++ b/lib/pleroma/web/admin_api/views/report_view.ex @@ -7,15 +7,18 @@ defmodule Pleroma.Web.AdminAPI.ReportView do alias Pleroma.HTML alias Pleroma.User + alias Pleroma.Web.AdminAPI alias Pleroma.Web.AdminAPI.Report alias Pleroma.Web.CommonAPI.Utils alias Pleroma.Web.MastodonAPI.StatusView + defdelegate merge_account_views(user), to: AdminAPI.AccountView + def render("index.json", %{reports: reports}) do %{ reports: reports[:items] - |> Enum.map(&Report.extract_report_info(&1)) + |> Enum.map(&Report.extract_report_info/1) |> Enum.map(&render(__MODULE__, "show.json", &1)) |> Enum.reverse(), total: reports[:total] @@ -41,8 +44,7 @@ def render("show.json", %{report: report, user: user, account: account, statuses statuses: StatusView.render("index.json", %{ activities: statuses, - as: :activity, - skip_relationships: false + as: :activity }), state: report.data["state"], notes: render(__MODULE__, "index_notes.json", %{notes: report.report_notes}) @@ -70,11 +72,4 @@ def render("show_note.json", %{ created_at: Utils.to_masto_date(inserted_at) } end - - defp merge_account_views(%User{} = user) do - Pleroma.Web.MastodonAPI.AccountView.render("show.json", %{user: user}) - |> Map.merge(Pleroma.Web.AdminAPI.AccountView.render("show.json", %{user: user})) - end - - defp merge_account_views(_), do: %{} end diff --git a/lib/pleroma/web/admin_api/views/status_view.ex b/lib/pleroma/web/admin_api/views/status_view.ex index 3637dee24..500800be2 100644 --- a/lib/pleroma/web/admin_api/views/status_view.ex +++ b/lib/pleroma/web/admin_api/views/status_view.ex @@ -7,24 +7,19 @@ defmodule Pleroma.Web.AdminAPI.StatusView do require Pleroma.Constants - alias Pleroma.User - alias Pleroma.Web.MastodonAPI.StatusView + alias Pleroma.Web.AdminAPI + alias Pleroma.Web.MastodonAPI + + defdelegate merge_account_views(user), to: AdminAPI.AccountView def render("index.json", opts) do safe_render_many(opts.activities, __MODULE__, "show.json", opts) end def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} = opts) do - user = StatusView.get_user(activity.data["actor"]) + user = MastodonAPI.StatusView.get_user(activity.data["actor"]) - StatusView.render("show.json", opts) + MastodonAPI.StatusView.render("show.json", opts) |> Map.merge(%{account: merge_account_views(user)}) end - - defp merge_account_views(%User{} = user) do - Pleroma.Web.MastodonAPI.AccountView.render("show.json", %{user: user}) - |> Map.merge(Pleroma.Web.AdminAPI.AccountView.render("show.json", %{user: user})) - end - - defp merge_account_views(_), do: %{} end diff --git a/lib/pleroma/web/api_spec/helpers.ex b/lib/pleroma/web/api_spec/helpers.ex index f0b558aa5..a258e8421 100644 --- a/lib/pleroma/web/api_spec/helpers.ex +++ b/lib/pleroma/web/api_spec/helpers.ex @@ -5,6 +5,7 @@ defmodule Pleroma.Web.ApiSpec.Helpers do alias OpenApiSpex.Operation alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.BooleanLike def request_body(description, schema_ref, opts \\ []) do media_types = ["application/json", "multipart/form-data", "application/x-www-form-urlencoded"] @@ -38,6 +39,12 @@ def pagination_params do :string, "Return the newest items newer than this ID" ), + Operation.parameter( + :offset, + :query, + %Schema{type: :integer, default: 0}, + "Return items past this number of items" + ), Operation.parameter( :limit, :query, @@ -47,6 +54,15 @@ def pagination_params do ] end + def with_relationships_param do + Operation.parameter( + :with_relationships, + :query, + BooleanLike, + "Embed relationships into accounts." + ) + end + def empty_object_response do Operation.response("Empty object", "application/json", %Schema{type: :object, example: %{}}) end diff --git a/lib/pleroma/web/api_spec/operations/account_operation.ex b/lib/pleroma/web/api_spec/operations/account_operation.ex index 988bab882..9bde8fc0d 100644 --- a/lib/pleroma/web/api_spec/operations/account_operation.ex +++ b/lib/pleroma/web/api_spec/operations/account_operation.ex @@ -102,6 +102,7 @@ def show_operation do parameters: [%Reference{"$ref": "#/components/parameters/accountIdOrNickname"}], responses: %{ 200 => Operation.response("Account", "application/json", Account), + 401 => Operation.response("Error", "application/json", ApiError), 404 => Operation.response("Error", "application/json", ApiError) } } @@ -142,6 +143,7 @@ def statuses_operation do ] ++ pagination_params(), responses: %{ 200 => Operation.response("Statuses", "application/json", array_of_statuses()), + 401 => Operation.response("Error", "application/json", ApiError), 404 => Operation.response("Error", "application/json", ApiError) } } @@ -155,8 +157,10 @@ def followers_operation do security: [%{"oAuth" => ["read:accounts"]}], description: "Accounts which follow the given account, if network is not hidden by the account owner.", - parameters: - [%Reference{"$ref": "#/components/parameters/accountIdOrNickname"}] ++ pagination_params(), + parameters: [ + %Reference{"$ref": "#/components/parameters/accountIdOrNickname"}, + with_relationships_param() | pagination_params() + ], responses: %{ 200 => Operation.response("Accounts", "application/json", array_of_accounts()) } @@ -171,8 +175,10 @@ def following_operation do security: [%{"oAuth" => ["read:accounts"]}], description: "Accounts which the given account is following, if network is not hidden by the account owner.", - parameters: - [%Reference{"$ref": "#/components/parameters/accountIdOrNickname"}] ++ pagination_params(), + parameters: [ + %Reference{"$ref": "#/components/parameters/accountIdOrNickname"}, + with_relationships_param() | pagination_params() + ], responses: %{200 => Operation.response("Accounts", "application/json", array_of_accounts())} } end @@ -389,7 +395,7 @@ defp create_request do format: :password }, agreement: %Schema{ - type: :boolean, + allOf: [BooleanLike], description: "Whether the user agrees to the local rules, terms, and policies. These should be presented to the user in order to allow them to consent before setting this parameter to TRUE." }, @@ -459,7 +465,7 @@ defp update_creadentials_request do type: :object, properties: %{ bot: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Whether the account has a bot flag." }, @@ -482,7 +488,7 @@ defp update_creadentials_request do format: :binary }, locked: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Whether manual approval of follow requests is required." }, @@ -506,37 +512,37 @@ defp update_creadentials_request do # Pleroma-specific fields no_rich_text: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "html tags are stripped from all statuses requested from the API" }, hide_followers: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "user's followers will be hidden" }, hide_follows: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "user's follows will be hidden" }, hide_followers_count: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "user's follower count will be hidden" }, hide_follows_count: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "user's follow count will be hidden" }, hide_favorites: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "user's favorites timeline will be hidden" }, show_role: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "user's role (e.g admin, moderator) will be exposed to anyone in the API" @@ -548,12 +554,12 @@ defp update_creadentials_request do description: "Opaque user settings to be saved on the backend." }, skip_thread_containment: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Skip filtering out broken threads" }, allow_following_move: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Allows automatically follow moved following accounts" }, @@ -564,7 +570,7 @@ defp update_creadentials_request do format: :binary }, discoverable: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Discovery of this account in search results and other services is allowed." @@ -674,7 +680,7 @@ defp mute_request do type: :object, properties: %{ notifications: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Mute notifications in addition to statuses? Defaults to true.", default: true diff --git a/lib/pleroma/web/api_spec/operations/admin/config_operation.ex b/lib/pleroma/web/api_spec/operations/admin/config_operation.ex new file mode 100644 index 000000000..7b38a2ef4 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/admin/config_operation.ex @@ -0,0 +1,142 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Admin.ConfigOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.ApiError + + import Pleroma.Web.ApiSpec.Helpers + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def show_operation do + %Operation{ + tags: ["Admin", "Config"], + summary: "Get list of merged default settings with saved in database", + operationId: "AdminAPI.ConfigController.show", + parameters: [ + Operation.parameter( + :only_db, + :query, + %Schema{type: :boolean, default: false}, + "Get only saved in database settings" + ) + ], + security: [%{"oAuth" => ["read"]}], + responses: %{ + 200 => Operation.response("Config", "application/json", config_response()), + 400 => Operation.response("Bad Request", "application/json", ApiError) + } + } + end + + def update_operation do + %Operation{ + tags: ["Admin", "Config"], + summary: "Update config settings", + operationId: "AdminAPI.ConfigController.update", + security: [%{"oAuth" => ["write"]}], + requestBody: + request_body("Parameters", %Schema{ + type: :object, + properties: %{ + configs: %Schema{ + type: :array, + items: %Schema{ + type: :object, + properties: %{ + group: %Schema{type: :string}, + key: %Schema{type: :string}, + value: any(), + delete: %Schema{type: :boolean}, + subkeys: %Schema{type: :array, items: %Schema{type: :string}} + } + } + } + } + }), + responses: %{ + 200 => Operation.response("Config", "application/json", config_response()), + 400 => Operation.response("Bad Request", "application/json", ApiError) + } + } + end + + def descriptions_operation do + %Operation{ + tags: ["Admin", "Config"], + summary: "Get JSON with config descriptions.", + operationId: "AdminAPI.ConfigController.descriptions", + security: [%{"oAuth" => ["read"]}], + responses: %{ + 200 => + Operation.response("Config Descriptions", "application/json", %Schema{ + type: :array, + items: %Schema{ + type: :object, + properties: %{ + group: %Schema{type: :string}, + key: %Schema{type: :string}, + type: %Schema{oneOf: [%Schema{type: :string}, %Schema{type: :array}]}, + description: %Schema{type: :string}, + children: %Schema{ + type: :array, + items: %Schema{ + type: :object, + properties: %{ + key: %Schema{type: :string}, + type: %Schema{oneOf: [%Schema{type: :string}, %Schema{type: :array}]}, + description: %Schema{type: :string}, + suggestions: %Schema{type: :array} + } + } + } + } + } + }), + 400 => Operation.response("Bad Request", "application/json", ApiError) + } + } + end + + defp any do + %Schema{ + oneOf: [ + %Schema{type: :array}, + %Schema{type: :object}, + %Schema{type: :string}, + %Schema{type: :integer}, + %Schema{type: :boolean} + ] + } + end + + defp config_response do + %Schema{ + type: :object, + properties: %{ + configs: %Schema{ + type: :array, + items: %Schema{ + type: :object, + properties: %{ + group: %Schema{type: :string}, + key: %Schema{type: :string}, + value: any() + } + } + }, + need_reboot: %Schema{ + type: :boolean, + description: + "If `need_reboot` is `true`, instance must be restarted, so reboot time settings can take effect" + } + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/admin/invite_operation.ex b/lib/pleroma/web/api_spec/operations/admin/invite_operation.ex new file mode 100644 index 000000000..d3af9db49 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/admin/invite_operation.ex @@ -0,0 +1,148 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Admin.InviteOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.ApiError + + import Pleroma.Web.ApiSpec.Helpers + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def index_operation do + %Operation{ + tags: ["Admin", "Invites"], + summary: "Get a list of generated invites", + operationId: "AdminAPI.InviteController.index", + security: [%{"oAuth" => ["read:invites"]}], + responses: %{ + 200 => + Operation.response("Invites", "application/json", %Schema{ + type: :object, + properties: %{ + invites: %Schema{type: :array, items: invite()} + }, + example: %{ + "invites" => [ + %{ + "id" => 123, + "token" => "kSQtDj_GNy2NZsL9AQDFIsHN5qdbguB6qRg3WHw6K1U=", + "used" => true, + "expires_at" => nil, + "uses" => 0, + "max_use" => nil, + "invite_type" => "one_time" + } + ] + } + }) + } + } + end + + def create_operation do + %Operation{ + tags: ["Admin", "Invites"], + summary: "Create an account registration invite token", + operationId: "AdminAPI.InviteController.create", + security: [%{"oAuth" => ["write:invites"]}], + requestBody: + request_body("Parameters", %Schema{ + type: :object, + properties: %{ + max_use: %Schema{type: :integer}, + expires_at: %Schema{type: :string, format: :date, example: "2020-04-20"} + } + }), + responses: %{ + 200 => Operation.response("Invite", "application/json", invite()) + } + } + end + + def revoke_operation do + %Operation{ + tags: ["Admin", "Invites"], + summary: "Revoke invite by token", + operationId: "AdminAPI.InviteController.revoke", + security: [%{"oAuth" => ["write:invites"]}], + requestBody: + request_body( + "Parameters", + %Schema{ + type: :object, + required: [:token], + properties: %{ + token: %Schema{type: :string} + } + }, + required: true + ), + responses: %{ + 200 => Operation.response("Invite", "application/json", invite()), + 400 => Operation.response("Bad Request", "application/json", ApiError), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def email_operation do + %Operation{ + tags: ["Admin", "Invites"], + summary: "Sends registration invite via email", + operationId: "AdminAPI.InviteController.email", + security: [%{"oAuth" => ["write:invites"]}], + requestBody: + request_body( + "Parameters", + %Schema{ + type: :object, + required: [:email], + properties: %{ + email: %Schema{type: :string, format: :email}, + name: %Schema{type: :string} + } + }, + required: true + ), + responses: %{ + 204 => no_content_response(), + 400 => Operation.response("Bad Request", "application/json", ApiError), + 403 => Operation.response("Forbidden", "application/json", ApiError) + } + } + end + + defp invite do + %Schema{ + title: "Invite", + type: :object, + properties: %{ + id: %Schema{type: :integer}, + token: %Schema{type: :string}, + used: %Schema{type: :boolean}, + expires_at: %Schema{type: :string, format: :date, nullable: true}, + uses: %Schema{type: :integer}, + max_use: %Schema{type: :integer, nullable: true}, + invite_type: %Schema{ + type: :string, + enum: ["one_time", "reusable", "date_limited", "reusable_date_limited"] + } + }, + example: %{ + "id" => 123, + "token" => "kSQtDj_GNy2NZsL9AQDFIsHN5qdbguB6qRg3WHw6K1U=", + "used" => true, + "expires_at" => nil, + "uses" => 0, + "max_use" => nil, + "invite_type" => "one_time" + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/admin/media_proxy_cache_operation.ex b/lib/pleroma/web/api_spec/operations/admin/media_proxy_cache_operation.ex new file mode 100644 index 000000000..0358cfbad --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/admin/media_proxy_cache_operation.ex @@ -0,0 +1,109 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Admin.MediaProxyCacheOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.ApiError + + import Pleroma.Web.ApiSpec.Helpers + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def index_operation do + %Operation{ + tags: ["Admin", "MediaProxyCache"], + summary: "Fetch a paginated list of all banned MediaProxy URLs in Cachex", + operationId: "AdminAPI.MediaProxyCacheController.index", + security: [%{"oAuth" => ["read:media_proxy_caches"]}], + parameters: [ + Operation.parameter( + :page, + :query, + %Schema{type: :integer, default: 1}, + "Page" + ), + Operation.parameter( + :page_size, + :query, + %Schema{type: :integer, default: 50}, + "Number of statuses to return" + ) + ], + responses: %{ + 200 => success_response() + } + } + end + + def delete_operation do + %Operation{ + tags: ["Admin", "MediaProxyCache"], + summary: "Remove a banned MediaProxy URL from Cachex", + operationId: "AdminAPI.MediaProxyCacheController.delete", + security: [%{"oAuth" => ["write:media_proxy_caches"]}], + requestBody: + request_body( + "Parameters", + %Schema{ + type: :object, + required: [:urls], + properties: %{ + urls: %Schema{type: :array, items: %Schema{type: :string, format: :uri}} + } + }, + required: true + ), + responses: %{ + 200 => success_response(), + 400 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def purge_operation do + %Operation{ + tags: ["Admin", "MediaProxyCache"], + summary: "Purge and optionally ban a MediaProxy URL", + operationId: "AdminAPI.MediaProxyCacheController.purge", + security: [%{"oAuth" => ["write:media_proxy_caches"]}], + requestBody: + request_body( + "Parameters", + %Schema{ + type: :object, + required: [:urls], + properties: %{ + urls: %Schema{type: :array, items: %Schema{type: :string, format: :uri}}, + ban: %Schema{type: :boolean, default: true} + } + }, + required: true + ), + responses: %{ + 200 => success_response(), + 400 => Operation.response("Error", "application/json", ApiError) + } + } + end + + defp success_response do + Operation.response("Array of banned MediaProxy URLs in Cachex", "application/json", %Schema{ + type: :object, + properties: %{ + urls: %Schema{ + type: :array, + items: %Schema{ + type: :string, + format: :uri, + description: "MediaProxy URLs" + } + } + } + }) + end +end diff --git a/lib/pleroma/web/api_spec/operations/admin/oauth_app_operation.ex b/lib/pleroma/web/api_spec/operations/admin/oauth_app_operation.ex new file mode 100644 index 000000000..fbc9f80d7 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/admin/oauth_app_operation.ex @@ -0,0 +1,215 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Admin.OAuthAppOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.ApiError + + import Pleroma.Web.ApiSpec.Helpers + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def index_operation do + %Operation{ + summary: "List OAuth apps", + tags: ["Admin", "oAuth Apps"], + operationId: "AdminAPI.OAuthAppController.index", + security: [%{"oAuth" => ["write"]}], + parameters: [ + Operation.parameter(:name, :query, %Schema{type: :string}, "App name"), + Operation.parameter(:client_id, :query, %Schema{type: :string}, "Client ID"), + Operation.parameter(:page, :query, %Schema{type: :integer, default: 1}, "Page"), + Operation.parameter( + :trusted, + :query, + %Schema{type: :boolean, default: false}, + "Trusted apps" + ), + Operation.parameter( + :page_size, + :query, + %Schema{type: :integer, default: 50}, + "Number of apps to return" + ) + ], + responses: %{ + 200 => + Operation.response("List of apps", "application/json", %Schema{ + type: :object, + properties: %{ + apps: %Schema{type: :array, items: oauth_app()}, + count: %Schema{type: :integer}, + page_size: %Schema{type: :integer} + }, + example: %{ + "apps" => [ + %{ + "id" => 1, + "name" => "App name", + "client_id" => "yHoDSiWYp5mPV6AfsaVOWjdOyt5PhWRiafi6MRd1lSk", + "client_secret" => "nLmis486Vqrv2o65eM9mLQx_m_4gH-Q6PcDpGIMl6FY", + "redirect_uri" => "https://example.com/oauth-callback", + "website" => "https://example.com", + "trusted" => true + } + ], + "count" => 1, + "page_size" => 50 + } + }) + } + } + end + + def create_operation do + %Operation{ + tags: ["Admin", "oAuth Apps"], + summary: "Create OAuth App", + operationId: "AdminAPI.OAuthAppController.create", + requestBody: request_body("Parameters", create_request()), + security: [%{"oAuth" => ["write"]}], + responses: %{ + 200 => Operation.response("App", "application/json", oauth_app()), + 400 => Operation.response("Bad Request", "application/json", ApiError) + } + } + end + + def update_operation do + %Operation{ + tags: ["Admin", "oAuth Apps"], + summary: "Update OAuth App", + operationId: "AdminAPI.OAuthAppController.update", + parameters: [id_param()], + security: [%{"oAuth" => ["write"]}], + requestBody: request_body("Parameters", update_request()), + responses: %{ + 200 => Operation.response("App", "application/json", oauth_app()), + 400 => + Operation.response("Bad Request", "application/json", %Schema{ + oneOf: [ApiError, %Schema{type: :string}] + }) + } + } + end + + def delete_operation do + %Operation{ + tags: ["Admin", "oAuth Apps"], + summary: "Delete OAuth App", + operationId: "AdminAPI.OAuthAppController.delete", + parameters: [id_param()], + security: [%{"oAuth" => ["write"]}], + responses: %{ + 204 => no_content_response(), + 400 => no_content_response() + } + } + end + + defp create_request do + %Schema{ + title: "oAuthAppCreateRequest", + type: :object, + required: [:name, :redirect_uris], + properties: %{ + name: %Schema{type: :string, description: "Application Name"}, + scopes: %Schema{type: :array, items: %Schema{type: :string}, description: "oAuth scopes"}, + redirect_uris: %Schema{ + type: :string, + description: + "Where the user should be redirected after authorization. To display the authorization code to the user instead of redirecting to a web page, use `urn:ietf:wg:oauth:2.0:oob` in this parameter." + }, + website: %Schema{ + type: :string, + nullable: true, + description: "A URL to the homepage of the app" + }, + trusted: %Schema{ + type: :boolean, + nullable: true, + default: false, + description: "Is the app trusted?" + } + }, + example: %{ + "name" => "My App", + "redirect_uris" => "https://myapp.com/auth/callback", + "website" => "https://myapp.com/", + "scopes" => ["read", "write"], + "trusted" => true + } + } + end + + defp update_request do + %Schema{ + title: "oAuthAppUpdateRequest", + type: :object, + properties: %{ + name: %Schema{type: :string, description: "Application Name"}, + scopes: %Schema{type: :array, items: %Schema{type: :string}, description: "oAuth scopes"}, + redirect_uris: %Schema{ + type: :string, + description: + "Where the user should be redirected after authorization. To display the authorization code to the user instead of redirecting to a web page, use `urn:ietf:wg:oauth:2.0:oob` in this parameter." + }, + website: %Schema{ + type: :string, + nullable: true, + description: "A URL to the homepage of the app" + }, + trusted: %Schema{ + type: :boolean, + nullable: true, + default: false, + description: "Is the app trusted?" + } + }, + example: %{ + "name" => "My App", + "redirect_uris" => "https://myapp.com/auth/callback", + "website" => "https://myapp.com/", + "scopes" => ["read", "write"], + "trusted" => true + } + } + end + + defp oauth_app do + %Schema{ + title: "oAuthApp", + type: :object, + properties: %{ + id: %Schema{type: :integer}, + name: %Schema{type: :string}, + client_id: %Schema{type: :string}, + client_secret: %Schema{type: :string}, + redirect_uri: %Schema{type: :string}, + website: %Schema{type: :string, nullable: true}, + trusted: %Schema{type: :boolean} + }, + example: %{ + "id" => 123, + "name" => "My App", + "client_id" => "TWhM-tNSuncnqN7DBJmoyeLnk6K3iJJ71KKXxgL1hPM", + "client_secret" => "ZEaFUFmF0umgBX1qKJDjaU99Q31lDkOU8NutzTOoliw", + "redirect_uri" => "https://myapp.com/oauth-callback", + "website" => "https://myapp.com/", + "trusted" => false + } + } + end + + def id_param do + Operation.parameter(:id, :path, :integer, "App ID", + example: 1337, + required: true + ) + end +end diff --git a/lib/pleroma/web/api_spec/operations/admin/relay_operation.ex b/lib/pleroma/web/api_spec/operations/admin/relay_operation.ex new file mode 100644 index 000000000..7672cb467 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/admin/relay_operation.ex @@ -0,0 +1,83 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Admin.RelayOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + + import Pleroma.Web.ApiSpec.Helpers + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def index_operation do + %Operation{ + tags: ["Admin", "Relays"], + summary: "List Relays", + operationId: "AdminAPI.RelayController.index", + security: [%{"oAuth" => ["read"]}], + responses: %{ + 200 => + Operation.response("Response", "application/json", %Schema{ + type: :object, + properties: %{ + relays: %Schema{ + type: :array, + items: %Schema{type: :string}, + example: ["lain.com", "mstdn.io"] + } + } + }) + } + } + end + + def follow_operation do + %Operation{ + tags: ["Admin", "Relays"], + summary: "Follow a Relay", + operationId: "AdminAPI.RelayController.follow", + security: [%{"oAuth" => ["write:follows"]}], + requestBody: + request_body("Parameters", %Schema{ + type: :object, + properties: %{ + relay_url: %Schema{type: :string, format: :uri} + } + }), + responses: %{ + 200 => + Operation.response("Status", "application/json", %Schema{ + type: :string, + example: "http://mastodon.example.org/users/admin" + }) + } + } + end + + def unfollow_operation do + %Operation{ + tags: ["Admin", "Relays"], + summary: "Unfollow a Relay", + operationId: "AdminAPI.RelayController.unfollow", + security: [%{"oAuth" => ["write:follows"]}], + requestBody: + request_body("Parameters", %Schema{ + type: :object, + properties: %{ + relay_url: %Schema{type: :string, format: :uri} + } + }), + responses: %{ + 200 => + Operation.response("Status", "application/json", %Schema{ + type: :string, + example: "http://mastodon.example.org/users/admin" + }) + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/admin/report_operation.ex b/lib/pleroma/web/api_spec/operations/admin/report_operation.ex new file mode 100644 index 000000000..15e78bfaf --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/admin/report_operation.ex @@ -0,0 +1,237 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Admin.ReportOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.Account + alias Pleroma.Web.ApiSpec.Schemas.ApiError + alias Pleroma.Web.ApiSpec.Schemas.FlakeID + alias Pleroma.Web.ApiSpec.Schemas.Status + + import Pleroma.Web.ApiSpec.Helpers + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def index_operation do + %Operation{ + tags: ["Admin", "Reports"], + summary: "Get a list of reports", + operationId: "AdminAPI.ReportController.index", + security: [%{"oAuth" => ["read:reports"]}], + parameters: [ + Operation.parameter( + :state, + :query, + report_state(), + "Filter by report state" + ), + Operation.parameter( + :limit, + :query, + %Schema{type: :integer}, + "The number of records to retrieve" + ), + Operation.parameter( + :page, + :query, + %Schema{type: :integer, default: 1}, + "Page number" + ), + Operation.parameter( + :page_size, + :query, + %Schema{type: :integer, default: 50}, + "Number number of log entries per page" + ) + ], + responses: %{ + 200 => + Operation.response("Response", "application/json", %Schema{ + type: :object, + properties: %{ + total: %Schema{type: :integer}, + reports: %Schema{ + type: :array, + items: report() + } + } + }), + 403 => Operation.response("Forbidden", "application/json", ApiError) + } + } + end + + def show_operation do + %Operation{ + tags: ["Admin", "Reports"], + summary: "Get an individual report", + operationId: "AdminAPI.ReportController.show", + parameters: [id_param()], + security: [%{"oAuth" => ["read:reports"]}], + responses: %{ + 200 => Operation.response("Report", "application/json", report()), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def update_operation do + %Operation{ + tags: ["Admin", "Reports"], + summary: "Change the state of one or multiple reports", + operationId: "AdminAPI.ReportController.update", + security: [%{"oAuth" => ["write:reports"]}], + requestBody: request_body("Parameters", update_request(), required: true), + responses: %{ + 204 => no_content_response(), + 400 => Operation.response("Bad Request", "application/json", update_400_response()), + 403 => Operation.response("Forbidden", "application/json", ApiError) + } + } + end + + def notes_create_operation do + %Operation{ + tags: ["Admin", "Reports"], + summary: "Create report note", + operationId: "AdminAPI.ReportController.notes_create", + parameters: [id_param()], + requestBody: + request_body("Parameters", %Schema{ + type: :object, + properties: %{ + content: %Schema{type: :string, description: "The message"} + } + }), + security: [%{"oAuth" => ["write:reports"]}], + responses: %{ + 204 => no_content_response(), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def notes_delete_operation do + %Operation{ + tags: ["Admin", "Reports"], + summary: "Delete report note", + operationId: "AdminAPI.ReportController.notes_delete", + parameters: [ + Operation.parameter(:report_id, :path, :string, "Report ID"), + Operation.parameter(:id, :path, :string, "Note ID") + ], + security: [%{"oAuth" => ["write:reports"]}], + responses: %{ + 204 => no_content_response(), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + defp report_state do + %Schema{type: :string, enum: ["open", "closed", "resolved"]} + end + + defp id_param do + Operation.parameter(:id, :path, FlakeID, "Report ID", + example: "9umDrYheeY451cQnEe", + required: true + ) + end + + defp report do + %Schema{ + type: :object, + properties: %{ + id: FlakeID, + state: report_state(), + account: account_admin(), + actor: account_admin(), + content: %Schema{type: :string}, + created_at: %Schema{type: :string, format: :"date-time"}, + statuses: %Schema{type: :array, items: Status}, + notes: %Schema{ + type: :array, + items: %Schema{ + type: :object, + properties: %{ + id: %Schema{type: :integer}, + user_id: FlakeID, + content: %Schema{type: :string}, + inserted_at: %Schema{type: :string, format: :"date-time"} + } + } + } + } + } + end + + defp account_admin do + %Schema{ + title: "Account", + description: "Account view for admins", + type: :object, + properties: + Map.merge(Account.schema().properties, %{ + nickname: %Schema{type: :string}, + deactivated: %Schema{type: :boolean}, + local: %Schema{type: :boolean}, + roles: %Schema{ + type: :object, + properties: %{ + admin: %Schema{type: :boolean}, + moderator: %Schema{type: :boolean} + } + }, + confirmation_pending: %Schema{type: :boolean} + }) + } + end + + defp update_request do + %Schema{ + type: :object, + required: [:reports], + properties: %{ + reports: %Schema{ + type: :array, + items: %Schema{ + type: :object, + properties: %{ + id: %Schema{allOf: [FlakeID], description: "Required, report ID"}, + state: %Schema{ + type: :string, + description: + "Required, the new state. Valid values are `open`, `closed` and `resolved`" + } + } + }, + example: %{ + "reports" => [ + %{"id" => "123", "state" => "closed"}, + %{"id" => "1337", "state" => "resolved"} + ] + } + } + } + } + end + + defp update_400_response do + %Schema{ + type: :array, + items: %Schema{ + type: :object, + properties: %{ + id: %Schema{allOf: [FlakeID], description: "Report ID"}, + error: %Schema{type: :string, description: "Error message"} + } + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/admin/status_operation.ex b/lib/pleroma/web/api_spec/operations/admin/status_operation.ex new file mode 100644 index 000000000..745399b4b --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/admin/status_operation.ex @@ -0,0 +1,165 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Admin.StatusOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.Account + alias Pleroma.Web.ApiSpec.Schemas.ApiError + alias Pleroma.Web.ApiSpec.Schemas.FlakeID + alias Pleroma.Web.ApiSpec.Schemas.Status + alias Pleroma.Web.ApiSpec.Schemas.VisibilityScope + + import Pleroma.Web.ApiSpec.Helpers + import Pleroma.Web.ApiSpec.StatusOperation, only: [id_param: 0] + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def index_operation do + %Operation{ + tags: ["Admin", "Statuses"], + operationId: "AdminAPI.StatusController.index", + security: [%{"oAuth" => ["read:statuses"]}], + parameters: [ + Operation.parameter( + :godmode, + :query, + %Schema{type: :boolean, default: false}, + "Allows to see private statuses" + ), + Operation.parameter( + :local_only, + :query, + %Schema{type: :boolean, default: false}, + "Excludes remote statuses" + ), + Operation.parameter( + :with_reblogs, + :query, + %Schema{type: :boolean, default: false}, + "Allows to see reblogs" + ), + Operation.parameter( + :page, + :query, + %Schema{type: :integer, default: 1}, + "Page" + ), + Operation.parameter( + :page_size, + :query, + %Schema{type: :integer, default: 50}, + "Number of statuses to return" + ) + ], + responses: %{ + 200 => + Operation.response("Array of statuses", "application/json", %Schema{ + type: :array, + items: status() + }) + } + } + end + + def show_operation do + %Operation{ + tags: ["Admin", "Statuses"], + summary: "Show Status", + operationId: "AdminAPI.StatusController.show", + parameters: [id_param()], + security: [%{"oAuth" => ["read:statuses"]}], + responses: %{ + 200 => Operation.response("Status", "application/json", status()), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def update_operation do + %Operation{ + tags: ["Admin", "Statuses"], + summary: "Change the scope of an individual reported status", + operationId: "AdminAPI.StatusController.update", + parameters: [id_param()], + security: [%{"oAuth" => ["write:statuses"]}], + requestBody: request_body("Parameters", update_request(), required: true), + responses: %{ + 200 => Operation.response("Status", "application/json", Status), + 400 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def delete_operation do + %Operation{ + tags: ["Admin", "Statuses"], + summary: "Delete an individual reported status", + operationId: "AdminAPI.StatusController.delete", + parameters: [id_param()], + security: [%{"oAuth" => ["write:statuses"]}], + responses: %{ + 200 => empty_object_response(), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + defp status do + %Schema{ + anyOf: [ + Status, + %Schema{ + type: :object, + properties: %{ + account: %Schema{allOf: [Account, admin_account()]} + } + } + ] + } + end + + def admin_account do + %Schema{ + type: :object, + properties: %{ + id: FlakeID, + avatar: %Schema{type: :string}, + nickname: %Schema{type: :string}, + display_name: %Schema{type: :string}, + deactivated: %Schema{type: :boolean}, + local: %Schema{type: :boolean}, + roles: %Schema{ + type: :object, + properties: %{ + admin: %Schema{type: :boolean}, + moderator: %Schema{type: :boolean} + } + }, + tags: %Schema{type: :string}, + confirmation_pending: %Schema{type: :string} + } + } + end + + defp update_request do + %Schema{ + type: :object, + properties: %{ + sensitive: %Schema{ + type: :boolean, + description: "Mark status and attached media as sensitive?" + }, + visibility: VisibilityScope + }, + example: %{ + "visibility" => "private", + "sensitive" => "false" + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex new file mode 100644 index 000000000..cf299bfc2 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -0,0 +1,355 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.ChatOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.ApiError + alias Pleroma.Web.ApiSpec.Schemas.Chat + alias Pleroma.Web.ApiSpec.Schemas.ChatMessage + + import Pleroma.Web.ApiSpec.Helpers + + @spec open_api_operation(atom) :: Operation.t() + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def mark_as_read_operation do + %Operation{ + tags: ["chat"], + summary: "Mark all messages in the chat as read", + operationId: "ChatController.mark_as_read", + parameters: [Operation.parameter(:id, :path, :string, "The ID of the Chat")], + requestBody: request_body("Parameters", mark_as_read()), + responses: %{ + 200 => + Operation.response( + "The updated chat", + "application/json", + Chat + ) + }, + security: [ + %{ + "oAuth" => ["write:chats"] + } + ] + } + end + + def mark_message_as_read_operation do + %Operation{ + tags: ["chat"], + summary: "Mark one message in the chat as read", + operationId: "ChatController.mark_message_as_read", + parameters: [ + Operation.parameter(:id, :path, :string, "The ID of the Chat"), + Operation.parameter(:message_id, :path, :string, "The ID of the message") + ], + responses: %{ + 200 => + Operation.response( + "The read ChatMessage", + "application/json", + ChatMessage + ) + }, + security: [ + %{ + "oAuth" => ["write:chats"] + } + ] + } + end + + def show_operation do + %Operation{ + tags: ["chat"], + summary: "Create a chat", + operationId: "ChatController.show", + parameters: [ + Operation.parameter( + :id, + :path, + :string, + "The id of the chat", + required: true, + example: "1234" + ) + ], + responses: %{ + 200 => + Operation.response( + "The existing chat", + "application/json", + Chat + ) + }, + security: [ + %{ + "oAuth" => ["read"] + } + ] + } + end + + def create_operation do + %Operation{ + tags: ["chat"], + summary: "Create a chat", + operationId: "ChatController.create", + parameters: [ + Operation.parameter( + :id, + :path, + :string, + "The account id of the recipient of this chat", + required: true, + example: "someflakeid" + ) + ], + responses: %{ + 200 => + Operation.response( + "The created or existing chat", + "application/json", + Chat + ) + }, + security: [ + %{ + "oAuth" => ["write:chats"] + } + ] + } + end + + def index_operation do + %Operation{ + tags: ["chat"], + summary: "Get a list of chats that you participated in", + operationId: "ChatController.index", + parameters: pagination_params(), + responses: %{ + 200 => Operation.response("The chats of the user", "application/json", chats_response()) + }, + security: [ + %{ + "oAuth" => ["read:chats"] + } + ] + } + end + + def messages_operation do + %Operation{ + tags: ["chat"], + summary: "Get the most recent messages of the chat", + operationId: "ChatController.messages", + parameters: + [Operation.parameter(:id, :path, :string, "The ID of the Chat")] ++ + pagination_params(), + responses: %{ + 200 => + Operation.response( + "The messages in the chat", + "application/json", + chat_messages_response() + ) + }, + security: [ + %{ + "oAuth" => ["read:chats"] + } + ] + } + end + + def post_chat_message_operation do + %Operation{ + tags: ["chat"], + summary: "Post a message to the chat", + operationId: "ChatController.post_chat_message", + parameters: [ + Operation.parameter(:id, :path, :string, "The ID of the Chat") + ], + requestBody: request_body("Parameters", chat_message_create()), + responses: %{ + 200 => + Operation.response( + "The newly created ChatMessage", + "application/json", + ChatMessage + ), + 400 => Operation.response("Bad Request", "application/json", ApiError) + }, + security: [ + %{ + "oAuth" => ["write:chats"] + } + ] + } + end + + def delete_message_operation do + %Operation{ + tags: ["chat"], + summary: "delete_message", + operationId: "ChatController.delete_message", + parameters: [ + Operation.parameter(:id, :path, :string, "The ID of the Chat"), + Operation.parameter(:message_id, :path, :string, "The ID of the message") + ], + responses: %{ + 200 => + Operation.response( + "The deleted ChatMessage", + "application/json", + ChatMessage + ) + }, + security: [ + %{ + "oAuth" => ["write:chats"] + } + ] + } + end + + def chats_response do + %Schema{ + title: "ChatsResponse", + description: "Response schema for multiple Chats", + type: :array, + items: Chat, + example: [ + %{ + "account" => %{ + "pleroma" => %{ + "is_admin" => false, + "confirmation_pending" => false, + "hide_followers_count" => false, + "is_moderator" => false, + "hide_favorites" => true, + "ap_id" => "https://dontbulling.me/users/lain", + "hide_follows_count" => false, + "hide_follows" => false, + "background_image" => nil, + "skip_thread_containment" => false, + "hide_followers" => false, + "relationship" => %{}, + "tags" => [] + }, + "avatar" => + "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", + "following_count" => 0, + "header_static" => "https://originalpatchou.li/images/banner.png", + "source" => %{ + "sensitive" => false, + "note" => "lain", + "pleroma" => %{ + "discoverable" => false, + "actor_type" => "Person" + }, + "fields" => [] + }, + "statuses_count" => 1, + "locked" => false, + "created_at" => "2020-04-16T13:40:15.000Z", + "display_name" => "lain", + "fields" => [], + "acct" => "lain@dontbulling.me", + "id" => "9u6Qw6TAZANpqokMkK", + "emojis" => [], + "avatar_static" => + "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", + "username" => "lain", + "followers_count" => 0, + "header" => "https://originalpatchou.li/images/banner.png", + "bot" => false, + "note" => "lain", + "url" => "https://dontbulling.me/users/lain" + }, + "id" => "1", + "unread" => 2 + } + ] + } + end + + def chat_messages_response do + %Schema{ + title: "ChatMessagesResponse", + description: "Response schema for multiple ChatMessages", + type: :array, + items: ChatMessage, + example: [ + %{ + "emojis" => [ + %{ + "static_url" => "https://dontbulling.me/emoji/Firefox.gif", + "visible_in_picker" => false, + "shortcode" => "firefox", + "url" => "https://dontbulling.me/emoji/Firefox.gif" + } + ], + "created_at" => "2020-04-21T15:11:46.000Z", + "content" => "Check this out :firefox:", + "id" => "13", + "chat_id" => "1", + "actor_id" => "someflakeid", + "unread" => false + }, + %{ + "actor_id" => "someflakeid", + "content" => "Whats' up?", + "id" => "12", + "chat_id" => "1", + "emojis" => [], + "created_at" => "2020-04-21T15:06:45.000Z", + "unread" => false + } + ] + } + end + + def chat_message_create do + %Schema{ + title: "ChatMessageCreateRequest", + description: "POST body for creating an chat message", + type: :object, + properties: %{ + content: %Schema{ + type: :string, + description: "The content of your message. Optional if media_id is present" + }, + media_id: %Schema{type: :string, description: "The id of an upload"} + }, + example: %{ + "content" => "Hey wanna buy feet pics?", + "media_id" => "134234" + } + } + end + + def mark_as_read do + %Schema{ + title: "MarkAsReadRequest", + description: "POST body for marking a number of chat messages as read", + type: :object, + required: [:last_read_id], + properties: %{ + last_read_id: %Schema{ + type: :string, + description: "The content of your message." + } + }, + example: %{ + "last_read_id" => "abcdef12456" + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/emoji_reaction_operation.ex b/lib/pleroma/web/api_spec/operations/emoji_reaction_operation.ex new file mode 100644 index 000000000..1a49fece0 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/emoji_reaction_operation.ex @@ -0,0 +1,104 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.EmojiReactionOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.Account + alias Pleroma.Web.ApiSpec.Schemas.ApiError + alias Pleroma.Web.ApiSpec.Schemas.FlakeID + alias Pleroma.Web.ApiSpec.Schemas.Status + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def index_operation do + %Operation{ + tags: ["Emoji Reactions"], + summary: + "Get an object of emoji to account mappings with accounts that reacted to the post", + parameters: [ + Operation.parameter(:id, :path, FlakeID, "Status ID", required: true), + Operation.parameter(:emoji, :path, :string, "Filter by a single unicode emoji", + required: false + ) + ], + security: [%{"oAuth" => ["read:statuses"]}], + operationId: "EmojiReactionController.index", + responses: %{ + 200 => array_of_reactions_response() + } + } + end + + def create_operation do + %Operation{ + tags: ["Emoji Reactions"], + summary: "React to a post with a unicode emoji", + parameters: [ + Operation.parameter(:id, :path, FlakeID, "Status ID", required: true), + Operation.parameter(:emoji, :path, :string, "A single character unicode emoji", + required: true + ) + ], + security: [%{"oAuth" => ["write:statuses"]}], + operationId: "EmojiReactionController.create", + responses: %{ + 200 => Operation.response("Status", "application/json", Status), + 400 => Operation.response("Bad Request", "application/json", ApiError) + } + } + end + + def delete_operation do + %Operation{ + tags: ["Emoji Reactions"], + summary: "Remove a reaction to a post with a unicode emoji", + parameters: [ + Operation.parameter(:id, :path, FlakeID, "Status ID", required: true), + Operation.parameter(:emoji, :path, :string, "A single character unicode emoji", + required: true + ) + ], + security: [%{"oAuth" => ["write:statuses"]}], + operationId: "EmojiReactionController.delete", + responses: %{ + 200 => Operation.response("Status", "application/json", Status) + } + } + end + + defp array_of_reactions_response do + Operation.response("Array of Emoji Reactions", "application/json", %Schema{ + type: :array, + items: emoji_reaction(), + example: [emoji_reaction().example] + }) + end + + defp emoji_reaction do + %Schema{ + title: "EmojiReaction", + type: :object, + properties: %{ + name: %Schema{type: :string, description: "Emoji"}, + count: %Schema{type: :integer, description: "Count of reactions with this emoji"}, + me: %Schema{type: :boolean, description: "Did I react with this emoji?"}, + accounts: %Schema{ + type: :array, + items: Account, + description: "Array of accounts reacted with this emoji" + } + }, + example: %{ + "name" => "😱", + "count" => 1, + "me" => false, + "accounts" => [Account.schema().example] + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/filter_operation.ex b/lib/pleroma/web/api_spec/operations/filter_operation.ex index 7310c1c4d..31e576f99 100644 --- a/lib/pleroma/web/api_spec/operations/filter_operation.ex +++ b/lib/pleroma/web/api_spec/operations/filter_operation.ex @@ -6,6 +6,7 @@ defmodule Pleroma.Web.ApiSpec.FilterOperation do alias OpenApiSpex.Operation alias OpenApiSpex.Schema alias Pleroma.Web.ApiSpec.Helpers + alias Pleroma.Web.ApiSpec.Schemas.BooleanLike def open_api_operation(action) do operation = String.to_existing_atom("#{action}_operation") @@ -171,7 +172,7 @@ defp create_request do type: :object, properties: %{ irreversible: %Schema{ - type: :bolean, + allOf: [BooleanLike], description: "Should the server irreversibly drop matching entities from home and notifications?", default: false @@ -199,13 +200,13 @@ defp update_request do "Array of enumerable strings `home`, `notifications`, `public`, `thread`. At least one context must be specified." }, irreversible: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Should the server irreversibly drop matching entities from home and notifications?" }, whole_word: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Consider word boundaries?", default: true diff --git a/lib/pleroma/web/api_spec/operations/instance_operation.ex b/lib/pleroma/web/api_spec/operations/instance_operation.ex index 880bd3f1b..bf39ae643 100644 --- a/lib/pleroma/web/api_spec/operations/instance_operation.ex +++ b/lib/pleroma/web/api_spec/operations/instance_operation.ex @@ -125,13 +125,19 @@ defp instance do }, avatar_upload_limit: %Schema{type: :integer, description: "The title of the website"}, background_upload_limit: %Schema{type: :integer, description: "The title of the website"}, - banner_upload_limit: %Schema{type: :integer, description: "The title of the website"} + banner_upload_limit: %Schema{type: :integer, description: "The title of the website"}, + background_image: %Schema{ + type: :string, + format: :uri, + description: "The background image for the website" + } }, example: %{ "avatar_upload_limit" => 2_000_000, "background_upload_limit" => 4_000_000, + "background_image" => "/static/image.png", "banner_upload_limit" => 4_000_000, - "description" => "A Pleroma instance, an alternative fediverse server", + "description" => "Pleroma: An efficient and flexible fediverse server", "email" => "lain@lain.com", "languages" => ["en"], "max_toot_chars" => 5000, diff --git a/lib/pleroma/web/api_spec/operations/media_operation.ex b/lib/pleroma/web/api_spec/operations/media_operation.ex new file mode 100644 index 000000000..d9c3c42db --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/media_operation.ex @@ -0,0 +1,132 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.MediaOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Helpers + alias Pleroma.Web.ApiSpec.Schemas.ApiError + alias Pleroma.Web.ApiSpec.Schemas.Attachment + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def create_operation do + %Operation{ + tags: ["media"], + summary: "Upload media as attachment", + description: "Creates an attachment to be used with a new status.", + operationId: "MediaController.create", + security: [%{"oAuth" => ["write:media"]}], + requestBody: Helpers.request_body("Parameters", create_request()), + responses: %{ + 200 => Operation.response("Media", "application/json", Attachment), + 401 => Operation.response("Media", "application/json", ApiError), + 422 => Operation.response("Media", "application/json", ApiError) + } + } + end + + defp create_request do + %Schema{ + title: "MediaCreateRequest", + description: "POST body for creating an attachment", + type: :object, + required: [:file], + properties: %{ + file: %Schema{ + type: :string, + format: :binary, + description: "The file to be attached, using multipart form data." + }, + description: %Schema{ + type: :string, + description: "A plain-text description of the media, for accessibility purposes." + }, + focus: %Schema{ + type: :string, + description: "Two floating points (x,y), comma-delimited, ranging from -1.0 to 1.0." + } + } + } + end + + def update_operation do + %Operation{ + tags: ["media"], + summary: "Upload media as attachment", + description: "Creates an attachment to be used with a new status.", + operationId: "MediaController.update", + security: [%{"oAuth" => ["write:media"]}], + parameters: [id_param()], + requestBody: Helpers.request_body("Parameters", update_request()), + responses: %{ + 200 => Operation.response("Media", "application/json", Attachment), + 400 => Operation.response("Media", "application/json", ApiError), + 401 => Operation.response("Media", "application/json", ApiError), + 422 => Operation.response("Media", "application/json", ApiError) + } + } + end + + defp update_request do + %Schema{ + title: "MediaUpdateRequest", + description: "POST body for updating an attachment", + type: :object, + properties: %{ + file: %Schema{ + type: :string, + format: :binary, + description: "The file to be attached, using multipart form data." + }, + description: %Schema{ + type: :string, + description: "A plain-text description of the media, for accessibility purposes." + }, + focus: %Schema{ + type: :string, + description: "Two floating points (x,y), comma-delimited, ranging from -1.0 to 1.0." + } + } + } + end + + def show_operation do + %Operation{ + tags: ["media"], + summary: "Show Uploaded media attachment", + operationId: "MediaController.show", + parameters: [id_param()], + security: [%{"oAuth" => ["read:media"]}], + responses: %{ + 200 => Operation.response("Media", "application/json", Attachment), + 401 => Operation.response("Media", "application/json", ApiError), + 422 => Operation.response("Media", "application/json", ApiError) + } + } + end + + def create2_operation do + %Operation{ + tags: ["media"], + summary: "Upload media as attachment", + description: "Creates an attachment to be used with a new status.", + operationId: "MediaController.create2", + security: [%{"oAuth" => ["write:media"]}], + requestBody: Helpers.request_body("Parameters", create_request()), + responses: %{ + 202 => Operation.response("Media", "application/json", Attachment), + 422 => Operation.response("Media", "application/json", ApiError), + 500 => Operation.response("Media", "application/json", ApiError) + } + } + end + + defp id_param do + Operation.parameter(:id, :path, :string, "The ID of the Attachment entity") + end +end diff --git a/lib/pleroma/web/api_spec/operations/notification_operation.ex b/lib/pleroma/web/api_spec/operations/notification_operation.ex index 64adc5319..f09be64cb 100644 --- a/lib/pleroma/web/api_spec/operations/notification_operation.ex +++ b/lib/pleroma/web/api_spec/operations/notification_operation.ex @@ -145,7 +145,7 @@ def destroy_multiple_operation do } end - defp notification do + def notification do %Schema{ title: "Notification", description: "Response schema for a notification", @@ -163,6 +163,13 @@ defp notification do description: "Status that was the object of the notification, e.g. in mentions, reblogs, favourites, or polls.", nullable: true + }, + pleroma: %Schema{ + type: :object, + properties: %{ + is_seen: %Schema{type: :boolean}, + is_muted: %Schema{type: :boolean} + } } }, example: %{ @@ -170,7 +177,8 @@ defp notification do "type" => "mention", "created_at" => "2019-11-23T07:49:02.064Z", "account" => Account.schema().example, - "status" => Status.schema().example + "status" => Status.schema().example, + "pleroma" => %{"is_seen" => false, "is_muted" => false} } } end @@ -183,8 +191,8 @@ defp notification_type do "favourite", "reblog", "mention", - "poll", "pleroma:emoji_reaction", + "pleroma:chat_mention", "move", "follow_request" ], diff --git a/lib/pleroma/web/api_spec/operations/pleroma_conversation_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_conversation_operation.ex new file mode 100644 index 000000000..e885eab20 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/pleroma_conversation_operation.ex @@ -0,0 +1,106 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.PleromaConversationOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.Conversation + alias Pleroma.Web.ApiSpec.Schemas.FlakeID + alias Pleroma.Web.ApiSpec.StatusOperation + + import Pleroma.Web.ApiSpec.Helpers + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def show_operation do + %Operation{ + tags: ["Conversations"], + summary: "The conversation with the given ID", + parameters: [ + Operation.parameter(:id, :path, :string, "Conversation ID", + example: "123", + required: true + ) + ], + security: [%{"oAuth" => ["read:statuses"]}], + operationId: "PleromaAPI.ConversationController.show", + responses: %{ + 200 => Operation.response("Conversation", "application/json", Conversation) + } + } + end + + def statuses_operation do + %Operation{ + tags: ["Conversations"], + summary: "Timeline for a given conversation", + parameters: [ + Operation.parameter(:id, :path, :string, "Conversation ID", + example: "123", + required: true + ) + | pagination_params() + ], + security: [%{"oAuth" => ["read:statuses"]}], + operationId: "PleromaAPI.ConversationController.statuses", + responses: %{ + 200 => + Operation.response( + "Array of Statuses", + "application/json", + StatusOperation.array_of_statuses() + ) + } + } + end + + def update_operation do + %Operation{ + tags: ["Conversations"], + summary: "Update a conversation. Used to change the set of recipients.", + parameters: [ + Operation.parameter(:id, :path, :string, "Conversation ID", + example: "123", + required: true + ), + Operation.parameter( + :recipients, + :query, + %Schema{type: :array, items: FlakeID}, + "A list of ids of users that should receive posts to this conversation. This will replace the current list of recipients, so submit the full list. The owner of owner of the conversation will always be part of the set of recipients, though.", + required: true + ) + ], + security: [%{"oAuth" => ["write:conversations"]}], + operationId: "PleromaAPI.ConversationController.update", + responses: %{ + 200 => Operation.response("Conversation", "application/json", Conversation) + } + } + end + + def mark_as_read_operation do + %Operation{ + tags: ["Conversations"], + summary: "Marks all user's conversations as read", + security: [%{"oAuth" => ["write:conversations"]}], + operationId: "PleromaAPI.ConversationController.mark_as_read", + responses: %{ + 200 => + Operation.response( + "Array of Conversations that were marked as read", + "application/json", + %Schema{ + type: :array, + items: Conversation, + example: [Conversation.schema().example] + } + ) + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/pleroma_emoji_pack_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_emoji_pack_operation.ex new file mode 100644 index 000000000..b2b4f8713 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/pleroma_emoji_pack_operation.ex @@ -0,0 +1,418 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.PleromaEmojiPackOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.ApiError + + import Pleroma.Web.ApiSpec.Helpers + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def remote_operation do + %Operation{ + tags: ["Emoji Packs"], + summary: "Make request to another instance for emoji packs list", + security: [%{"oAuth" => ["write"]}], + parameters: [url_param()], + operationId: "PleromaAPI.EmojiPackController.remote", + responses: %{ + 200 => emoji_packs_response(), + 500 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def index_operation do + %Operation{ + tags: ["Emoji Packs"], + summary: "Lists local custom emoji packs", + operationId: "PleromaAPI.EmojiPackController.index", + parameters: [ + Operation.parameter( + :page, + :query, + %Schema{type: :integer, default: 1}, + "Page" + ), + Operation.parameter( + :page_size, + :query, + %Schema{type: :integer, default: 50}, + "Number of emoji packs to return" + ) + ], + responses: %{ + 200 => emoji_packs_response() + } + } + end + + def show_operation do + %Operation{ + tags: ["Emoji Packs"], + summary: "Show emoji pack", + operationId: "PleromaAPI.EmojiPackController.show", + parameters: [ + name_param(), + Operation.parameter( + :page, + :query, + %Schema{type: :integer, default: 1}, + "Page" + ), + Operation.parameter( + :page_size, + :query, + %Schema{type: :integer, default: 30}, + "Number of emoji to return" + ) + ], + responses: %{ + 200 => Operation.response("Emoji Pack", "application/json", emoji_pack()), + 400 => Operation.response("Bad Request", "application/json", ApiError), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def archive_operation do + %Operation{ + tags: ["Emoji Packs"], + summary: "Requests a local pack archive from the instance", + operationId: "PleromaAPI.EmojiPackController.archive", + parameters: [name_param()], + responses: %{ + 200 => + Operation.response("Archive file", "application/octet-stream", %Schema{ + type: :string, + format: :binary + }), + 403 => Operation.response("Forbidden", "application/json", ApiError), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def download_operation do + %Operation{ + tags: ["Emoji Packs"], + summary: "Download pack from another instance", + operationId: "PleromaAPI.EmojiPackController.download", + security: [%{"oAuth" => ["write"]}], + requestBody: request_body("Parameters", download_request(), required: true), + responses: %{ + 200 => ok_response(), + 500 => Operation.response("Error", "application/json", ApiError) + } + } + end + + defp download_request do + %Schema{ + type: :object, + required: [:url, :name], + properties: %{ + url: %Schema{ + type: :string, + format: :uri, + description: "URL of the instance to download from" + }, + name: %Schema{type: :string, format: :uri, description: "Pack Name"}, + as: %Schema{type: :string, format: :uri, description: "Save as"} + } + } + end + + def create_operation do + %Operation{ + tags: ["Emoji Packs"], + summary: "Create an empty pack", + operationId: "PleromaAPI.EmojiPackController.create", + security: [%{"oAuth" => ["write"]}], + parameters: [name_param()], + responses: %{ + 200 => ok_response(), + 400 => Operation.response("Not Found", "application/json", ApiError), + 409 => Operation.response("Conflict", "application/json", ApiError), + 500 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def delete_operation do + %Operation{ + tags: ["Emoji Packs"], + summary: "Delete a custom emoji pack", + operationId: "PleromaAPI.EmojiPackController.delete", + security: [%{"oAuth" => ["write"]}], + parameters: [name_param()], + responses: %{ + 200 => ok_response(), + 400 => Operation.response("Bad Request", "application/json", ApiError), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def update_operation do + %Operation{ + tags: ["Emoji Packs"], + summary: "Updates (replaces) pack metadata", + operationId: "PleromaAPI.EmojiPackController.update", + security: [%{"oAuth" => ["write"]}], + requestBody: request_body("Parameters", update_request(), required: true), + parameters: [name_param()], + responses: %{ + 200 => Operation.response("Metadata", "application/json", metadata()), + 400 => Operation.response("Bad Request", "application/json", ApiError) + } + } + end + + def add_file_operation do + %Operation{ + tags: ["Emoji Packs"], + summary: "Add new file to the pack", + operationId: "PleromaAPI.EmojiPackController.add_file", + security: [%{"oAuth" => ["write"]}], + requestBody: request_body("Parameters", add_file_request(), required: true), + parameters: [name_param()], + responses: %{ + 200 => Operation.response("Files Object", "application/json", files_object()), + 400 => Operation.response("Bad Request", "application/json", ApiError), + 409 => Operation.response("Conflict", "application/json", ApiError) + } + } + end + + defp add_file_request do + %Schema{ + type: :object, + required: [:file], + properties: %{ + file: %Schema{ + description: + "File needs to be uploaded with the multipart request or link to remote file", + anyOf: [ + %Schema{type: :string, format: :binary}, + %Schema{type: :string, format: :uri} + ] + }, + shortcode: %Schema{ + type: :string, + description: + "Shortcode for new emoji, must be unique for all emoji. If not sended, shortcode will be taken from original filename." + }, + filename: %Schema{ + type: :string, + description: + "New emoji file name. If not specified will be taken from original filename." + } + } + } + end + + def update_file_operation do + %Operation{ + tags: ["Emoji Packs"], + summary: "Add new file to the pack", + operationId: "PleromaAPI.EmojiPackController.update_file", + security: [%{"oAuth" => ["write"]}], + requestBody: request_body("Parameters", update_file_request(), required: true), + parameters: [name_param()], + responses: %{ + 200 => Operation.response("Files Object", "application/json", files_object()), + 400 => Operation.response("Bad Request", "application/json", ApiError), + 409 => Operation.response("Conflict", "application/json", ApiError) + } + } + end + + defp update_file_request do + %Schema{ + type: :object, + required: [:shortcode, :new_shortcode, :new_filename], + properties: %{ + shortcode: %Schema{ + type: :string, + description: "Emoji file shortcode" + }, + new_shortcode: %Schema{ + type: :string, + description: "New emoji file shortcode" + }, + new_filename: %Schema{ + type: :string, + description: "New filename for emoji file" + }, + force: %Schema{ + type: :boolean, + description: "With true value to overwrite existing emoji with new shortcode", + default: false + } + } + } + end + + def delete_file_operation do + %Operation{ + tags: ["Emoji Packs"], + summary: "Delete emoji file from pack", + operationId: "PleromaAPI.EmojiPackController.delete_file", + security: [%{"oAuth" => ["write"]}], + parameters: [ + name_param(), + Operation.parameter(:shortcode, :query, :string, "File shortcode", + example: "cofe", + required: true + ) + ], + responses: %{ + 200 => Operation.response("Files Object", "application/json", files_object()), + 400 => Operation.response("Bad Request", "application/json", ApiError) + } + } + end + + def import_from_filesystem_operation do + %Operation{ + tags: ["Emoji Packs"], + summary: "Imports packs from filesystem", + operationId: "PleromaAPI.EmojiPackController.import", + security: [%{"oAuth" => ["write"]}], + responses: %{ + 200 => + Operation.response("Array of imported pack names", "application/json", %Schema{ + type: :array, + items: %Schema{type: :string} + }) + } + } + end + + defp name_param do + Operation.parameter(:name, :path, :string, "Pack Name", example: "cofe", required: true) + end + + defp url_param do + Operation.parameter( + :url, + :query, + %Schema{type: :string, format: :uri}, + "URL of the instance", + required: true + ) + end + + defp ok_response do + Operation.response("Ok", "application/json", %Schema{type: :string, example: "ok"}) + end + + defp emoji_packs_response do + Operation.response( + "Object with pack names as keys and pack contents as values", + "application/json", + %Schema{ + type: :object, + additionalProperties: emoji_pack(), + example: %{ + "emojos" => emoji_pack().example + } + } + ) + end + + defp emoji_pack do + %Schema{ + title: "EmojiPack", + type: :object, + properties: %{ + files: files_object(), + pack: %Schema{ + type: :object, + properties: %{ + license: %Schema{type: :string}, + homepage: %Schema{type: :string, format: :uri}, + description: %Schema{type: :string}, + "can-download": %Schema{type: :boolean}, + "share-files": %Schema{type: :boolean}, + "download-sha256": %Schema{type: :string} + } + } + }, + example: %{ + "files" => %{"emacs" => "emacs.png", "guix" => "guix.png"}, + "pack" => %{ + "license" => "Test license", + "homepage" => "https://pleroma.social", + "description" => "Test description", + "can-download" => true, + "share-files" => true, + "download-sha256" => "57482F30674FD3DE821FF48C81C00DA4D4AF1F300209253684ABA7075E5FC238" + } + } + } + end + + defp files_object do + %Schema{ + type: :object, + additionalProperties: %Schema{type: :string}, + description: "Object with emoji names as keys and filenames as values" + } + end + + defp update_request do + %Schema{ + type: :object, + properties: %{ + metadata: %Schema{ + type: :object, + description: "Metadata to replace the old one", + properties: %{ + license: %Schema{type: :string}, + homepage: %Schema{type: :string, format: :uri}, + description: %Schema{type: :string}, + "fallback-src": %Schema{ + type: :string, + format: :uri, + description: "Fallback url to download pack from" + }, + "fallback-src-sha256": %Schema{ + type: :string, + description: "SHA256 encoded for fallback pack archive" + }, + "share-files": %Schema{type: :boolean, description: "Is pack allowed for sharing?"} + } + } + } + } + end + + defp metadata do + %Schema{ + type: :object, + properties: %{ + license: %Schema{type: :string}, + homepage: %Schema{type: :string, format: :uri}, + description: %Schema{type: :string}, + "fallback-src": %Schema{ + type: :string, + format: :uri, + description: "Fallback url to download pack from" + }, + "fallback-src-sha256": %Schema{ + type: :string, + description: "SHA256 encoded for fallback pack archive" + }, + "share-files": %Schema{type: :boolean, description: "Is pack allowed for sharing?"} + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/pleroma_mascot_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_mascot_operation.ex new file mode 100644 index 000000000..8c5f37ea6 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/pleroma_mascot_operation.ex @@ -0,0 +1,79 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.PleromaMascotOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.ApiError + + import Pleroma.Web.ApiSpec.Helpers + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def show_operation do + %Operation{ + tags: ["Mascot"], + summary: "Gets user mascot image", + security: [%{"oAuth" => ["read:accounts"]}], + operationId: "PleromaAPI.MascotController.show", + responses: %{ + 200 => Operation.response("Mascot", "application/json", mascot()) + } + } + end + + def update_operation do + %Operation{ + tags: ["Mascot"], + summary: "Set/clear user avatar image", + description: + "Behaves exactly the same as `POST /api/v1/upload`. Can only accept images - any attempt to upload non-image files will be met with `HTTP 415 Unsupported Media Type`.", + operationId: "PleromaAPI.MascotController.update", + requestBody: + request_body( + "Parameters", + %Schema{ + type: :object, + properties: %{ + file: %Schema{type: :string, format: :binary} + } + }, + required: true + ), + security: [%{"oAuth" => ["write:accounts"]}], + responses: %{ + 200 => Operation.response("Mascot", "application/json", mascot()), + 415 => Operation.response("Unsupported Media Type", "application/json", ApiError) + } + } + end + + defp mascot do + %Schema{ + type: :object, + properties: %{ + id: %Schema{type: :string}, + url: %Schema{type: :string, format: :uri}, + type: %Schema{type: :string}, + pleroma: %Schema{ + type: :object, + properties: %{ + mime_type: %Schema{type: :string} + } + } + }, + example: %{ + "id" => "abcdefg", + "url" => "https://pleroma.example.org/media/abcdefg.png", + "type" => "image", + "pleroma" => %{ + "mime_type" => "image/png" + } + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/pleroma_notification_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_notification_operation.ex new file mode 100644 index 000000000..b0c8db863 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/pleroma_notification_operation.ex @@ -0,0 +1,48 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.PleromaNotificationOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.NotificationOperation + alias Pleroma.Web.ApiSpec.Schemas.ApiError + + import Pleroma.Web.ApiSpec.Helpers + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def mark_as_read_operation do + %Operation{ + tags: ["Notifications"], + summary: "Mark notifications as read. Query parameters are mutually exclusive.", + requestBody: + request_body("Parameters", %Schema{ + type: :object, + properties: %{ + id: %Schema{type: :integer, description: "A single notification ID to read"}, + max_id: %Schema{type: :integer, description: "Read all notifications up to this ID"} + } + }), + security: [%{"oAuth" => ["write:notifications"]}], + operationId: "PleromaAPI.NotificationController.mark_as_read", + responses: %{ + 200 => + Operation.response( + "A Notification or array of Motifications", + "application/json", + %Schema{ + anyOf: [ + %Schema{type: :array, items: NotificationOperation.notification()}, + NotificationOperation.notification() + ] + } + ), + 400 => Operation.response("Bad Request", "application/json", ApiError) + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/pleroma_scrobble_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_scrobble_operation.ex new file mode 100644 index 000000000..85a22aa0b --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/pleroma_scrobble_operation.ex @@ -0,0 +1,102 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.PleromaScrobbleOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Reference + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.Account + alias Pleroma.Web.ApiSpec.Schemas.VisibilityScope + + import Pleroma.Web.ApiSpec.Helpers + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def create_operation do + %Operation{ + tags: ["Scrobbles"], + summary: "Creates a new Listen activity for an account", + security: [%{"oAuth" => ["write"]}], + operationId: "PleromaAPI.ScrobbleController.create", + requestBody: request_body("Parameters", create_request(), requried: true), + responses: %{ + 200 => Operation.response("Scrobble", "application/json", scrobble()) + } + } + end + + def index_operation do + %Operation{ + tags: ["Scrobbles"], + summary: "Requests a list of current and recent Listen activities for an account", + operationId: "PleromaAPI.ScrobbleController.index", + parameters: [ + %Reference{"$ref": "#/components/parameters/accountIdOrNickname"} | pagination_params() + ], + security: [%{"oAuth" => ["read"]}], + responses: %{ + 200 => + Operation.response("Array of Scrobble", "application/json", %Schema{ + type: :array, + items: scrobble() + }) + } + } + end + + defp create_request do + %Schema{ + type: :object, + required: [:title], + properties: %{ + title: %Schema{type: :string, description: "The title of the media playing"}, + album: %Schema{type: :string, description: "The album of the media playing"}, + artist: %Schema{type: :string, description: "The artist of the media playing"}, + length: %Schema{type: :integer, description: "The length of the media playing"}, + visibility: %Schema{ + allOf: [VisibilityScope], + default: "public", + description: "Scrobble visibility" + } + }, + example: %{ + "title" => "Some Title", + "artist" => "Some Artist", + "album" => "Some Album", + "length" => 180_000 + } + } + end + + defp scrobble do + %Schema{ + type: :object, + properties: %{ + id: %Schema{type: :string}, + account: Account, + title: %Schema{type: :string, description: "The title of the media playing"}, + album: %Schema{type: :string, description: "The album of the media playing"}, + artist: %Schema{type: :string, description: "The artist of the media playing"}, + length: %Schema{ + type: :integer, + description: "The length of the media playing", + nullable: true + }, + created_at: %Schema{type: :string, format: :"date-time"} + }, + example: %{ + "id" => "1234", + "account" => Account.schema().example, + "title" => "Some Title", + "artist" => "Some Artist", + "album" => "Some Album", + "length" => 180_000, + "created_at" => "2019-09-28T12:40:45.000Z" + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/report_operation.ex b/lib/pleroma/web/api_spec/operations/report_operation.ex index 882177c96..b9b4c4f79 100644 --- a/lib/pleroma/web/api_spec/operations/report_operation.ex +++ b/lib/pleroma/web/api_spec/operations/report_operation.ex @@ -7,6 +7,7 @@ defmodule Pleroma.Web.ApiSpec.ReportOperation do alias OpenApiSpex.Schema alias Pleroma.Web.ApiSpec.Helpers alias Pleroma.Web.ApiSpec.Schemas.ApiError + alias Pleroma.Web.ApiSpec.Schemas.BooleanLike def open_api_operation(action) do operation = String.to_existing_atom("#{action}_operation") @@ -47,7 +48,7 @@ defp create_request do description: "Reason for the report" }, forward: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, default: false, description: diff --git a/lib/pleroma/web/api_spec/operations/search_operation.ex b/lib/pleroma/web/api_spec/operations/search_operation.ex index 6ea00a9a8..169c36d87 100644 --- a/lib/pleroma/web/api_spec/operations/search_operation.ex +++ b/lib/pleroma/web/api_spec/operations/search_operation.ex @@ -19,6 +19,7 @@ def open_api_operation(action) do apply(__MODULE__, operation, []) end + # Note: `with_relationships` param is not supported (PleromaFE uses this op for autocomplete) def account_search_operation do %Operation{ tags: ["Search"], @@ -96,8 +97,8 @@ def search_operation do :query, %Schema{type: :integer}, "Offset" - ) - | pagination_params() + ), + with_relationships_param() | pagination_params() ], responses: %{ 200 => Operation.response("Results", "application/json", results()) @@ -138,8 +139,8 @@ def search2_operation do :query, %Schema{allOf: [BooleanLike], default: false}, "Only include accounts that the user is following" - ) - | pagination_params() + ), + with_relationships_param() | pagination_params() ], responses: %{ 200 => Operation.response("Results", "application/json", results2()) diff --git a/lib/pleroma/web/api_spec/operations/status_operation.ex b/lib/pleroma/web/api_spec/operations/status_operation.ex index fc2909d8c..0b7fad793 100644 --- a/lib/pleroma/web/api_spec/operations/status_operation.ex +++ b/lib/pleroma/web/api_spec/operations/status_operation.ex @@ -333,7 +333,8 @@ def favourites_operation do %Operation{ tags: ["Statuses"], summary: "Favourited statuses", - description: "Statuses the user has favourited", + description: + "Statuses the user has favourited. Please note that you have to use the link headers to paginate this. You can not build the query parameters yourself.", operationId: "StatusController.favourites", parameters: pagination_params(), security: [%{"oAuth" => ["read:favourites"]}], @@ -349,10 +350,7 @@ def bookmarks_operation do summary: "Bookmarked statuses", description: "Statuses the user has bookmarked", operationId: "StatusController.bookmarks", - parameters: [ - Operation.parameter(:with_relationships, :query, BooleanLike, "Include relationships") - | pagination_params() - ], + parameters: pagination_params(), security: [%{"oAuth" => ["read:bookmarks"]}], responses: %{ 200 => Operation.response("Array of Statuses", "application/json", array_of_statuses()) @@ -398,12 +396,12 @@ defp create_request do "Duration the poll should be open, in seconds. Must be provided with `poll[options]`" }, multiple: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Allow multiple choices?" }, hide_totals: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Hide vote counts until the poll ends?" } @@ -415,7 +413,7 @@ defp create_request do description: "ID of the status being replied to, if status is a reply" }, sensitive: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Mark status and attached media as sensitive?" }, @@ -439,7 +437,7 @@ defp create_request do }, # Pleroma-specific properties: preview: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "If set to `true` the post won't be actually posted, but the status entitiy would still be rendered back. This could be useful for previewing rich text/custom emoji, for example" @@ -490,7 +488,7 @@ defp create_request do } end - defp id_param do + def id_param do Operation.parameter(:id, :path, FlakeID, "Status ID", example: "9umDrYheeY451cQnEe", required: true diff --git a/lib/pleroma/web/api_spec/operations/subscription_operation.ex b/lib/pleroma/web/api_spec/operations/subscription_operation.ex index cf6dcb068..775dd795d 100644 --- a/lib/pleroma/web/api_spec/operations/subscription_operation.ex +++ b/lib/pleroma/web/api_spec/operations/subscription_operation.ex @@ -7,6 +7,7 @@ defmodule Pleroma.Web.ApiSpec.SubscriptionOperation do alias OpenApiSpex.Schema alias Pleroma.Web.ApiSpec.Helpers alias Pleroma.Web.ApiSpec.Schemas.ApiError + alias Pleroma.Web.ApiSpec.Schemas.BooleanLike alias Pleroma.Web.ApiSpec.Schemas.PushSubscription def open_api_operation(action) do @@ -117,29 +118,34 @@ defp create_request do type: :object, properties: %{ follow: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Receive follow notifications?" }, favourite: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Receive favourite notifications?" }, reblog: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Receive reblog notifications?" }, mention: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Receive mention notifications?" }, poll: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Receive poll notifications?" + }, + "pleroma:chat_mention": %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "Receive chat notifications?" } } } @@ -181,27 +187,27 @@ defp update_request do type: :object, properties: %{ follow: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Receive follow notifications?" }, favourite: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Receive favourite notifications?" }, reblog: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Receive reblog notifications?" }, mention: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Receive mention notifications?" }, poll: %Schema{ - type: :boolean, + allOf: [BooleanLike], nullable: true, description: "Receive poll notifications?" } diff --git a/lib/pleroma/web/api_spec/operations/timeline_operation.ex b/lib/pleroma/web/api_spec/operations/timeline_operation.ex index 1b89035d4..8e19bace7 100644 --- a/lib/pleroma/web/api_spec/operations/timeline_operation.ex +++ b/lib/pleroma/web/api_spec/operations/timeline_operation.ex @@ -27,8 +27,7 @@ def home_operation do local_param(), with_muted_param(), exclude_visibilities_param(), - reply_visibility_param(), - with_relationships_param() | pagination_params() + reply_visibility_param() | pagination_params() ], operationId: "TimelineController.home", responses: %{ @@ -44,7 +43,7 @@ def direct_operation do description: "View statuses with a “direct” privacy, from your account or in your notifications", deprecated: true, - parameters: pagination_params(), + parameters: [with_muted_param() | pagination_params()], security: [%{"oAuth" => ["read:statuses"]}], operationId: "TimelineController.direct", responses: %{ @@ -63,8 +62,7 @@ def public_operation do only_media_param(), with_muted_param(), exclude_visibilities_param(), - reply_visibility_param(), - with_relationships_param() | pagination_params() + reply_visibility_param() | pagination_params() ], operationId: "TimelineController.public", responses: %{ @@ -109,8 +107,7 @@ def hashtag_operation do local_param(), only_media_param(), with_muted_param(), - exclude_visibilities_param(), - with_relationships_param() | pagination_params() + exclude_visibilities_param() | pagination_params() ], operationId: "TimelineController.hashtag", responses: %{ @@ -134,8 +131,7 @@ def list_operation do required: true ), with_muted_param(), - exclude_visibilities_param(), - with_relationships_param() | pagination_params() + exclude_visibilities_param() | pagination_params() ], operationId: "TimelineController.list", responses: %{ @@ -153,10 +149,6 @@ defp array_of_statuses do } end - defp with_relationships_param do - Operation.parameter(:with_relationships, :query, BooleanLike, "Include relationships") - end - defp local_param do Operation.parameter( :local, diff --git a/lib/pleroma/web/api_spec/schemas/account.ex b/lib/pleroma/web/api_spec/schemas/account.ex index d54e2158d..84f18f1b6 100644 --- a/lib/pleroma/web/api_spec/schemas/account.ex +++ b/lib/pleroma/web/api_spec/schemas/account.ex @@ -40,20 +40,53 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Account do pleroma: %Schema{ type: :object, properties: %{ - allow_following_move: %Schema{type: :boolean}, - background_image: %Schema{type: :string, nullable: true}, + allow_following_move: %Schema{ + type: :boolean, + description: "whether the user allows automatically follow moved following accounts" + }, + background_image: %Schema{type: :string, nullable: true, format: :uri}, chat_token: %Schema{type: :string}, - confirmation_pending: %Schema{type: :boolean}, + confirmation_pending: %Schema{ + type: :boolean, + description: + "whether the user account is waiting on email confirmation to be activated" + }, hide_favorites: %Schema{type: :boolean}, - hide_followers_count: %Schema{type: :boolean}, - hide_followers: %Schema{type: :boolean}, - hide_follows_count: %Schema{type: :boolean}, - hide_follows: %Schema{type: :boolean}, - is_admin: %Schema{type: :boolean}, - is_moderator: %Schema{type: :boolean}, + hide_followers_count: %Schema{ + type: :boolean, + description: "whether the user has follower stat hiding enabled" + }, + hide_followers: %Schema{ + type: :boolean, + description: "whether the user has follower hiding enabled" + }, + hide_follows_count: %Schema{ + type: :boolean, + description: "whether the user has follow stat hiding enabled" + }, + hide_follows: %Schema{ + type: :boolean, + description: "whether the user has follow hiding enabled" + }, + is_admin: %Schema{ + type: :boolean, + description: "whether the user is an admin of the local instance" + }, + is_moderator: %Schema{ + type: :boolean, + description: "whether the user is a moderator of the local instance" + }, skip_thread_containment: %Schema{type: :boolean}, - tags: %Schema{type: :array, items: %Schema{type: :string}}, - unread_conversation_count: %Schema{type: :integer}, + tags: %Schema{ + type: :array, + items: %Schema{type: :string}, + description: + "List of tags being used for things like extra roles or moderation(ie. marking all media as nsfw all)." + }, + unread_conversation_count: %Schema{ + type: :integer, + description: "The count of unread conversations. Only returned to the account owner." + }, notification_settings: %Schema{ type: :object, properties: %{ @@ -66,7 +99,9 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Account do }, relationship: AccountRelationship, settings_store: %Schema{ - type: :object + type: :object, + description: + "A generic map of settings for frontends. Opaque to the backend. Only returned in `verify_credentials` and `update_credentials`" } } }, @@ -74,16 +109,32 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Account do type: :object, properties: %{ fields: %Schema{type: :array, items: AccountField}, - note: %Schema{type: :string}, + note: %Schema{ + type: :string, + description: + "Plaintext version of the bio without formatting applied by the backend, used for editing the bio." + }, privacy: VisibilityScope, sensitive: %Schema{type: :boolean}, pleroma: %Schema{ type: :object, properties: %{ actor_type: ActorType, - discoverable: %Schema{type: :boolean}, - no_rich_text: %Schema{type: :boolean}, - show_role: %Schema{type: :boolean} + discoverable: %Schema{ + type: :boolean, + description: + "whether the user allows discovery of the account in search results and other services." + }, + no_rich_text: %Schema{ + type: :boolean, + description: + "whether the HTML tags for rich-text formatting are stripped from all statuses requested from the API." + }, + show_role: %Schema{ + type: :boolean, + description: + "whether the user wants their role (e.g admin, moderator) to be shown" + } } } } diff --git a/lib/pleroma/web/api_spec/schemas/attachment.ex b/lib/pleroma/web/api_spec/schemas/attachment.ex index c146c416e..c6edf6d36 100644 --- a/lib/pleroma/web/api_spec/schemas/attachment.ex +++ b/lib/pleroma/web/api_spec/schemas/attachment.ex @@ -13,7 +13,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Attachment do type: :object, requried: [:id, :url, :preview_url], properties: %{ - id: %Schema{type: :string}, + id: %Schema{type: :string, description: "The ID of the attachment in the database."}, url: %Schema{ type: :string, format: :uri, diff --git a/lib/pleroma/web/api_spec/schemas/chat.ex b/lib/pleroma/web/api_spec/schemas/chat.ex new file mode 100644 index 000000000..b4986b734 --- /dev/null +++ b/lib/pleroma/web/api_spec/schemas/chat.ex @@ -0,0 +1,75 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Schemas.Chat do + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.ChatMessage + + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "Chat", + description: "Response schema for a Chat", + type: :object, + properties: %{ + id: %Schema{type: :string}, + account: %Schema{type: :object}, + unread: %Schema{type: :integer}, + last_message: ChatMessage, + updated_at: %Schema{type: :string, format: :"date-time"} + }, + example: %{ + "account" => %{ + "pleroma" => %{ + "is_admin" => false, + "confirmation_pending" => false, + "hide_followers_count" => false, + "is_moderator" => false, + "hide_favorites" => true, + "ap_id" => "https://dontbulling.me/users/lain", + "hide_follows_count" => false, + "hide_follows" => false, + "background_image" => nil, + "skip_thread_containment" => false, + "hide_followers" => false, + "relationship" => %{}, + "tags" => [] + }, + "avatar" => + "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", + "following_count" => 0, + "header_static" => "https://originalpatchou.li/images/banner.png", + "source" => %{ + "sensitive" => false, + "note" => "lain", + "pleroma" => %{ + "discoverable" => false, + "actor_type" => "Person" + }, + "fields" => [] + }, + "statuses_count" => 1, + "locked" => false, + "created_at" => "2020-04-16T13:40:15.000Z", + "display_name" => "lain", + "fields" => [], + "acct" => "lain@dontbulling.me", + "id" => "9u6Qw6TAZANpqokMkK", + "emojis" => [], + "avatar_static" => + "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", + "username" => "lain", + "followers_count" => 0, + "header" => "https://originalpatchou.li/images/banner.png", + "bot" => false, + "note" => "lain", + "url" => "https://dontbulling.me/users/lain" + }, + "id" => "1", + "unread" => 2, + "last_message" => ChatMessage.schema().example(), + "updated_at" => "2020-04-21T15:06:45.000Z" + } + }) +end diff --git a/lib/pleroma/web/api_spec/schemas/chat_message.ex b/lib/pleroma/web/api_spec/schemas/chat_message.ex new file mode 100644 index 000000000..3ee85aa76 --- /dev/null +++ b/lib/pleroma/web/api_spec/schemas/chat_message.ex @@ -0,0 +1,41 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessage do + alias OpenApiSpex.Schema + + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "ChatMessage", + description: "Response schema for a ChatMessage", + nullable: true, + type: :object, + properties: %{ + id: %Schema{type: :string}, + account_id: %Schema{type: :string, description: "The Mastodon API id of the actor"}, + chat_id: %Schema{type: :string}, + content: %Schema{type: :string, nullable: true}, + created_at: %Schema{type: :string, format: :"date-time"}, + emojis: %Schema{type: :array}, + attachment: %Schema{type: :object, nullable: true} + }, + example: %{ + "account_id" => "someflakeid", + "chat_id" => "1", + "content" => "hey you again", + "created_at" => "2020-04-21T15:06:45.000Z", + "emojis" => [ + %{ + "static_url" => "https://dontbulling.me/emoji/Firefox.gif", + "visible_in_picker" => false, + "shortcode" => "firefox", + "url" => "https://dontbulling.me/emoji/Firefox.gif" + } + ], + "id" => "14", + "attachment" => nil + } + }) +end diff --git a/lib/pleroma/web/api_spec/schemas/status.ex b/lib/pleroma/web/api_spec/schemas/status.ex index 8b87cb25b..28cde963e 100644 --- a/lib/pleroma/web/api_spec/schemas/status.ex +++ b/lib/pleroma/web/api_spec/schemas/status.ex @@ -184,6 +184,10 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do thread_muted: %Schema{ type: :boolean, description: "`true` if the thread the post belongs to is muted" + }, + parent_visible: %Schema{ + type: :boolean, + description: "`true` if the parent post is visible to the user" } } }, diff --git a/lib/pleroma/web/auth/pleroma_authenticator.ex b/lib/pleroma/web/auth/pleroma_authenticator.ex index a8f554aa3..200ca03dc 100644 --- a/lib/pleroma/web/auth/pleroma_authenticator.ex +++ b/lib/pleroma/web/auth/pleroma_authenticator.ex @@ -16,7 +16,8 @@ defmodule Pleroma.Web.Auth.PleromaAuthenticator do def get_user(%Plug.Conn{} = conn) do with {:ok, {name, password}} <- fetch_credentials(conn), {_, %User{} = user} <- {:user, fetch_user(name)}, - {_, true} <- {:checkpw, AuthenticationPlug.checkpw(password, user.password_hash)} do + {_, true} <- {:checkpw, AuthenticationPlug.checkpw(password, user.password_hash)}, + {:ok, user} <- AuthenticationPlug.maybe_update_password(user, password) do {:ok, user} else {:error, _reason} = error -> error diff --git a/lib/pleroma/web/auth/totp_authenticator.ex b/lib/pleroma/web/auth/totp_authenticator.ex index ce8a76219..1794e407c 100644 --- a/lib/pleroma/web/auth/totp_authenticator.ex +++ b/lib/pleroma/web/auth/totp_authenticator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Auth.TOTPAuthenticator do diff --git a/lib/pleroma/web/chat_channel.ex b/lib/pleroma/web/chat_channel.ex index 38ec774f7..bce27897f 100644 --- a/lib/pleroma/web/chat_channel.ex +++ b/lib/pleroma/web/chat_channel.ex @@ -23,6 +23,7 @@ def handle_in("new_msg", %{"text" => text}, %{assigns: %{user_name: user_name}} if String.length(text) in 1..Pleroma.Config.get([:instance, :chat_limit]) do author = User.get_cached_by_nickname(user_name) author = Pleroma.Web.MastodonAPI.AccountView.render("show.json", user: author) + message = ChatChannelState.add_message(%{text: text, author: author}) broadcast!(socket, "new_msg", message) diff --git a/lib/pleroma/web/common_api/activity_draft.ex b/lib/pleroma/web/common_api/activity_draft.ex index 3f1a50b96..9bcb9f587 100644 --- a/lib/pleroma/web/common_api/activity_draft.ex +++ b/lib/pleroma/web/common_api/activity_draft.ex @@ -197,6 +197,13 @@ defp preview?(draft) do defp changes(draft) do direct? = draft.visibility == "direct" + additional = %{"cc" => draft.cc, "directMessage" => direct?} + + additional = + case draft.expires_at do + %NaiveDateTime{} = expires_at -> Map.put(additional, "expires_at", expires_at) + _ -> additional + end changes = %{ @@ -204,7 +211,7 @@ defp changes(draft) do actor: draft.user, context: draft.context, object: draft.object, - additional: %{"cc" => draft.cc, "directMessage" => direct?} + additional: additional } |> Utils.maybe_add_list_data(draft.user, draft.visibility) diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index 7c94f16b6..fd7149079 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -7,6 +7,7 @@ defmodule Pleroma.Web.CommonAPI do alias Pleroma.ActivityExpiration alias Pleroma.Conversation.Participation alias Pleroma.FollowingRelationship + alias Pleroma.Formatter alias Pleroma.Notification alias Pleroma.Object alias Pleroma.ThreadMute @@ -24,6 +25,60 @@ defmodule Pleroma.Web.CommonAPI do require Pleroma.Constants require Logger + def block(blocker, blocked) do + with {:ok, block_data, _} <- Builder.block(blocker, blocked), + {:ok, block, _} <- Pipeline.common_pipeline(block_data, local: true) do + {:ok, block} + end + end + + def post_chat_message(%User{} = user, %User{} = recipient, content, opts \\ []) do + with maybe_attachment <- opts[:media_id] && Object.get_by_id(opts[:media_id]), + :ok <- validate_chat_content_length(content, !!maybe_attachment), + {_, {:ok, chat_message_data, _meta}} <- + {:build_object, + Builder.chat_message( + user, + recipient.ap_id, + content |> format_chat_content, + attachment: maybe_attachment + )}, + {_, {:ok, create_activity_data, _meta}} <- + {:build_create_activity, Builder.create(user, chat_message_data, [recipient.ap_id])}, + {_, {:ok, %Activity{} = activity, _meta}} <- + {:common_pipeline, + Pipeline.common_pipeline(create_activity_data, + local: true + )} do + {:ok, activity} + end + end + + defp format_chat_content(nil), do: nil + + defp format_chat_content(content) do + {text, _, _} = + content + |> Formatter.html_escape("text/plain") + |> Formatter.linkify() + |> (fn {text, mentions, tags} -> + {String.replace(text, ~r/\r?\n/, "
"), mentions, tags} + end).() + + text + end + + defp validate_chat_content_length(_, true), do: :ok + defp validate_chat_content_length(nil, false), do: {:error, :no_content} + + defp validate_chat_content_length(content, _) do + if String.length(content) <= Pleroma.Config.get([:instance, :chat_limit]) do + :ok + else + {:error, :content_too_long} + end + end + def unblock(blocker, blocked) do with {_, %Activity{} = block} <- {:fetch_block, Utils.fetch_latest_block(blocker, blocked)}, {:ok, unblock_data, _} <- Builder.undo(blocker, block), @@ -73,6 +128,7 @@ def accept_follow_request(follower, followed) do object: follow_activity.data["id"], type: "Accept" }) do + Notification.update_notification_type(followed, follow_activity) {:ok, follower} end end @@ -127,18 +183,19 @@ def delete(activity_id, user) do end def repeat(id, user, params \\ %{}) do - with %Activity{data: %{"type" => "Create"}} = activity <- Activity.get_by_id(id) do - object = Object.normalize(activity) - announce_activity = Utils.get_existing_announce(user.ap_id, object) - public = public_announce?(object, params) - - if announce_activity do - {:ok, announce_activity, object} - else - ActivityPub.announce(user, object, nil, true, public) - end + with %Activity{data: %{"type" => "Create"}} = activity <- Activity.get_by_id(id), + object = %Object{} <- Object.normalize(activity, false), + {_, nil} <- {:existing_announce, Utils.get_existing_announce(user.ap_id, object)}, + public = public_announce?(object, params), + {:ok, announce, _} <- Builder.announce(user, object, public: public), + {:ok, activity, _} <- Pipeline.common_pipeline(announce, local: true) do + {:ok, activity} else - _ -> {:error, :not_found} + {:existing_announce, %Activity{} = announce} -> + {:ok, announce} + + _ -> + {:error, :not_found} end end @@ -347,11 +404,14 @@ def check_expiry_date(expiry_str) do |> check_expiry_date() end - def listen(user, %{"title" => _} = data) do - with visibility <- data["visibility"] || "public", - {to, cc} <- get_to_and_cc(user, [], nil, visibility, nil), + def listen(user, data) do + visibility = Map.get(data, :visibility, "public") + + with {to, cc} <- get_to_and_cc(user, [], nil, visibility, nil), listen_data <- - Map.take(data, ["album", "artist", "title", "length"]) + data + |> Map.take([:album, :artist, :title, :length]) + |> Map.new(fn {key, value} -> {to_string(key), value} end) |> Map.put("type", "Audio") |> Map.put("to", to) |> Map.put("cc", cc) @@ -370,20 +430,10 @@ def listen(user, %{"title" => _} = data) do def post(user, %{status: _} = data) do with {:ok, draft} <- Pleroma.Web.CommonAPI.ActivityDraft.create(user, data) do - draft.changes - |> ActivityPub.create(draft.preview?) - |> maybe_create_activity_expiration(draft.expires_at) + ActivityPub.create(draft.changes, draft.preview?) end end - defp maybe_create_activity_expiration({:ok, activity}, %NaiveDateTime{} = expires_at) do - with {:ok, _} <- ActivityExpiration.create(activity, expires_at) do - {:ok, activity} - end - end - - defp maybe_create_activity_expiration(result, _), do: result - def pin(id, %{ap_id: user_ap_id} = user) do with %Activity{ actor: ^user_ap_id, @@ -423,12 +473,13 @@ def remove_mute(user, activity) do {:ok, activity} end - def thread_muted?(%{id: nil} = _user, _activity), do: false - - def thread_muted?(user, activity) do - ThreadMute.exists?(user.id, activity.data["context"]) + def thread_muted?(%User{id: user_id}, %{data: %{"context" => context}}) + when is_binary("context") do + ThreadMute.exists?(user_id, context) end + def thread_muted?(_, _), do: false + def report(user, data) do with {:ok, account} <- get_reported_account(data.account_id), {:ok, {content_html, _, _}} <- make_report_content_html(data[:comment]), diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex index e8deee223..15594125f 100644 --- a/lib/pleroma/web/common_api/utils.ex +++ b/lib/pleroma/web/common_api/utils.ex @@ -102,7 +102,8 @@ def get_to_and_cc(user, mentioned_users, inReplyTo, "private", _) do end def get_to_and_cc(_user, mentioned_users, inReplyTo, "direct", _) do - if inReplyTo do + # If the OP is a DM already, add the implicit actor. + if inReplyTo && Visibility.is_direct?(inReplyTo) do {Enum.uniq([inReplyTo.data["actor"] | mentioned_users]), []} else {mentioned_users, []} @@ -395,10 +396,12 @@ def to_masto_date(date) when is_binary(date) do def to_masto_date(_), do: "" defp shortname(name) do - if String.length(name) < 30 do - name + with max_length when max_length > 0 <- + Config.get([Pleroma.Upload, :filename_display_max_length], 30), + true <- String.length(name) > max_length do + String.slice(name, 0..max_length) <> "…" else - String.slice(name, 0..30) <> "…" + _ -> name end end @@ -426,7 +429,7 @@ def maybe_notify_mentioned_recipients( %Activity{data: %{"to" => _to, "type" => type} = data} = activity ) when type == "Create" do - object = Object.normalize(activity) + object = Object.normalize(activity, false) object_data = cond do @@ -467,6 +470,8 @@ def maybe_notify_subscribers( |> Enum.map(& &1.ap_id) recipients ++ subscriber_ids + else + _e -> recipients end end @@ -478,6 +483,8 @@ def maybe_notify_followers(recipients, %Activity{data: %{"type" => "Move"}} = ac |> User.get_followers() |> Enum.map(& &1.ap_id) |> Enum.concat(recipients) + else + _e -> recipients end end diff --git a/lib/pleroma/web/controller_helper.ex b/lib/pleroma/web/controller_helper.ex index eb97ae975..69946fb81 100644 --- a/lib/pleroma/web/controller_helper.ex +++ b/lib/pleroma/web/controller_helper.ex @@ -5,7 +5,7 @@ defmodule Pleroma.Web.ControllerHelper do use Pleroma.Web, :controller - alias Pleroma.Config + alias Pleroma.Pagination # As in Mastodon API, per https://api.rubyonrails.org/classes/ActiveModel/Type/Boolean.html @falsy_param_values [false, 0, "0", "f", "F", "false", "False", "FALSE", "off", "OFF"] @@ -48,33 +48,8 @@ def add_link_headers(%{assigns: %{skip_link_headers: true}} = conn, _activities, do: conn def add_link_headers(conn, activities, extra_params) do - case List.last(activities) do - %{id: max_id} -> - params = - conn.params - |> Map.drop(Map.keys(conn.path_params)) - |> Map.drop(["since_id", "max_id", "min_id"]) - |> Map.merge(extra_params) - - limit = - params - |> Map.get("limit", "20") - |> String.to_integer() - - min_id = - if length(activities) <= limit do - activities - |> List.first() - |> Map.get(:id) - else - activities - |> Enum.at(limit * -1) - |> Map.get(:id) - end - - next_url = current_url(conn, Map.merge(params, %{max_id: max_id})) - prev_url = current_url(conn, Map.merge(params, %{min_id: min_id})) - + case get_pagination_fields(conn, activities, extra_params) do + %{"next" => next_url, "prev" => prev_url} -> put_resp_header(conn, "link", "<#{next_url}>; rel=\"next\", <#{prev_url}>; rel=\"prev\"") _ -> @@ -82,9 +57,44 @@ def add_link_headers(conn, activities, extra_params) do end end + @id_keys Pagination.page_keys() -- ["limit", "order"] + defp build_pagination_fields(conn, min_id, max_id, extra_params) do + params = + conn.params + |> Map.drop(Map.keys(conn.path_params)) + |> Map.merge(extra_params) + |> Map.drop(@id_keys) + + %{ + "next" => current_url(conn, Map.put(params, :max_id, max_id)), + "prev" => current_url(conn, Map.put(params, :min_id, min_id)), + "id" => current_url(conn) + } + end + + def get_pagination_fields(conn, activities, extra_params \\ %{}) do + case List.last(activities) do + %{pagination_id: max_id} when not is_nil(max_id) -> + %{pagination_id: min_id} = + activities + |> List.first() + + build_pagination_fields(conn, min_id, max_id, extra_params) + + %{id: max_id} -> + %{id: min_id} = + activities + |> List.first() + + build_pagination_fields(conn, min_id, max_id, extra_params) + + _ -> + %{} + end + end + def assign_account_by_id(conn, _) do - # TODO: use `conn.params[:id]` only after moving to OpenAPI - case Pleroma.User.get_cached_by_id(conn.params[:id] || conn.params["id"]) do + case Pleroma.User.get_cached_by_id(conn.params.id) do %Pleroma.User{} = account -> assign(conn, :account, account) nil -> Pleroma.Web.MastodonAPI.FallbackController.call(conn, {:error, :not_found}) |> halt() end @@ -101,18 +111,16 @@ def try_render(conn, _, _) do render_error(conn, :not_implemented, "Can't display this activity") end - @spec put_if_exist(map(), atom() | String.t(), any) :: map() - def put_if_exist(map, _key, nil), do: map - - def put_if_exist(map, key, value), do: Map.put(map, key, value) - - @doc "Whether to skip rendering `[:account][:pleroma][:relationship]`for statuses/notifications" - def skip_relationships?(params) do - if Config.get([:extensions, :output_relationships_in_statuses_by_default]) do - false - else - # BREAKING: older PleromaFE versions do not send this param but _do_ expect relationships. - not truthy_param?(params["with_relationships"]) - end + @doc """ + Returns true if request specifies to include embedded relationships in account objects. + May only be used in selected account-related endpoints; has no effect for status- or + notification-related endpoints. + """ + # Intended for PleromaFE: https://git.pleroma.social/pleroma/pleroma-fe/-/issues/838 + def embed_relationships?(params) do + # To do once OpenAPI transition mess is over: just `truthy_param?(params[:with_relationships])` + params + |> Map.get(:with_relationships, params["with_relationships"]) + |> truthy_param?() end end diff --git a/lib/pleroma/web/embed_controller.ex b/lib/pleroma/web/embed_controller.ex new file mode 100644 index 000000000..f6b8a5ee1 --- /dev/null +++ b/lib/pleroma/web/embed_controller.ex @@ -0,0 +1,42 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.EmbedController do + use Pleroma.Web, :controller + + alias Pleroma.Activity + alias Pleroma.Object + alias Pleroma.User + + alias Pleroma.Web.ActivityPub.Visibility + + plug(:put_layout, :embed) + + def show(conn, %{"id" => id}) do + with %Activity{local: true} = activity <- + Activity.get_by_id_with_object(id), + true <- Visibility.is_public?(activity.object) do + {:ok, author} = User.get_or_fetch(activity.object.data["actor"]) + + conn + |> delete_resp_header("x-frame-options") + |> delete_resp_header("content-security-policy") + |> render("show.html", + activity: activity, + author: User.sanitize_html(author), + counts: get_counts(activity) + ) + end + end + + defp get_counts(%Activity{} = activity) do + %Object{data: data} = Object.normalize(activity) + + %{ + likes: Map.get(data, "like_count", 0), + replies: Map.get(data, "repliesCount", 0), + announces: Map.get(data, "announcement_count", 0) + } + end +end diff --git a/lib/pleroma/web/fallback_redirect_controller.ex b/lib/pleroma/web/fallback_redirect_controller.ex index 0d9d578fc..431ad5485 100644 --- a/lib/pleroma/web/fallback_redirect_controller.ex +++ b/lib/pleroma/web/fallback_redirect_controller.ex @@ -9,6 +9,7 @@ defmodule Fallback.RedirectController do alias Pleroma.User alias Pleroma.Web.Metadata + alias Pleroma.Web.Preload def api_not_implemented(conn, _params) do conn @@ -16,16 +17,7 @@ def api_not_implemented(conn, _params) do |> json(%{error: "Not implemented"}) end - def redirector(conn, _params, code \\ 200) - - # redirect to admin section - # /pleroma/admin -> /pleroma/admin/ - # - def redirector(conn, %{"path" => ["pleroma", "admin"]} = _, _code) do - redirect(conn, to: "/pleroma/admin/") - end - - def redirector(conn, _params, code) do + def redirector(conn, _params, code \\ 200) do conn |> put_resp_content_type("text/html") |> send_file(code, index_file_path()) @@ -43,28 +35,33 @@ def redirector_with_meta(conn, %{"maybe_nickname_or_id" => maybe_nickname_or_id} def redirector_with_meta(conn, params) do {:ok, index_content} = File.read(index_file_path()) - tags = - try do - Metadata.build_tags(params) - rescue - e -> - Logger.error( - "Metadata rendering for #{conn.request_path} failed.\n" <> - Exception.format(:error, e, __STACKTRACE__) - ) + tags = build_tags(conn, params) + preloads = preload_data(conn, params) - "" - end - - response = String.replace(index_content, "", tags) + response = + index_content + |> String.replace("", tags <> preloads) conn |> put_resp_content_type("text/html") |> send_resp(200, response) end - def index_file_path do - Pleroma.Plugs.InstanceStatic.file_path("index.html") + def redirector_with_preload(conn, %{"path" => ["pleroma", "admin"]}) do + redirect(conn, to: "/pleroma/admin/") + end + + def redirector_with_preload(conn, params) do + {:ok, index_content} = File.read(index_file_path()) + preloads = preload_data(conn, params) + + response = + index_content + |> String.replace("", preloads) + + conn + |> put_resp_content_type("text/html") + |> send_resp(200, response) end def registration_page(conn, params) do @@ -76,4 +73,36 @@ def empty(conn, _params) do |> put_status(204) |> text("") end + + defp index_file_path do + Pleroma.Plugs.InstanceStatic.file_path("index.html") + end + + defp build_tags(conn, params) do + try do + Metadata.build_tags(params) + rescue + e -> + Logger.error( + "Metadata rendering for #{conn.request_path} failed.\n" <> + Exception.format(:error, e, __STACKTRACE__) + ) + + "" + end + end + + defp preload_data(conn, params) do + try do + Preload.build_tags(conn, params) + rescue + e -> + Logger.error( + "Preloading for #{conn.request_path} failed.\n" <> + Exception.format(:error, e, __STACKTRACE__) + ) + + "" + end + end end diff --git a/lib/pleroma/web/feed/tag_controller.ex b/lib/pleroma/web/feed/tag_controller.ex index 8133f8480..39b2a766a 100644 --- a/lib/pleroma/web/feed/tag_controller.ex +++ b/lib/pleroma/web/feed/tag_controller.ex @@ -9,14 +9,12 @@ defmodule Pleroma.Web.Feed.TagController do alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.Feed.FeedView - import Pleroma.Web.ControllerHelper, only: [put_if_exist: 3] - def feed(conn, %{"tag" => raw_tag} = params) do {format, tag} = parse_tag(raw_tag) activities = - %{"type" => ["Create"], "tag" => tag} - |> put_if_exist("max_id", params["max_id"]) + %{type: ["Create"], tag: tag} + |> Pleroma.Maps.put_if_present(:max_id, params["max_id"]) |> ActivityPub.fetch_public_activities() conn diff --git a/lib/pleroma/web/feed/user_controller.ex b/lib/pleroma/web/feed/user_controller.ex index 1b72e23dc..d56f43818 100644 --- a/lib/pleroma/web/feed/user_controller.ex +++ b/lib/pleroma/web/feed/user_controller.ex @@ -11,8 +11,6 @@ defmodule Pleroma.Web.Feed.UserController do alias Pleroma.Web.ActivityPub.ActivityPubController alias Pleroma.Web.Feed.FeedView - import Pleroma.Web.ControllerHelper, only: [put_if_exist: 3] - plug(Pleroma.Plugs.SetFormatPlug when action in [:feed_redirect]) action_fallback(:errors) @@ -52,11 +50,11 @@ def feed(conn, %{"nickname" => nickname} = params) do with {_, %User{} = user} <- {:fetch_user, User.get_cached_by_nickname(nickname)} do activities = %{ - "type" => ["Create"], - "actor_id" => user.ap_id + type: ["Create"], + actor_id: user.ap_id } - |> put_if_exist("max_id", params["max_id"]) - |> ActivityPub.fetch_public_activities() + |> Pleroma.Maps.put_if_present(:max_id, params["max_id"]) + |> ActivityPub.fetch_public_or_unlisted_activities() conn |> put_resp_content_type("application/#{format}+xml") diff --git a/lib/pleroma/web/masto_fe_controller.ex b/lib/pleroma/web/masto_fe_controller.ex index d0d8bc8eb..43ec70021 100644 --- a/lib/pleroma/web/masto_fe_controller.ex +++ b/lib/pleroma/web/masto_fe_controller.ex @@ -49,7 +49,7 @@ def manifest(conn, _params) do |> render("manifest.json") end - @doc "PUT /api/web/settings" + @doc "PUT /api/web/settings: Backend-obscure settings blob for MastoFE, don't parse/reuse elsewhere" def put_settings(%{assigns: %{user: user}} = conn, %{"data" => settings} = _params) do with {:ok, _} <- User.mastodon_settings_update(user, settings) do json(conn, %{}) diff --git a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex index b9ed2d7b2..b5008d69b 100644 --- a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex @@ -10,15 +10,18 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do add_link_headers: 2, truthy_param?: 1, assign_account_by_id: 2, - json_response: 3, - skip_relationships?: 1 + embed_relationships?: 1, + json_response: 3 ] + alias Pleroma.Maps alias Pleroma.Plugs.EnsurePublicOrAuthenticatedPlug alias Pleroma.Plugs.OAuthScopesPlug alias Pleroma.Plugs.RateLimiter alias Pleroma.User alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.ActivityPub.Builder + alias Pleroma.Web.ActivityPub.Pipeline alias Pleroma.Web.CommonAPI alias Pleroma.Web.MastodonAPI.ListView alias Pleroma.Web.MastodonAPI.MastodonAPI @@ -81,7 +84,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do plug( RateLimiter, - [name: :relation_id_action, params: ["id", "uri"]] when action in @relationship_actions + [name: :relation_id_action, params: [:id, :uri]] when action in @relationship_actions ) plug(RateLimiter, [name: :relations_actions] when action in @relationship_actions) @@ -139,9 +142,7 @@ def verify_credentials(%{assigns: %{user: user}} = conn, _) do end @doc "PATCH /api/v1/accounts/update_credentials" - def update_credentials(%{assigns: %{user: original_user}, body_params: params} = conn, _params) do - user = original_user - + def update_credentials(%{assigns: %{user: user}, body_params: params} = conn, _params) do params = params |> Enum.filter(fn {_, value} -> not is_nil(value) end) @@ -162,41 +163,60 @@ def update_credentials(%{assigns: %{user: original_user}, body_params: params} = :discoverable ] |> Enum.reduce(%{}, fn key, acc -> - add_if_present(acc, params, key, key, &{:ok, truthy_param?(&1)}) + Maps.put_if_present(acc, key, params[key], &{:ok, truthy_param?(&1)}) end) - |> add_if_present(params, :display_name, :name) - |> add_if_present(params, :note, :bio) - |> add_if_present(params, :avatar, :avatar) - |> add_if_present(params, :header, :banner) - |> add_if_present(params, :pleroma_background_image, :background) - |> add_if_present( - params, - :fields_attributes, + |> Maps.put_if_present(:name, params[:display_name]) + |> Maps.put_if_present(:bio, params[:note]) + |> Maps.put_if_present(:raw_bio, params[:note]) + |> Maps.put_if_present(:avatar, params[:avatar]) + |> Maps.put_if_present(:banner, params[:header]) + |> Maps.put_if_present(:background, params[:pleroma_background_image]) + |> Maps.put_if_present( :raw_fields, + params[:fields_attributes], &{:ok, normalize_fields_attributes(&1)} ) - |> add_if_present(params, :pleroma_settings_store, :pleroma_settings_store) - |> add_if_present(params, :default_scope, :default_scope) - |> add_if_present(params, :actor_type, :actor_type) + |> Maps.put_if_present(:pleroma_settings_store, params[:pleroma_settings_store]) + |> Maps.put_if_present(:default_scope, params[:default_scope]) + |> Maps.put_if_present(:default_scope, params["source"]["privacy"]) + |> Maps.put_if_present(:actor_type, params[:bot], fn bot -> + if bot, do: {:ok, "Service"}, else: {:ok, "Person"} + end) + |> Maps.put_if_present(:actor_type, params[:actor_type]) - changeset = User.update_changeset(user, user_params) - - with {:ok, user} <- User.update_and_set_cache(changeset) do - render(conn, "show.json", user: user, for: user, with_pleroma_settings: true) + # What happens here: + # + # We want to update the user through the pipeline, but the ActivityPub + # update information is not quite enough for this, because this also + # contains local settings that don't federate and don't even appear + # in the Update activity. + # + # So we first build the normal local changeset, then apply it to the + # user data, but don't persist it. With this, we generate the object + # data for our update activity. We feed this and the changeset as meta + # inforation into the pipeline, where they will be properly updated and + # federated. + with changeset <- User.update_changeset(user, user_params), + {:ok, unpersisted_user} <- Ecto.Changeset.apply_action(changeset, :update), + updated_object <- + Pleroma.Web.ActivityPub.UserView.render("user.json", user: user) + |> Map.delete("@context"), + {:ok, update_data, []} <- Builder.update(user, updated_object), + {:ok, _update, _} <- + Pipeline.common_pipeline(update_data, + local: true, + user_update_changeset: changeset + ) do + render(conn, "show.json", + user: unpersisted_user, + for: unpersisted_user, + with_pleroma_settings: true + ) else _e -> render_error(conn, :forbidden, "Invalid request") end end - defp add_if_present(map, params, params_field, map_field, value_function \\ &{:ok, &1}) do - with true <- Map.has_key?(params, params_field), - {:ok, new_value} <- value_function.(Map.get(params, params_field)) do - Map.put(map, map_field, new_value) - else - _ -> map - end - end - defp normalize_fields_attributes(fields) do if Enum.all?(fields, &is_tuple/1) do Enum.map(fields, fn {_, v} -> v end) @@ -221,23 +241,21 @@ def relationships(%{assigns: %{user: _user}} = conn, _), do: json(conn, []) @doc "GET /api/v1/accounts/:id" def show(%{assigns: %{user: for_user}} = conn, %{id: nickname_or_id}) do with %User{} = user <- User.get_cached_by_nickname_or_id(nickname_or_id, for: for_user), - true <- User.visible_for?(user, for_user) do + :visible <- User.visible_for(user, for_user) do render(conn, "show.json", user: user, for: for_user) else - _e -> render_error(conn, :not_found, "Can't find user") + error -> user_visibility_error(conn, error) end end @doc "GET /api/v1/accounts/:id/statuses" def statuses(%{assigns: %{user: reading_user}} = conn, params) do with %User{} = user <- User.get_cached_by_nickname_or_id(params.id, for: reading_user), - true <- User.visible_for?(user, reading_user) do + :visible <- User.visible_for(user, reading_user) do params = params |> Map.delete(:tagged) - |> Enum.filter(&(not is_nil(&1))) - |> Map.new(fn {key, value} -> {to_string(key), value} end) - |> Map.put("tag", params[:tagged]) + |> Map.put(:tag, params[:tagged]) activities = ActivityPub.fetch_user_activities(user, reading_user, params) @@ -247,11 +265,20 @@ def statuses(%{assigns: %{user: reading_user}} = conn, params) do |> render("index.json", activities: activities, for: reading_user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) else - _e -> render_error(conn, :not_found, "Can't find user") + error -> user_visibility_error(conn, error) + end + end + + defp user_visibility_error(conn, error) do + case error do + :restrict_unauthenticated -> + render_error(conn, :unauthorized, "This API requires an authenticated user") + + _ -> + render_error(conn, :not_found, "Can't find user") end end @@ -271,7 +298,13 @@ def followers(%{assigns: %{user: for_user, account: user}} = conn, params) do conn |> add_link_headers(followers) - |> render("index.json", for: for_user, users: followers, as: :user) + # https://git.pleroma.social/pleroma/pleroma-fe/-/issues/838#note_59223 + |> render("index.json", + for: for_user, + users: followers, + as: :user, + embed_relationships: embed_relationships?(params) + ) end @doc "GET /api/v1/accounts/:id/following" @@ -290,7 +323,13 @@ def following(%{assigns: %{user: for_user, account: user}} = conn, params) do conn |> add_link_headers(followers) - |> render("index.json", for: for_user, users: followers, as: :user) + # https://git.pleroma.social/pleroma/pleroma-fe/-/issues/838#note_59223 + |> render("index.json", + for: for_user, + users: followers, + as: :user, + embed_relationships: embed_relationships?(params) + ) end @doc "GET /api/v1/accounts/:id/lists" @@ -346,8 +385,7 @@ def unmute(%{assigns: %{user: muter, account: muted}} = conn, _params) do @doc "POST /api/v1/accounts/:id/block" def block(%{assigns: %{user: blocker, account: blocked}} = conn, _params) do - with {:ok, _user_block} <- User.block(blocker, blocked), - {:ok, _activity} <- ActivityPub.block(blocker, blocked) do + with {:ok, _activity} <- CommonAPI.block(blocker, blocked) do render(conn, "relationship.json", user: blocker, target: blocked) else {:error, message} -> json_response(conn, :forbidden, %{error: message}) diff --git a/lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex b/lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex index 0a257f604..8af557b61 100644 --- a/lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex @@ -20,6 +20,10 @@ def call(conn, {:error, :not_found}) do render_error(conn, :not_found, "Record not found") end + def call(conn, {:error, :forbidden}) do + render_error(conn, :forbidden, "Access denied") + end + def call(conn, {:error, error_message}) do conn |> put_status(:bad_request) diff --git a/lib/pleroma/web/mastodon_api/controllers/media_controller.ex b/lib/pleroma/web/mastodon_api/controllers/media_controller.ex index e36751220..513de279f 100644 --- a/lib/pleroma/web/mastodon_api/controllers/media_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/media_controller.ex @@ -11,17 +11,21 @@ defmodule Pleroma.Web.MastodonAPI.MediaController do alias Pleroma.Web.ActivityPub.ActivityPub action_fallback(Pleroma.Web.MastodonAPI.FallbackController) + plug(Pleroma.Web.ApiSpec.CastAndValidate) plug(:put_view, Pleroma.Web.MastodonAPI.StatusView) - plug(OAuthScopesPlug, %{scopes: ["write:media"]}) + plug(OAuthScopesPlug, %{scopes: ["read:media"]} when action == :show) + plug(OAuthScopesPlug, %{scopes: ["write:media"]} when action != :show) + + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.MediaOperation @doc "POST /api/v1/media" - def create(%{assigns: %{user: user}} = conn, %{"file" => file} = data) do + def create(%{assigns: %{user: user}, body_params: %{file: file} = data} = conn, _) do with {:ok, object} <- ActivityPub.upload( file, actor: User.ap_id(user), - description: Map.get(data, "description") + description: Map.get(data, :description) ) do attachment_data = Map.put(object.data, "id", object.id) @@ -29,11 +33,30 @@ def create(%{assigns: %{user: user}} = conn, %{"file" => file} = data) do end end + def create(_conn, _data), do: {:error, :bad_request} + + @doc "POST /api/v2/media" + def create2(%{assigns: %{user: user}, body_params: %{file: file} = data} = conn, _) do + with {:ok, object} <- + ActivityPub.upload( + file, + actor: User.ap_id(user), + description: Map.get(data, :description) + ) do + attachment_data = Map.put(object.data, "id", object.id) + + conn + |> put_status(202) + |> render("attachment.json", %{attachment: attachment_data}) + end + end + + def create2(_conn, _data), do: {:error, :bad_request} + @doc "PUT /api/v1/media/:id" - def update(%{assigns: %{user: user}} = conn, %{"id" => id, "description" => description}) - when is_binary(description) do + def update(%{assigns: %{user: user}, body_params: %{description: description}} = conn, %{id: id}) do with %Object{} = object <- Object.get_by_id(id), - true <- Object.authorize_mutation(object, user), + :ok <- Object.authorize_access(object, user), {:ok, %Object{data: data}} <- Object.update_data(object, %{"name" => description}) do attachment_data = Map.put(data, "id", object.id) @@ -41,5 +64,17 @@ def update(%{assigns: %{user: user}} = conn, %{"id" => id, "description" => desc end end - def update(_conn, _data), do: {:error, :bad_request} + def update(conn, data), do: show(conn, data) + + @doc "GET /api/v1/media/:id" + def show(%{assigns: %{user: user}} = conn, %{id: id}) do + with %Object{data: data, id: object_id} = object <- Object.get_by_id(id), + :ok <- Object.authorize_access(object, user) do + attachment_data = Map.put(data, "id", object_id) + + render(conn, "attachment.json", %{attachment: attachment_data}) + end + end + + def show(_conn, _data), do: {:error, :bad_request} end diff --git a/lib/pleroma/web/mastodon_api/controllers/notification_controller.ex b/lib/pleroma/web/mastodon_api/controllers/notification_controller.ex index 596b85617..e25cef30b 100644 --- a/lib/pleroma/web/mastodon_api/controllers/notification_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/notification_controller.ex @@ -5,7 +5,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationController do use Pleroma.Web, :controller - import Pleroma.Web.ControllerHelper, only: [add_link_headers: 2, skip_relationships?: 1] + import Pleroma.Web.ControllerHelper, only: [add_link_headers: 2] alias Pleroma.Notification alias Pleroma.Plugs.OAuthScopesPlug @@ -42,16 +42,27 @@ def index(conn, %{account_id: account_id} = params) do end end + @default_notification_types ~w{ + mention + follow + follow_request + reblog + favourite + move + pleroma:emoji_reaction + } def index(%{assigns: %{user: user}} = conn, params) do - params = Map.new(params, fn {k, v} -> {to_string(k), v} end) + params = + Map.new(params, fn {k, v} -> {to_string(k), v} end) + |> Map.put_new("include_types", @default_notification_types) + notifications = MastodonAPI.get_notifications(user, params) conn |> add_link_headers(notifications) |> render("index.json", notifications: notifications, - for: user, - skip_relationships: skip_relationships?(params) + for: user ) end diff --git a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex index 0e0d54ba4..e50980122 100644 --- a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex @@ -5,14 +5,13 @@ defmodule Pleroma.Web.MastodonAPI.SearchController do use Pleroma.Web, :controller - import Pleroma.Web.ControllerHelper, only: [skip_relationships?: 1] - alias Pleroma.Activity alias Pleroma.Plugs.OAuthScopesPlug alias Pleroma.Plugs.RateLimiter alias Pleroma.Repo alias Pleroma.User alias Pleroma.Web + alias Pleroma.Web.ControllerHelper alias Pleroma.Web.MastodonAPI.AccountView alias Pleroma.Web.MastodonAPI.StatusView @@ -34,7 +33,11 @@ def account_search(%{assigns: %{user: user}} = conn, %{q: query} = params) do conn |> put_view(AccountView) - |> render("index.json", users: accounts, for: user, as: :user) + |> render("index.json", + users: accounts, + for: user, + as: :user + ) end def search2(conn, params), do: do_search(:v2, conn, params) @@ -71,13 +74,13 @@ defp do_search(version, %{assigns: %{user: user}} = conn, %{q: query} = params) defp search_options(params, user) do [ - skip_relationships: skip_relationships?(params), resolve: params[:resolve], following: params[:following], limit: params[:limit], offset: params[:offset], type: params[:type], author: get_author(params), + embed_relationships: ControllerHelper.embed_relationships?(params), for_user: user ] |> Enum.filter(&elem(&1, 1)) @@ -90,7 +93,7 @@ defp resource_search(_, "accounts", query, options) do users: accounts, for: options[:for_user], as: :user, - skip_relationships: false + embed_relationships: options[:embed_relationships] ) end @@ -100,33 +103,76 @@ defp resource_search(_, "statuses", query, options) do StatusView.render("index.json", activities: statuses, for: options[:for_user], - as: :activity, - skip_relationships: options[:skip_relationships] + as: :activity ) end - defp resource_search(:v2, "hashtags", query, _options) do + defp resource_search(:v2, "hashtags", query, options) do tags_path = Web.base_url() <> "/tag/" query - |> prepare_tags() + |> prepare_tags(options) |> Enum.map(fn tag -> - tag = String.trim_leading(tag, "#") %{name: tag, url: tags_path <> tag} end) end - defp resource_search(:v1, "hashtags", query, _options) do - query - |> prepare_tags() - |> Enum.map(fn tag -> String.trim_leading(tag, "#") end) + defp resource_search(:v1, "hashtags", query, options) do + prepare_tags(query, options) end - defp prepare_tags(query) do - query - |> String.split() - |> Enum.uniq() - |> Enum.filter(fn tag -> String.starts_with?(tag, "#") end) + defp prepare_tags(query, options) do + tags = + query + |> preprocess_uri_query() + |> String.split(~r/[^#\w]+/u, trim: true) + |> Enum.uniq_by(&String.downcase/1) + + explicit_tags = Enum.filter(tags, fn tag -> String.starts_with?(tag, "#") end) + + tags = + if Enum.any?(explicit_tags) do + explicit_tags + else + tags + end + + tags = Enum.map(tags, fn tag -> String.trim_leading(tag, "#") end) + + tags = + if Enum.empty?(explicit_tags) && !options[:skip_joined_tag] do + add_joined_tag(tags) + else + tags + end + + Pleroma.Pagination.paginate(tags, options) + end + + defp add_joined_tag(tags) do + tags + |> Kernel.++([joined_tag(tags)]) + |> Enum.uniq_by(&String.downcase/1) + end + + # If `query` is a URI, returns last component of its path, otherwise returns `query` + defp preprocess_uri_query(query) do + if query =~ ~r/https?:\/\// do + query + |> String.trim_trailing("/") + |> URI.parse() + |> Map.get(:path) + |> String.split("/") + |> Enum.at(-1) + else + query + end + end + + defp joined_tag(tags) do + tags + |> Enum.map(fn tag -> String.capitalize(tag) end) + |> Enum.join() end defp with_fallback(f, fallback \\ []) do diff --git a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex index 25e499a77..468b44b67 100644 --- a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex @@ -6,7 +6,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do use Pleroma.Web, :controller import Pleroma.Web.ControllerHelper, - only: [try_render: 3, add_link_headers: 2, skip_relationships?: 1] + only: [try_render: 3, add_link_headers: 2] require Ecto.Query @@ -84,13 +84,13 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do plug( RateLimiter, - [name: :status_id_action, bucket_name: "status_id_action:reblog_unreblog", params: ["id"]] + [name: :status_id_action, bucket_name: "status_id_action:reblog_unreblog", params: [:id]] when action in ~w(reblog unreblog)a ) plug( RateLimiter, - [name: :status_id_action, bucket_name: "status_id_action:fav_unfav", params: ["id"]] + [name: :status_id_action, bucket_name: "status_id_action:fav_unfav", params: [:id]] when action in ~w(favourite unfavourite)a ) @@ -105,7 +105,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do `ids` query param is required """ - def index(%{assigns: %{user: user}} = conn, %{ids: ids} = params) do + def index(%{assigns: %{user: user}} = conn, %{ids: ids} = _params) do limit = 100 activities = @@ -117,8 +117,7 @@ def index(%{assigns: %{user: user}} = conn, %{ids: ids} = params) do render(conn, "index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end @@ -211,7 +210,7 @@ def delete(%{assigns: %{user: user}} = conn, %{id: id}) do @doc "POST /api/v1/statuses/:id/reblog" def reblog(%{assigns: %{user: user}, body_params: params} = conn, %{id: ap_id_or_id}) do - with {:ok, announce, _activity} <- CommonAPI.repeat(ap_id_or_id, user, params), + with {:ok, announce} <- CommonAPI.repeat(ap_id_or_id, user, params), %Activity{} = announce <- Activity.normalize(announce.data) do try_render(conn, "show.json", %{activity: announce, for: user, as: :activity}) end @@ -360,9 +359,9 @@ def context(%{assigns: %{user: user}} = conn, %{id: id}) do with %Activity{} = activity <- Activity.get_by_id(id) do activities = ActivityPub.fetch_activities_for_context(activity.data["context"], %{ - "blocking_user" => user, - "user" => user, - "exclude_id" => activity.id + blocking_user: user, + user: user, + exclude_id: activity.id }) render(conn, "context.json", activity: activity, activities: activities, user: user) @@ -371,11 +370,6 @@ def context(%{assigns: %{user: user}} = conn, %{id: id}) do @doc "GET /api/v1/favourites" def favourites(%{assigns: %{user: %User{} = user}} = conn, params) do - params = - params - |> Map.new(fn {key, value} -> {to_string(key), value} end) - |> Map.take(Pleroma.Pagination.page_keys()) - activities = ActivityPub.fetch_favourites(user, params) conn @@ -383,8 +377,7 @@ def favourites(%{assigns: %{user: %User{} = user}} = conn, params) do |> render("index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end @@ -406,8 +399,7 @@ def bookmarks(%{assigns: %{user: user}} = conn, params) do |> render("index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end end diff --git a/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex b/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex index bbd576ffd..4bdd46d7e 100644 --- a/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex @@ -6,7 +6,7 @@ defmodule Pleroma.Web.MastodonAPI.TimelineController do use Pleroma.Web, :controller import Pleroma.Web.ControllerHelper, - only: [add_link_headers: 2, add_link_headers: 3, skip_relationships?: 1] + only: [add_link_headers: 2, add_link_headers: 3] alias Pleroma.Pagination alias Pleroma.Plugs.EnsurePublicOrAuthenticatedPlug @@ -44,17 +44,15 @@ defmodule Pleroma.Web.MastodonAPI.TimelineController do def home(%{assigns: %{user: user}} = conn, params) do params = params - |> Map.new(fn {key, value} -> {to_string(key), value} end) - |> Map.put("type", ["Create", "Announce"]) - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("reply_filtering_user", user) - |> Map.put("user", user) - - recipients = [user.ap_id | User.following(user)] + |> Map.put(:type, ["Create", "Announce"]) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:reply_filtering_user, user) + |> Map.put(:announce_filtering_user, user) + |> Map.put(:user, user) activities = - recipients + [user.ap_id | User.following(user)] |> ActivityPub.fetch_activities(params) |> Enum.reverse() @@ -63,8 +61,7 @@ def home(%{assigns: %{user: user}} = conn, params) do |> render("index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end @@ -72,10 +69,9 @@ def home(%{assigns: %{user: user}} = conn, params) do def direct(%{assigns: %{user: user}} = conn, params) do params = params - |> Map.new(fn {key, value} -> {to_string(key), value} end) - |> Map.put("type", "Create") - |> Map.put("blocking_user", user) - |> Map.put("user", user) + |> Map.put(:type, "Create") + |> Map.put(:blocking_user, user) + |> Map.put(:user, user) |> Map.put(:visibility, "direct") activities = @@ -88,16 +84,13 @@ def direct(%{assigns: %{user: user}} = conn, params) do |> render("index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end # GET /api/v1/timelines/public def public(%{assigns: %{user: user}} = conn, params) do - params = Map.new(params, fn {key, value} -> {to_string(key), value} end) - - local_only = params["local"] + local_only = params[:local] cfg_key = if local_only do @@ -113,11 +106,11 @@ def public(%{assigns: %{user: user}} = conn, params) do else activities = params - |> Map.put("type", ["Create", "Announce"]) - |> Map.put("local_only", local_only) - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("reply_filtering_user", user) + |> Map.put(:type, ["Create"]) + |> Map.put(:local_only, local_only) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:reply_filtering_user, user) |> ActivityPub.fetch_public_activities() conn @@ -125,47 +118,45 @@ def public(%{assigns: %{user: user}} = conn, params) do |> render("index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end end defp hashtag_fetching(params, user, local_only) do tags = - [params["tag"], params["any"]] + [params[:tag], params[:any]] |> List.flatten() |> Enum.uniq() - |> Enum.filter(& &1) - |> Enum.map(&String.downcase(&1)) + |> Enum.reject(&is_nil/1) + |> Enum.map(&String.downcase/1) tag_all = params - |> Map.get("all", []) - |> Enum.map(&String.downcase(&1)) + |> Map.get(:all, []) + |> Enum.map(&String.downcase/1) tag_reject = params - |> Map.get("none", []) - |> Enum.map(&String.downcase(&1)) + |> Map.get(:none, []) + |> Enum.map(&String.downcase/1) _activities = params - |> Map.put("type", "Create") - |> Map.put("local_only", local_only) - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("user", user) - |> Map.put("tag", tags) - |> Map.put("tag_all", tag_all) - |> Map.put("tag_reject", tag_reject) + |> Map.put(:type, "Create") + |> Map.put(:local_only, local_only) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:user, user) + |> Map.put(:tag, tags) + |> Map.put(:tag_all, tag_all) + |> Map.put(:tag_reject, tag_reject) |> ActivityPub.fetch_public_activities() end # GET /api/v1/timelines/tag/:tag def hashtag(%{assigns: %{user: user}} = conn, params) do - params = Map.new(params, fn {key, value} -> {to_string(key), value} end) - local_only = params["local"] + local_only = params[:local] activities = hashtag_fetching(params, user, local_only) conn @@ -173,8 +164,7 @@ def hashtag(%{assigns: %{user: user}} = conn, params) do |> render("index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end @@ -203,8 +193,7 @@ def list(%{assigns: %{user: user}} = conn, %{list_id: id} = params) do render(conn, "index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) else _e -> render_error(conn, :forbidden, "Error.") diff --git a/lib/pleroma/web/mastodon_api/mastodon_api.ex b/lib/pleroma/web/mastodon_api/mastodon_api.ex index 70da64a7a..694bf5ca8 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api.ex @@ -6,7 +6,6 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPI do import Ecto.Query import Ecto.Changeset - alias Pleroma.Activity alias Pleroma.Notification alias Pleroma.Pagination alias Pleroma.ScheduledActivity @@ -82,15 +81,11 @@ defp cast_params(params) do end defp restrict(query, :include_types, %{include_types: mastodon_types = [_ | _]}) do - ap_types = convert_and_filter_mastodon_types(mastodon_types) - - where(query, [q, a], fragment("? @> ARRAY[?->>'type']::varchar[]", ^ap_types, a.data)) + where(query, [n], n.type in ^mastodon_types) end defp restrict(query, :exclude_types, %{exclude_types: mastodon_types = [_ | _]}) do - ap_types = convert_and_filter_mastodon_types(mastodon_types) - - where(query, [q, a], not fragment("? @> ARRAY[?->>'type']::varchar[]", ^ap_types, a.data)) + where(query, [n], n.type not in ^mastodon_types) end defp restrict(query, :account_ap_id, %{account_ap_id: account_ap_id}) do @@ -98,10 +93,4 @@ defp restrict(query, :account_ap_id, %{account_ap_id: account_ap_id}) do end defp restrict(query, _, _), do: query - - defp convert_and_filter_mastodon_types(types) do - types - |> Enum.map(&Activity.from_mastodon_notification_type/1) - |> Enum.filter(& &1) - end end diff --git a/lib/pleroma/web/mastodon_api/views/account_view.ex b/lib/pleroma/web/mastodon_api/views/account_view.ex index 835dfe9f4..a6e64b4ab 100644 --- a/lib/pleroma/web/mastodon_api/views/account_view.ex +++ b/lib/pleroma/web/mastodon_api/views/account_view.ex @@ -15,13 +15,12 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do def render("index.json", %{users: users} = opts) do reading_user = opts[:for] - # Note: :skip_relationships option is currently intentionally not supported for accounts relationships_opt = cond do Map.has_key?(opts, :relationships) -> opts[:relationships] - is_nil(reading_user) -> + is_nil(reading_user) || !opts[:embed_relationships] -> UserRelationship.view_relationships_option(nil, []) true -> @@ -36,7 +35,7 @@ def render("index.json", %{users: users} = opts) do end def render("show.json", %{user: user} = opts) do - if User.visible_for?(user, opts[:for]) do + if User.visible_for(user, opts[:for]) == :visible do do_render("show.json", opts) else %{} @@ -180,27 +179,29 @@ defp do_render("show.json", %{user: user} = opts) do 0 end - bot = user.actor_type in ["Application", "Service"] + bot = user.actor_type == "Service" emojis = - Enum.map(user.emoji, fn {shortcode, url} -> + Enum.map(user.emoji, fn {shortcode, raw_url} -> + url = MediaProxy.url(raw_url) + %{ - "shortcode" => shortcode, - "url" => url, - "static_url" => url, - "visible_in_picker" => false + shortcode: shortcode, + url: url, + static_url: url, + visible_in_picker: false } end) relationship = - if opts[:skip_relationships] do - %{} - else + if opts[:embed_relationships] do render("relationship.json", %{ user: opts[:for], target: user, relationships: opts[:relationships] }) + else + %{} end %{ @@ -223,7 +224,7 @@ defp do_render("show.json", %{user: user} = opts) do fields: user.fields, bot: bot, source: %{ - note: prepare_user_bio(user), + note: user.raw_bio || "", sensitive: false, fields: user.raw_fields, pleroma: %{ @@ -234,6 +235,7 @@ defp do_render("show.json", %{user: user} = opts) do # Pleroma extension pleroma: %{ + ap_id: user.ap_id, confirmation_pending: user.confirmation_pending, tags: user.tags, hide_followers_count: user.hide_followers_count, @@ -258,17 +260,6 @@ defp do_render("show.json", %{user: user} = opts) do |> maybe_put_unread_notification_count(user, opts[:for]) end - defp prepare_user_bio(%User{bio: ""}), do: "" - - defp prepare_user_bio(%User{bio: bio}) when is_binary(bio) do - bio - |> String.replace(~r(
), "\n") - |> Pleroma.HTML.strip_tags() - |> HtmlEntities.decode() - end - - defp prepare_user_bio(_), do: "" - defp username_from_nickname(string) when is_binary(string) do hd(String.split(string, "@")) end diff --git a/lib/pleroma/web/mastodon_api/views/app_view.ex b/lib/pleroma/web/mastodon_api/views/app_view.ex index 36071cd25..e44272c6f 100644 --- a/lib/pleroma/web/mastodon_api/views/app_view.ex +++ b/lib/pleroma/web/mastodon_api/views/app_view.ex @@ -45,10 +45,6 @@ def render("short.json", %{app: %App{website: webiste, client_name: name}}) do defp with_vapid_key(data) do vapid_key = Application.get_env(:web_push_encryption, :vapid_details, [])[:public_key] - if vapid_key do - Map.put(data, "vapid_key", vapid_key) - else - data - end + Pleroma.Maps.put_if_present(data, "vapid_key", vapid_key) end end diff --git a/lib/pleroma/web/mastodon_api/views/conversation_view.ex b/lib/pleroma/web/mastodon_api/views/conversation_view.ex index 2b6f84c72..06f0c1728 100644 --- a/lib/pleroma/web/mastodon_api/views/conversation_view.ex +++ b/lib/pleroma/web/mastodon_api/views/conversation_view.ex @@ -23,10 +23,13 @@ def render("participation.json", %{participation: participation, for: user}) do last_activity_id = with nil <- participation.last_activity_id do - ActivityPub.fetch_latest_activity_id_for_context(participation.conversation.ap_id, %{ - "user" => user, - "blocking_user" => user - }) + ActivityPub.fetch_latest_direct_activity_id_for_context( + participation.conversation.ap_id, + %{ + user: user, + blocking_user: user + } + ) end activity = Activity.get_by_id_with_object(last_activity_id) diff --git a/lib/pleroma/web/mastodon_api/views/instance_view.ex b/lib/pleroma/web/mastodon_api/views/instance_view.ex index a329ffc28..35c2fc25c 100644 --- a/lib/pleroma/web/mastodon_api/views/instance_view.ex +++ b/lib/pleroma/web/mastodon_api/views/instance_view.ex @@ -23,7 +23,7 @@ def render("show.json", _) do streaming_api: Pleroma.Web.Endpoint.websocket_url() }, stats: Pleroma.Stats.get_stats(), - thumbnail: Pleroma.Web.base_url() <> "/instance/thumbnail.jpeg", + thumbnail: Keyword.get(instance, :instance_thumbnail), languages: ["en"], registrations: Keyword.get(instance, :registrations_open), # Extra (not present in Mastodon): @@ -33,6 +33,7 @@ def render("show.json", _) do avatar_upload_limit: Keyword.get(instance, :avatar_upload_limit), background_upload_limit: Keyword.get(instance, :background_upload_limit), banner_upload_limit: Keyword.get(instance, :banner_upload_limit), + background_image: Keyword.get(instance, :background_image), pleroma: %{ metadata: %{ features: features(), @@ -68,7 +69,8 @@ def features do if Config.get([:instance, :safe_dm_mentions]) do "safe_dm_mentions" end, - "pleroma_emoji_reactions" + "pleroma_emoji_reactions", + "pleroma_chat_messages" ] |> Enum.filter(& &1) end @@ -76,7 +78,7 @@ def features do def federation do quarantined = Config.get([:instance, :quarantined_instances], []) - if Config.get([:instance, :mrf_transparency]) do + if Config.get([:mrf, :transparency]) do {:ok, data} = MRF.describe() data diff --git a/lib/pleroma/web/mastodon_api/views/notification_view.ex b/lib/pleroma/web/mastodon_api/views/notification_view.ex index 4da1ab67f..c97e6d32f 100644 --- a/lib/pleroma/web/mastodon_api/views/notification_view.ex +++ b/lib/pleroma/web/mastodon_api/views/notification_view.ex @@ -6,26 +6,28 @@ defmodule Pleroma.Web.MastodonAPI.NotificationView do use Pleroma.Web, :view alias Pleroma.Activity + alias Pleroma.Chat.MessageReference alias Pleroma.Notification + alias Pleroma.Object alias Pleroma.User alias Pleroma.UserRelationship alias Pleroma.Web.CommonAPI alias Pleroma.Web.MastodonAPI.AccountView alias Pleroma.Web.MastodonAPI.NotificationView alias Pleroma.Web.MastodonAPI.StatusView + alias Pleroma.Web.PleromaAPI.Chat.MessageReferenceView + + @parent_types ~w{Like Announce EmojiReact} def render("index.json", %{notifications: notifications, for: reading_user} = opts) do activities = Enum.map(notifications, & &1.activity) parent_activities = activities - |> Enum.filter( - &(Activity.mastodon_notification_type(&1) in [ - "favourite", - "reblog", - "pleroma:emoji_reaction" - ]) - ) + |> Enum.filter(fn + %{data: %{"type" => type}} -> + type in @parent_types + end) |> Enum.map(& &1.data["object"]) |> Activity.create_by_object_ap_id() |> Activity.with_preloaded_object(:left) @@ -42,8 +44,9 @@ def render("index.json", %{notifications: notifications, for: reading_user} = op true -> move_activities_targets = activities - |> Enum.filter(&(Activity.mastodon_notification_type(&1) == "move")) + |> Enum.filter(&(&1.data["type"] == "Move")) |> Enum.map(&User.get_cached_by_ap_id(&1.data["target"])) + |> Enum.filter(& &1) actors = activities @@ -51,9 +54,7 @@ def render("index.json", %{notifications: notifications, for: reading_user} = op |> Enum.filter(& &1) |> Kernel.++(move_activities_targets) - UserRelationship.view_relationships_option(reading_user, actors, - source_mutes_only: opts[:skip_relationships] - ) + UserRelationship.view_relationships_option(reading_user, actors, subset: :source_mutes) end opts = @@ -81,55 +82,44 @@ def render( end end - mastodon_type = Activity.mastodon_notification_type(activity) + # Note: :relationships contain user mutes (needed for :muted flag in :status) + status_render_opts = %{relationships: opts[:relationships]} + account = AccountView.render("show.json", %{user: actor, for: reading_user}) - render_opts = %{ - relationships: opts[:relationships], - skip_relationships: opts[:skip_relationships] + response = %{ + id: to_string(notification.id), + type: notification.type, + created_at: CommonAPI.Utils.to_masto_date(notification.inserted_at), + account: account, + pleroma: %{ + is_muted: User.mutes?(reading_user, actor), + is_seen: notification.seen + } } - with %{id: _} = account <- - AccountView.render( - "show.json", - Map.merge(render_opts, %{user: actor, for: reading_user}) - ) do - response = %{ - id: to_string(notification.id), - type: mastodon_type, - created_at: CommonAPI.Utils.to_masto_date(notification.inserted_at), - account: account, - pleroma: %{ - is_seen: notification.seen - } - } + case notification.type do + "mention" -> + put_status(response, activity, reading_user, status_render_opts) - case mastodon_type do - "mention" -> - put_status(response, activity, reading_user, render_opts) + "favourite" -> + put_status(response, parent_activity_fn.(), reading_user, status_render_opts) - "favourite" -> - put_status(response, parent_activity_fn.(), reading_user, render_opts) + "reblog" -> + put_status(response, parent_activity_fn.(), reading_user, status_render_opts) - "reblog" -> - put_status(response, parent_activity_fn.(), reading_user, render_opts) + "move" -> + put_target(response, activity, reading_user, %{}) - "move" -> - # Note: :skip_relationships option being applied to _account_ rendering (here) - put_target(response, activity, reading_user, render_opts) + "pleroma:emoji_reaction" -> + response + |> put_status(parent_activity_fn.(), reading_user, status_render_opts) + |> put_emoji(activity) - "pleroma:emoji_reaction" -> - response - |> put_status(parent_activity_fn.(), reading_user, render_opts) - |> put_emoji(activity) + "pleroma:chat_mention" -> + put_chat_message(response, activity, reading_user, status_render_opts) - type when type in ["follow", "follow_request"] -> - response - - _ -> - nil - end - else - _ -> nil + type when type in ["follow", "follow_request"] -> + response end end @@ -137,6 +127,17 @@ defp put_emoji(response, activity) do Map.put(response, :emoji, activity.data["content"]) end + defp put_chat_message(response, activity, reading_user, opts) do + object = Object.normalize(activity) + author = User.get_cached_by_ap_id(object.data["actor"]) + chat = Pleroma.Chat.get(reading_user.id, author.ap_id) + cm_ref = MessageReference.for_chat_and_object(chat, object) + render_opts = Map.merge(opts, %{for: reading_user, chat_message_reference: cm_ref}) + chat_message_render = MessageReferenceView.render("show.json", render_opts) + + Map.put(response, :chat_message, chat_message_render) + end + defp put_status(response, activity, reading_user, opts) do status_render_opts = Map.merge(opts, %{activity: activity, for: reading_user}) status_render = StatusView.render("show.json", status_render_opts) diff --git a/lib/pleroma/web/mastodon_api/views/scheduled_activity_view.ex b/lib/pleroma/web/mastodon_api/views/scheduled_activity_view.ex index 458f6bc78..5b896bf3b 100644 --- a/lib/pleroma/web/mastodon_api/views/scheduled_activity_view.ex +++ b/lib/pleroma/web/mastodon_api/views/scheduled_activity_view.ex @@ -30,7 +30,7 @@ defp with_media_attachments(data, %{params: %{"media_attachments" => media_attac defp with_media_attachments(data, _), do: data defp status_params(params) do - data = %{ + %{ text: params["status"], sensitive: params["sensitive"], spoiler_text: params["spoiler_text"], @@ -39,10 +39,6 @@ defp status_params(params) do poll: params["poll"], in_reply_to_id: params["in_reply_to_id"] } - - case params["media_ids"] do - nil -> data - media_ids -> Map.put(data, :media_ids, media_ids) - end + |> Pleroma.Maps.put_if_present(:media_ids, params["media_ids"]) end end diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex index 24167f66f..6ee17f4dd 100644 --- a/lib/pleroma/web/mastodon_api/views/status_view.ex +++ b/lib/pleroma/web/mastodon_api/views/status_view.ex @@ -21,7 +21,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do alias Pleroma.Web.MastodonAPI.StatusView alias Pleroma.Web.MediaProxy - import Pleroma.Web.ActivityPub.Visibility, only: [get_visibility: 1] + import Pleroma.Web.ActivityPub.Visibility, only: [get_visibility: 1, visible_for_user?: 2] # TODO: Add cached version. defp get_replied_to_activities([]), do: %{} @@ -107,9 +107,7 @@ def render("index.json", opts) do |> Enum.map(&get_user(&1.data["actor"], false)) |> Enum.filter(& &1) - UserRelationship.view_relationships_option(reading_user, actors, - source_mutes_only: opts[:skip_relationships] - ) + UserRelationship.view_relationships_option(reading_user, actors, subset: :source_mutes) end opts = @@ -162,9 +160,7 @@ def render( account: AccountView.render("show.json", %{ user: user, - for: opts[:for], - relationships: opts[:relationships], - skip_relationships: opts[:skip_relationships] + for: opts[:for] }), in_reply_to_id: nil, in_reply_to_account_id: nil, @@ -330,9 +326,7 @@ def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} account: AccountView.render("show.json", %{ user: user, - for: opts[:for], - relationships: opts[:relationships], - skip_relationships: opts[:skip_relationships] + for: opts[:for] }), in_reply_to_id: reply_to && to_string(reply_to.id), in_reply_to_account_id: reply_to_user && to_string(reply_to_user.id), @@ -370,7 +364,8 @@ def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} expires_at: expires_at, direct_conversation_id: direct_conversation_id, thread_muted: thread_muted?, - emoji_reactions: emoji_reactions + emoji_reactions: emoji_reactions, + parent_visible: visible_for_user?(reply_to, opts[:for]) } } end @@ -383,8 +378,8 @@ def render("card.json", %{rich_media: rich_media, page_url: page_url}) do page_url_data = URI.parse(page_url) page_url_data = - if rich_media[:url] != nil do - URI.merge(page_url_data, URI.parse(rich_media[:url])) + if is_binary(rich_media["url"]) do + URI.merge(page_url_data, URI.parse(rich_media["url"])) else page_url_data end @@ -392,11 +387,9 @@ def render("card.json", %{rich_media: rich_media, page_url: page_url}) do page_url = page_url_data |> to_string image_url = - if rich_media[:image] != nil do - URI.merge(page_url_data, URI.parse(rich_media[:image])) + if is_binary(rich_media["image"]) do + URI.merge(page_url_data, URI.parse(rich_media["image"])) |> to_string - else - nil end %{ @@ -405,8 +398,8 @@ def render("card.json", %{rich_media: rich_media, page_url: page_url}) do provider_url: page_url_data.scheme <> "://" <> page_url_data.host, url: page_url, image: image_url |> MediaProxy.url(), - title: rich_media[:title] || "", - description: rich_media[:description] || "", + title: rich_media["title"] || "", + description: rich_media["description"] || "", pleroma: %{ opengraph: rich_media } @@ -442,27 +435,6 @@ def render("attachment.json", %{attachment: attachment}) do } end - def render("listen.json", %{activity: %Activity{data: %{"type" => "Listen"}} = activity} = opts) do - object = Object.normalize(activity) - - user = get_user(activity.data["actor"]) - created_at = Utils.to_masto_date(activity.data["published"]) - - %{ - id: activity.id, - account: AccountView.render("show.json", %{user: user, for: opts[:for]}), - created_at: created_at, - title: object.data["title"] |> HTML.strip_tags(), - artist: object.data["artist"] |> HTML.strip_tags(), - album: object.data["album"] |> HTML.strip_tags(), - length: object.data["length"] - } - end - - def render("listens.json", opts) do - safe_render_many(opts.activities, StatusView, "listen.json", opts) - end - def render("context.json", %{activity: activity, activities: activities, user: user}) do %{ancestors: ancestors, descendants: descendants} = activities diff --git a/lib/pleroma/web/media_proxy/invalidation.ex b/lib/pleroma/web/media_proxy/invalidation.ex new file mode 100644 index 000000000..5808861e6 --- /dev/null +++ b/lib/pleroma/web/media_proxy/invalidation.ex @@ -0,0 +1,38 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.MediaProxy.Invalidation do + @moduledoc false + + @callback purge(list(String.t()), Keyword.t()) :: {:ok, list(String.t())} | {:error, String.t()} + + alias Pleroma.Config + alias Pleroma.Web.MediaProxy + + @spec enabled?() :: boolean() + def enabled?, do: Config.get([:media_proxy, :invalidation, :enabled]) + + @spec purge(list(String.t()) | String.t()) :: {:ok, list(String.t())} | {:error, String.t()} + def purge(urls) do + prepared_urls = prepare_urls(urls) + + if enabled?() do + do_purge(prepared_urls) + else + {:ok, prepared_urls} + end + end + + defp do_purge(urls) do + provider = Config.get([:media_proxy, :invalidation, :provider]) + options = Config.get(provider) + provider.purge(urls, options) + end + + def prepare_urls(urls) do + urls + |> List.wrap() + |> Enum.map(&MediaProxy.url/1) + end +end diff --git a/lib/pleroma/web/media_proxy/invalidations/http.ex b/lib/pleroma/web/media_proxy/invalidations/http.ex new file mode 100644 index 000000000..bb81d8888 --- /dev/null +++ b/lib/pleroma/web/media_proxy/invalidations/http.ex @@ -0,0 +1,40 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.MediaProxy.Invalidation.Http do + @moduledoc false + @behaviour Pleroma.Web.MediaProxy.Invalidation + + require Logger + + @impl Pleroma.Web.MediaProxy.Invalidation + def purge(urls, opts \\ []) do + method = Keyword.get(opts, :method, :purge) + headers = Keyword.get(opts, :headers, []) + options = Keyword.get(opts, :options, []) + + Logger.debug("Running cache purge: #{inspect(urls)}") + + Enum.each(urls, fn url -> + with {:error, error} <- do_purge(method, url, headers, options) do + Logger.error("Error while cache purge: url - #{url}, error: #{inspect(error)}") + end + end) + + {:ok, urls} + end + + defp do_purge(method, url, headers, options) do + case Pleroma.HTTP.request(method, url, "", headers, options) do + {:ok, %{status: status} = env} when 400 <= status and status < 500 -> + {:error, env} + + {:error, error} = error -> + error + + _ -> + {:ok, "success"} + end + end +end diff --git a/lib/pleroma/web/media_proxy/invalidations/script.ex b/lib/pleroma/web/media_proxy/invalidations/script.ex new file mode 100644 index 000000000..d32ffc50b --- /dev/null +++ b/lib/pleroma/web/media_proxy/invalidations/script.ex @@ -0,0 +1,43 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.MediaProxy.Invalidation.Script do + @moduledoc false + + @behaviour Pleroma.Web.MediaProxy.Invalidation + + require Logger + + @impl Pleroma.Web.MediaProxy.Invalidation + def purge(urls, opts \\ []) do + args = + urls + |> List.wrap() + |> Enum.uniq() + |> Enum.join(" ") + + opts + |> Keyword.get(:script_path) + |> do_purge([args]) + |> handle_result(urls) + end + + defp do_purge(script_path, args) when is_binary(script_path) do + path = Path.expand(script_path) + Logger.debug("Running cache purge: #{inspect(args)}, #{inspect(path)}") + System.cmd(path, args) + rescue + error -> error + end + + defp do_purge(_, _), do: {:error, "not found script path"} + + defp handle_result({_result, 0}, urls), do: {:ok, urls} + defp handle_result({:error, error}, urls), do: handle_result(error, urls) + + defp handle_result(error, _) do + Logger.error("Error while cache purge: #{inspect(error)}") + {:error, inspect(error)} + end +end diff --git a/lib/pleroma/web/media_proxy/media_proxy.ex b/lib/pleroma/web/media_proxy/media_proxy.ex index b2b524524..077fabe47 100644 --- a/lib/pleroma/web/media_proxy/media_proxy.ex +++ b/lib/pleroma/web/media_proxy/media_proxy.ex @@ -6,20 +6,53 @@ defmodule Pleroma.Web.MediaProxy do alias Pleroma.Config alias Pleroma.Upload alias Pleroma.Web + alias Pleroma.Web.MediaProxy.Invalidation @base64_opts [padding: false] + @spec in_banned_urls(String.t()) :: boolean() + def in_banned_urls(url), do: elem(Cachex.exists?(:banned_urls_cache, url(url)), 1) + + def remove_from_banned_urls(urls) when is_list(urls) do + Cachex.execute!(:banned_urls_cache, fn cache -> + Enum.each(Invalidation.prepare_urls(urls), &Cachex.del(cache, &1)) + end) + end + + def remove_from_banned_urls(url) when is_binary(url) do + Cachex.del(:banned_urls_cache, url(url)) + end + + def put_in_banned_urls(urls) when is_list(urls) do + Cachex.execute!(:banned_urls_cache, fn cache -> + Enum.each(Invalidation.prepare_urls(urls), &Cachex.put(cache, &1, true)) + end) + end + + def put_in_banned_urls(url) when is_binary(url) do + Cachex.put(:banned_urls_cache, url(url), true) + end + def url(url) when is_nil(url) or url == "", do: nil def url("/" <> _ = url), do: url def url(url) do - if disabled?() or local?(url) or whitelisted?(url) do + if disabled?() or not url_proxiable?(url) do url else encode_url(url) end end + @spec url_proxiable?(String.t()) :: boolean() + def url_proxiable?(url) do + if local?(url) or whitelisted?(url) do + false + else + true + end + end + defp disabled?, do: !Config.get([:media_proxy, :enabled], false) defp local?(url), do: String.starts_with?(url, Pleroma.Web.base_url()) diff --git a/lib/pleroma/web/media_proxy/media_proxy_controller.ex b/lib/pleroma/web/media_proxy/media_proxy_controller.ex index 4657a4383..9a64b0ef3 100644 --- a/lib/pleroma/web/media_proxy/media_proxy_controller.ex +++ b/lib/pleroma/web/media_proxy/media_proxy_controller.ex @@ -14,10 +14,11 @@ def remote(conn, %{"sig" => sig64, "url" => url64} = params) do with config <- Pleroma.Config.get([:media_proxy], []), true <- Keyword.get(config, :enabled, false), {:ok, url} <- MediaProxy.decode_url(sig64, url64), + {_, false} <- {:in_banned_urls, MediaProxy.in_banned_urls(url)}, :ok <- filename_matches(params, conn.request_path, url) do ReverseProxy.call(conn, url, Keyword.get(config, :proxy_opts, @default_proxy_opts)) else - false -> + error when error in [false, {:in_banned_urls, true}] -> send_resp(conn, 404, Plug.Conn.Status.reason_phrase(404)) {:error, :invalid_signature} -> diff --git a/lib/pleroma/web/nodeinfo/nodeinfo.ex b/lib/pleroma/web/nodeinfo/nodeinfo.ex new file mode 100644 index 000000000..47fa46376 --- /dev/null +++ b/lib/pleroma/web/nodeinfo/nodeinfo.ex @@ -0,0 +1,91 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Nodeinfo.Nodeinfo do + alias Pleroma.Config + alias Pleroma.Stats + alias Pleroma.User + alias Pleroma.Web.Federator.Publisher + alias Pleroma.Web.MastodonAPI.InstanceView + + # returns a nodeinfo 2.0 map, since 2.1 just adds a repository field + # under software. + def get_nodeinfo("2.0") do + stats = Stats.get_stats() + + staff_accounts = + User.all_superusers() + |> Enum.map(fn u -> u.ap_id end) + + federation = InstanceView.federation() + features = InstanceView.features() + + %{ + version: "2.0", + software: %{ + name: Pleroma.Application.name() |> String.downcase(), + version: Pleroma.Application.version() + }, + protocols: Publisher.gather_nodeinfo_protocol_names(), + services: %{ + inbound: [], + outbound: [] + }, + openRegistrations: Config.get([:instance, :registrations_open]), + usage: %{ + users: %{ + total: Map.get(stats, :user_count, 0) + }, + localPosts: Map.get(stats, :status_count, 0) + }, + metadata: %{ + nodeName: Config.get([:instance, :name]), + nodeDescription: Config.get([:instance, :description]), + private: !Config.get([:instance, :public], true), + suggestions: %{ + enabled: false + }, + staffAccounts: staff_accounts, + federation: federation, + pollLimits: Config.get([:instance, :poll_limits]), + postFormats: Config.get([:instance, :allowed_post_formats]), + uploadLimits: %{ + general: Config.get([:instance, :upload_limit]), + avatar: Config.get([:instance, :avatar_upload_limit]), + banner: Config.get([:instance, :banner_upload_limit]), + background: Config.get([:instance, :background_upload_limit]) + }, + fieldsLimits: %{ + maxFields: Config.get([:instance, :max_account_fields]), + maxRemoteFields: Config.get([:instance, :max_remote_account_fields]), + nameLength: Config.get([:instance, :account_field_name_length]), + valueLength: Config.get([:instance, :account_field_value_length]) + }, + accountActivationRequired: Config.get([:instance, :account_activation_required], false), + invitesEnabled: Config.get([:instance, :invites_enabled], false), + mailerEnabled: Config.get([Pleroma.Emails.Mailer, :enabled], false), + features: features, + restrictedNicknames: Config.get([Pleroma.User, :restricted_nicknames]), + skipThreadContainment: Config.get([:instance, :skip_thread_containment], false) + } + } + end + + def get_nodeinfo("2.1") do + raw_response = get_nodeinfo("2.0") + + updated_software = + raw_response + |> Map.get(:software) + |> Map.put(:repository, Pleroma.Application.repository()) + + raw_response + |> Map.put(:software, updated_software) + |> Map.put(:version, "2.1") + end + + def get_nodeinfo(_version) do + {:error, :missing} + end +end diff --git a/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex b/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex index 721b599d4..8c7a9e565 100644 --- a/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex +++ b/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex @@ -5,12 +5,8 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do use Pleroma.Web, :controller - alias Pleroma.Config - alias Pleroma.Stats - alias Pleroma.User alias Pleroma.Web - alias Pleroma.Web.Federator.Publisher - alias Pleroma.Web.MastodonAPI.InstanceView + alias Pleroma.Web.Nodeinfo.Nodeinfo def schemas(conn, _params) do response = %{ @@ -29,102 +25,20 @@ def schemas(conn, _params) do json(conn, response) end - # returns a nodeinfo 2.0 map, since 2.1 just adds a repository field - # under software. - def raw_nodeinfo do - stats = Stats.get_stats() - - staff_accounts = - User.all_superusers() - |> Enum.map(fn u -> u.ap_id end) - - features = InstanceView.features() - federation = InstanceView.federation() - - %{ - version: "2.0", - software: %{ - name: Pleroma.Application.name() |> String.downcase(), - version: Pleroma.Application.version() - }, - protocols: Publisher.gather_nodeinfo_protocol_names(), - services: %{ - inbound: [], - outbound: [] - }, - openRegistrations: Config.get([:instance, :registrations_open]), - usage: %{ - users: %{ - total: Map.get(stats, :user_count, 0) - }, - localPosts: Map.get(stats, :status_count, 0) - }, - metadata: %{ - nodeName: Config.get([:instance, :name]), - nodeDescription: Config.get([:instance, :description]), - private: !Config.get([:instance, :public], true), - suggestions: %{ - enabled: false - }, - staffAccounts: staff_accounts, - federation: federation, - pollLimits: Config.get([:instance, :poll_limits]), - postFormats: Config.get([:instance, :allowed_post_formats]), - uploadLimits: %{ - general: Config.get([:instance, :upload_limit]), - avatar: Config.get([:instance, :avatar_upload_limit]), - banner: Config.get([:instance, :banner_upload_limit]), - background: Config.get([:instance, :background_upload_limit]) - }, - fieldsLimits: %{ - maxFields: Config.get([:instance, :max_account_fields]), - maxRemoteFields: Config.get([:instance, :max_remote_account_fields]), - nameLength: Config.get([:instance, :account_field_name_length]), - valueLength: Config.get([:instance, :account_field_value_length]) - }, - accountActivationRequired: Config.get([:instance, :account_activation_required], false), - invitesEnabled: Config.get([:instance, :invites_enabled], false), - mailerEnabled: Config.get([Pleroma.Emails.Mailer, :enabled], false), - features: features, - restrictedNicknames: Config.get([Pleroma.User, :restricted_nicknames]), - skipThreadContainment: Config.get([:instance, :skip_thread_containment], false) - } - } - end - # Schema definition: https://github.com/jhass/nodeinfo/blob/master/schemas/2.0/schema.json # and https://github.com/jhass/nodeinfo/blob/master/schemas/2.1/schema.json - def nodeinfo(conn, %{"version" => "2.0"}) do - conn - |> put_resp_header( - "content-type", - "application/json; profile=http://nodeinfo.diaspora.software/ns/schema/2.0#; charset=utf-8" - ) - |> json(raw_nodeinfo()) - end + def nodeinfo(conn, %{"version" => version}) do + case Nodeinfo.get_nodeinfo(version) do + {:error, :missing} -> + render_error(conn, :not_found, "Nodeinfo schema version not handled") - def nodeinfo(conn, %{"version" => "2.1"}) do - raw_response = raw_nodeinfo() - - updated_software = - raw_response - |> Map.get(:software) - |> Map.put(:repository, Pleroma.Application.repository()) - - response = - raw_response - |> Map.put(:software, updated_software) - |> Map.put(:version, "2.1") - - conn - |> put_resp_header( - "content-type", - "application/json; profile=http://nodeinfo.diaspora.software/ns/schema/2.1#; charset=utf-8" - ) - |> json(response) - end - - def nodeinfo(conn, _) do - render_error(conn, :not_found, "Nodeinfo schema version not handled") + node_info -> + conn + |> put_resp_header( + "content-type", + "application/json; profile=http://nodeinfo.diaspora.software/ns/schema/2.0#; charset=utf-8" + ) + |> json(node_info) + end end end diff --git a/lib/pleroma/web/oauth/app.ex b/lib/pleroma/web/oauth/app.ex index 6a6d5f2e2..df99472e1 100644 --- a/lib/pleroma/web/oauth/app.ex +++ b/lib/pleroma/web/oauth/app.ex @@ -25,12 +25,12 @@ defmodule Pleroma.Web.OAuth.App do timestamps() end - @spec changeset(App.t(), map()) :: Ecto.Changeset.t() + @spec changeset(t(), map()) :: Ecto.Changeset.t() def changeset(struct, params) do cast(struct, params, [:client_name, :redirect_uris, :scopes, :website, :trusted]) end - @spec register_changeset(App.t(), map()) :: Ecto.Changeset.t() + @spec register_changeset(t(), map()) :: Ecto.Changeset.t() def register_changeset(struct, params \\ %{}) do changeset = struct @@ -52,18 +52,19 @@ def register_changeset(struct, params \\ %{}) do end end - @spec create(map()) :: {:ok, App.t()} | {:error, Ecto.Changeset.t()} + @spec create(map()) :: {:ok, t()} | {:error, Ecto.Changeset.t()} def create(params) do - with changeset <- __MODULE__.register_changeset(%__MODULE__{}, params) do - Repo.insert(changeset) - end + %__MODULE__{} + |> register_changeset(params) + |> Repo.insert() end - @spec update(map()) :: {:ok, App.t()} | {:error, Ecto.Changeset.t()} - def update(params) do - with %__MODULE__{} = app <- Repo.get(__MODULE__, params["id"]), - changeset <- changeset(app, params) do - Repo.update(changeset) + @spec update(pos_integer(), map()) :: {:ok, t()} | {:error, Ecto.Changeset.t()} + def update(id, params) do + with %__MODULE__{} = app <- Repo.get(__MODULE__, id) do + app + |> changeset(params) + |> Repo.update() end end @@ -71,7 +72,7 @@ def update(params) do Gets app by attrs or create new with attrs. And updates the scopes if need. """ - @spec get_or_make(map(), list(String.t())) :: {:ok, App.t()} | {:error, Ecto.Changeset.t()} + @spec get_or_make(map(), list(String.t())) :: {:ok, t()} | {:error, Ecto.Changeset.t()} def get_or_make(attrs, scopes) do with %__MODULE__{} = app <- Repo.get_by(__MODULE__, attrs) do update_scopes(app, scopes) @@ -92,7 +93,7 @@ defp update_scopes(%__MODULE__{} = app, scopes) do |> Repo.update() end - @spec search(map()) :: {:ok, [App.t()], non_neg_integer()} + @spec search(map()) :: {:ok, [t()], non_neg_integer()} def search(params) do query = from(a in __MODULE__) @@ -128,7 +129,7 @@ def search(params) do {:ok, Repo.all(query), count} end - @spec destroy(pos_integer()) :: {:ok, App.t()} | {:error, Ecto.Changeset.t()} + @spec destroy(pos_integer()) :: {:ok, t()} | {:error, Ecto.Changeset.t()} def destroy(id) do with %__MODULE__{} = app <- Repo.get(__MODULE__, id) do Repo.delete(app) diff --git a/lib/pleroma/web/oauth/mfa_controller.ex b/lib/pleroma/web/oauth/mfa_controller.ex index e52cccd85..53e19f82e 100644 --- a/lib/pleroma/web/oauth/mfa_controller.ex +++ b/lib/pleroma/web/oauth/mfa_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth.MFAController do diff --git a/lib/pleroma/web/oauth/mfa_view.ex b/lib/pleroma/web/oauth/mfa_view.ex index e88e7066b..41d5578dc 100644 --- a/lib/pleroma/web/oauth/mfa_view.ex +++ b/lib/pleroma/web/oauth/mfa_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth.MFAView do diff --git a/lib/pleroma/web/oauth/oauth_controller.ex b/lib/pleroma/web/oauth/oauth_controller.ex index 7c804233c..c557778ca 100644 --- a/lib/pleroma/web/oauth/oauth_controller.ex +++ b/lib/pleroma/web/oauth/oauth_controller.ex @@ -6,6 +6,7 @@ defmodule Pleroma.Web.OAuth.OAuthController do use Pleroma.Web, :controller alias Pleroma.Helpers.UriHelper + alias Pleroma.Maps alias Pleroma.MFA alias Pleroma.Plugs.RateLimiter alias Pleroma.Registration @@ -108,7 +109,7 @@ defp handle_existing_authorization( if redirect_uri in String.split(app.redirect_uris) do redirect_uri = redirect_uri(conn, redirect_uri) url_params = %{access_token: token.token} - url_params = UriHelper.append_param_if_present(url_params, :state, params["state"]) + url_params = Maps.put_if_present(url_params, :state, params["state"]) url = UriHelper.append_uri_params(redirect_uri, url_params) redirect(conn, external: url) else @@ -147,7 +148,7 @@ def after_create_authorization(%Plug.Conn{} = conn, %Authorization{} = auth, %{ if redirect_uri in String.split(app.redirect_uris) do redirect_uri = redirect_uri(conn, redirect_uri) url_params = %{code: auth.token} - url_params = UriHelper.append_param_if_present(url_params, :state, auth_attrs["state"]) + url_params = Maps.put_if_present(url_params, :state, auth_attrs["state"]) url = UriHelper.append_uri_params(redirect_uri, url_params) redirect(conn, external: url) else diff --git a/lib/pleroma/web/oauth/token/clean_worker.ex b/lib/pleroma/web/oauth/token/clean_worker.ex index 2c3bb9ded..e3aa4eb7e 100644 --- a/lib/pleroma/web/oauth/token/clean_worker.ex +++ b/lib/pleroma/web/oauth/token/clean_worker.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth.Token.CleanWorker do diff --git a/lib/pleroma/web/ostatus/ostatus_controller.ex b/lib/pleroma/web/ostatus/ostatus_controller.ex index 6971cd9f8..de1b0b3f0 100644 --- a/lib/pleroma/web/ostatus/ostatus_controller.ex +++ b/lib/pleroma/web/ostatus/ostatus_controller.ex @@ -32,13 +32,13 @@ defmodule Pleroma.Web.OStatus.OStatusController do action_fallback(:errors) - def object(%{assigns: %{format: format}} = conn, %{"uuid" => _uuid}) + def object(%{assigns: %{format: format}} = conn, _params) when format in ["json", "activity+json"] do ActivityPubController.call(conn, :object) end - def object(%{assigns: %{format: format}} = conn, %{"uuid" => uuid}) do - with id <- o_status_url(conn, :object, uuid), + def object(%{assigns: %{format: format}} = conn, _params) do + with id <- Endpoint.url() <> conn.request_path, {_, %Activity{} = activity} <- {:activity, Activity.get_create_by_object_ap_id_with_object(id)}, {_, true} <- {:public?, Visibility.is_public?(activity)} do @@ -54,13 +54,13 @@ def object(%{assigns: %{format: format}} = conn, %{"uuid" => uuid}) do end end - def activity(%{assigns: %{format: format}} = conn, %{"uuid" => _uuid}) + def activity(%{assigns: %{format: format}} = conn, _params) when format in ["json", "activity+json"] do ActivityPubController.call(conn, :activity) end - def activity(%{assigns: %{format: format}} = conn, %{"uuid" => uuid}) do - with id <- o_status_url(conn, :activity, uuid), + def activity(%{assigns: %{format: format}} = conn, _params) do + with id <- Endpoint.url() <> conn.request_path, {_, %Activity{} = activity} <- {:activity, Activity.normalize(id)}, {_, true} <- {:public?, Visibility.is_public?(activity)} do case format do diff --git a/lib/pleroma/web/pleroma_api/controllers/account_controller.ex b/lib/pleroma/web/pleroma_api/controllers/account_controller.ex index 07078d415..f3554d919 100644 --- a/lib/pleroma/web/pleroma_api/controllers/account_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/account_controller.ex @@ -6,7 +6,7 @@ defmodule Pleroma.Web.PleromaAPI.AccountController do use Pleroma.Web, :controller import Pleroma.Web.ControllerHelper, - only: [json_response: 3, add_link_headers: 2, assign_account_by_id: 2, skip_relationships?: 1] + only: [json_response: 3, add_link_headers: 2, assign_account_by_id: 2] alias Ecto.Changeset alias Pleroma.Plugs.EnsurePublicOrAuthenticatedPlug @@ -126,10 +126,9 @@ def favourites(%{assigns: %{account: %{hide_favorites: true}}} = conn, _params) def favourites(%{assigns: %{user: for_user, account: user}} = conn, params) do params = params - |> Map.new(fn {key, value} -> {to_string(key), value} end) - |> Map.put("type", "Create") - |> Map.put("favorited_by", user.ap_id) - |> Map.put("blocking_user", for_user) + |> Map.put(:type, "Create") + |> Map.put(:favorited_by, user.ap_id) + |> Map.put(:blocking_user, for_user) recipients = if for_user do @@ -149,8 +148,7 @@ def favourites(%{assigns: %{user: for_user, account: user}} = conn, params) do |> render("index.json", activities: activities, for: for_user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex new file mode 100644 index 000000000..c8ef3d915 --- /dev/null +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -0,0 +1,174 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only +defmodule Pleroma.Web.PleromaAPI.ChatController do + use Pleroma.Web, :controller + + alias Pleroma.Activity + alias Pleroma.Chat + alias Pleroma.Chat.MessageReference + alias Pleroma.Object + alias Pleroma.Pagination + alias Pleroma.Plugs.OAuthScopesPlug + alias Pleroma.Repo + alias Pleroma.User + alias Pleroma.Web.CommonAPI + alias Pleroma.Web.PleromaAPI.Chat.MessageReferenceView + alias Pleroma.Web.PleromaAPI.ChatView + + import Ecto.Query + + action_fallback(Pleroma.Web.MastodonAPI.FallbackController) + + plug( + OAuthScopesPlug, + %{scopes: ["write:chats"]} + when action in [ + :post_chat_message, + :create, + :mark_as_read, + :mark_message_as_read, + :delete_message + ] + ) + + plug( + OAuthScopesPlug, + %{scopes: ["read:chats"]} when action in [:messages, :index, :show] + ) + + plug(OpenApiSpex.Plug.CastAndValidate, render_error: Pleroma.Web.ApiSpec.RenderError) + + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.ChatOperation + + def delete_message(%{assigns: %{user: %{id: user_id} = user}} = conn, %{ + message_id: message_id, + id: chat_id + }) do + with %MessageReference{} = cm_ref <- + MessageReference.get_by_id(message_id), + ^chat_id <- cm_ref.chat_id |> to_string(), + %Chat{user_id: ^user_id} <- Chat.get_by_id(chat_id), + {:ok, _} <- remove_or_delete(cm_ref, user) do + conn + |> put_view(MessageReferenceView) + |> render("show.json", chat_message_reference: cm_ref) + else + _e -> + {:error, :could_not_delete} + end + end + + defp remove_or_delete( + %{object: %{data: %{"actor" => actor, "id" => id}}}, + %{ap_id: actor} = user + ) do + with %Activity{} = activity <- Activity.get_create_by_object_ap_id(id) do + CommonAPI.delete(activity.id, user) + end + end + + defp remove_or_delete(cm_ref, _) do + cm_ref + |> MessageReference.delete() + end + + def post_chat_message( + %{body_params: params, assigns: %{user: %{id: user_id} = user}} = conn, + %{ + id: id + } + ) do + with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id), + %User{} = recipient <- User.get_cached_by_ap_id(chat.recipient), + {:ok, activity} <- + CommonAPI.post_chat_message(user, recipient, params[:content], + media_id: params[:media_id] + ), + message <- Object.normalize(activity, false), + cm_ref <- MessageReference.for_chat_and_object(chat, message) do + conn + |> put_view(MessageReferenceView) + |> render("show.json", for: user, chat_message_reference: cm_ref) + end + end + + def mark_message_as_read(%{assigns: %{user: %{id: user_id} = user}} = conn, %{ + id: chat_id, + message_id: message_id + }) do + with %MessageReference{} = cm_ref <- + MessageReference.get_by_id(message_id), + ^chat_id <- cm_ref.chat_id |> to_string(), + %Chat{user_id: ^user_id} <- Chat.get_by_id(chat_id), + {:ok, cm_ref} <- MessageReference.mark_as_read(cm_ref) do + conn + |> put_view(MessageReferenceView) + |> render("show.json", for: user, chat_message_reference: cm_ref) + end + end + + def mark_as_read( + %{body_params: %{last_read_id: last_read_id}, assigns: %{user: %{id: user_id}}} = conn, + %{id: id} + ) do + with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id), + {_n, _} <- + MessageReference.set_all_seen_for_chat(chat, last_read_id) do + conn + |> put_view(ChatView) + |> render("show.json", chat: chat) + end + end + + def messages(%{assigns: %{user: %{id: user_id} = user}} = conn, %{id: id} = params) do + with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id) do + cm_refs = + chat + |> MessageReference.for_chat_query() + |> Pagination.fetch_paginated(params) + + conn + |> put_view(MessageReferenceView) + |> render("index.json", for: user, chat_message_references: cm_refs) + else + _ -> + conn + |> put_status(:not_found) + |> json(%{error: "not found"}) + end + end + + def index(%{assigns: %{user: %{id: user_id} = user}} = conn, _params) do + blocked_ap_ids = User.blocked_users_ap_ids(user) + + chats = + from(c in Chat, + where: c.user_id == ^user_id, + where: c.recipient not in ^blocked_ap_ids, + order_by: [desc: c.updated_at] + ) + |> Repo.all() + + conn + |> put_view(ChatView) + |> render("index.json", chats: chats) + end + + def create(%{assigns: %{user: user}} = conn, params) do + with %User{ap_id: recipient} <- User.get_by_id(params[:id]), + {:ok, %Chat{} = chat} <- Chat.get_or_create(user.id, recipient) do + conn + |> put_view(ChatView) + |> render("show.json", chat: chat) + end + end + + def show(%{assigns: %{user: user}} = conn, params) do + with %Chat{} = chat <- Repo.get_by(Chat, user_id: user.id, id: params[:id]) do + conn + |> put_view(ChatView) + |> render("show.json", chat: chat) + end + end +end diff --git a/lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex b/lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex new file mode 100644 index 000000000..3d007f324 --- /dev/null +++ b/lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex @@ -0,0 +1,94 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.ConversationController do + use Pleroma.Web, :controller + + import Pleroma.Web.ControllerHelper, only: [add_link_headers: 2] + + alias Pleroma.Conversation.Participation + alias Pleroma.Plugs.OAuthScopesPlug + alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.MastodonAPI.StatusView + + plug(Pleroma.Web.ApiSpec.CastAndValidate) + plug(:put_view, Pleroma.Web.MastodonAPI.ConversationView) + plug(OAuthScopesPlug, %{scopes: ["read:statuses"]} when action in [:show, :statuses]) + + plug( + OAuthScopesPlug, + %{scopes: ["write:conversations"]} when action in [:update, :mark_as_read] + ) + + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.PleromaConversationOperation + + def show(%{assigns: %{user: %{id: user_id} = user}} = conn, %{id: participation_id}) do + with %Participation{user_id: ^user_id} = participation <- Participation.get(participation_id) do + render(conn, "participation.json", participation: participation, for: user) + else + _error -> + conn + |> put_status(:not_found) + |> json(%{"error" => "Unknown conversation id"}) + end + end + + def statuses( + %{assigns: %{user: %{id: user_id} = user}} = conn, + %{id: participation_id} = params + ) do + with %Participation{user_id: ^user_id} = participation <- + Participation.get(participation_id, preload: [:conversation]) do + params = + params + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:user, user) + + activities = + participation.conversation.ap_id + |> ActivityPub.fetch_activities_for_context_query(params) + |> Pleroma.Pagination.fetch_paginated(Map.put(params, :total, false)) + |> Enum.reverse() + + conn + |> add_link_headers(activities) + |> put_view(StatusView) + |> render("index.json", activities: activities, for: user, as: :activity) + else + _error -> + conn + |> put_status(:not_found) + |> json(%{"error" => "Unknown conversation id"}) + end + end + + def update( + %{assigns: %{user: %{id: user_id} = user}} = conn, + %{id: participation_id, recipients: recipients} + ) do + with %Participation{user_id: ^user_id} = participation <- Participation.get(participation_id), + {:ok, participation} <- Participation.set_recipients(participation, recipients) do + render(conn, "participation.json", participation: participation, for: user) + else + {:error, message} -> + conn + |> put_status(:bad_request) + |> json(%{"error" => message}) + + _error -> + conn + |> put_status(:not_found) + |> json(%{"error" => "Unknown conversation id"}) + end + end + + def mark_as_read(%{assigns: %{user: user}} = conn, _params) do + with {:ok, _, participations} <- Participation.mark_all_as_read(user) do + conn + |> add_link_headers(participations) + |> render("participations.json", participations: participations, for: user) + end + end +end diff --git a/lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex b/lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex similarity index 75% rename from lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex rename to lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex index d276b96a4..33ecd1f70 100644 --- a/lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex @@ -1,8 +1,10 @@ -defmodule Pleroma.Web.PleromaAPI.EmojiAPIController do +defmodule Pleroma.Web.PleromaAPI.EmojiPackController do use Pleroma.Web, :controller alias Pleroma.Emoji.Pack + plug(Pleroma.Web.ApiSpec.CastAndValidate) + plug( Pleroma.Plugs.OAuthScopesPlug, %{scopes: ["write"], admin: true} @@ -19,39 +21,37 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIController do ] ) - plug( - :skip_plug, - [Pleroma.Plugs.OAuthScopesPlug, Pleroma.Plugs.ExpectPublicOrAuthenticatedCheckPlug] - when action in [:archive, :show, :list] - ) + @skip_plugs [Pleroma.Plugs.OAuthScopesPlug, Pleroma.Plugs.ExpectPublicOrAuthenticatedCheckPlug] + plug(:skip_plug, @skip_plugs when action in [:archive, :show, :list]) - def remote(conn, %{"url" => url}) do + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.PleromaEmojiPackOperation + + def remote(conn, %{url: url}) do with {:ok, packs} <- Pack.list_remote(url) do json(conn, packs) else - {:shareable, _} -> + {:error, :not_shareable} -> conn |> put_status(:internal_server_error) |> json(%{error: "The requested instance does not support sharing emoji packs"}) end end - def list(conn, _params) do + def index(conn, params) do emoji_path = - Path.join( - Pleroma.Config.get!([:instance, :static_dir]), - "emoji" - ) + [:instance, :static_dir] + |> Pleroma.Config.get!() + |> Path.join("emoji") - with {:ok, packs} <- Pack.list_local() do - json(conn, packs) + with {:ok, packs, count} <- Pack.list_local(page: params.page, page_size: params.page_size) do + json(conn, %{packs: packs, count: count}) else - {:create_dir, {:error, e}} -> + {:error, :create_dir, e} -> conn |> put_status(:internal_server_error) |> json(%{error: "Failed to create the emoji pack directory at #{emoji_path}: #{e}"}) - {:ls, {:error, e}} -> + {:error, :ls, e} -> conn |> put_status(:internal_server_error) |> json(%{ @@ -60,13 +60,13 @@ def list(conn, _params) do end end - def show(conn, %{"name" => name}) do + def show(conn, %{name: name, page: page, page_size: page_size}) do name = String.trim(name) - with {:ok, pack} <- Pack.show(name) do + with {:ok, pack} <- Pack.show(name: name, page: page, page_size: page_size) do json(conn, pack) else - {:loaded, _} -> + {:error, :not_found} -> conn |> put_status(:not_found) |> json(%{error: "Pack #{name} does not exist"}) @@ -78,11 +78,11 @@ def show(conn, %{"name" => name}) do end end - def archive(conn, %{"name" => name}) do + def archive(conn, %{name: name}) do with {:ok, archive} <- Pack.get_archive(name) do send_download(conn, {:binary, archive}, filename: "#{name}.zip") else - {:can_download?, _} -> + {:error, :cant_download} -> conn |> put_status(:forbidden) |> json(%{ @@ -90,23 +90,23 @@ def archive(conn, %{"name" => name}) do "Pack #{name} cannot be downloaded from this instance, either pack sharing was disabled for this pack or some files are missing" }) - {:exists?, _} -> + {:error, :not_found} -> conn |> put_status(:not_found) |> json(%{error: "Pack #{name} does not exist"}) end end - def download(conn, %{"url" => url, "name" => name} = params) do - with :ok <- Pack.download(name, url, params["as"]) do + def download(%{body_params: %{url: url, name: name} = params} = conn, _) do + with {:ok, _pack} <- Pack.download(name, url, params[:as]) do json(conn, "ok") else - {:shareable, _} -> + {:error, :not_shareable} -> conn |> put_status(:internal_server_error) |> json(%{error: "The requested instance does not support sharing emoji packs"}) - {:checksum, _} -> + {:error, :invalid_checksum} -> conn |> put_status(:internal_server_error) |> json(%{error: "SHA256 for the pack doesn't match the one sent by the server"}) @@ -118,10 +118,10 @@ def download(conn, %{"url" => url, "name" => name} = params) do end end - def create(conn, %{"name" => name}) do + def create(conn, %{name: name}) do name = String.trim(name) - with :ok <- Pack.create(name) do + with {:ok, _pack} <- Pack.create(name) do json(conn, "ok") else {:error, :eexist} -> @@ -143,7 +143,7 @@ def create(conn, %{"name" => name}) do end end - def delete(conn, %{"name" => name}) do + def delete(conn, %{name: name}) do name = String.trim(name) with {:ok, deleted} when deleted != [] <- Pack.delete(name) do @@ -166,11 +166,11 @@ def delete(conn, %{"name" => name}) do end end - def update(conn, %{"name" => name, "metadata" => metadata}) do + def update(%{body_params: %{metadata: metadata}} = conn, %{name: name}) do with {:ok, pack} <- Pack.update_metadata(name, metadata) do json(conn, pack.pack) else - {:has_all_files?, _} -> + {:error, :incomplete} -> conn |> put_status(:bad_request) |> json(%{error: "The fallback archive does not have all files specified in pack.json"}) @@ -184,19 +184,19 @@ def update(conn, %{"name" => name, "metadata" => metadata}) do end end - def add_file(conn, %{"name" => name} = params) do - filename = params["filename"] || get_filename(params["file"]) - shortcode = params["shortcode"] || Path.basename(filename, Path.extname(filename)) + def add_file(%{body_params: params} = conn, %{name: name}) do + filename = params[:filename] || get_filename(params[:file]) + shortcode = params[:shortcode] || Path.basename(filename, Path.extname(filename)) - with {:ok, pack} <- Pack.add_file(name, shortcode, filename, params["file"]) do + with {:ok, pack} <- Pack.add_file(name, shortcode, filename, params[:file]) do json(conn, pack.files) else - {:exists, _} -> + {:error, :already_exists} -> conn |> put_status(:conflict) |> json(%{error: "An emoji with the \"#{shortcode}\" shortcode already exists"}) - {:loaded, _} -> + {:error, :not_found} -> conn |> put_status(:bad_request) |> json(%{error: "pack \"#{name}\" is not found"}) @@ -215,20 +215,20 @@ def add_file(conn, %{"name" => name} = params) do end end - def update_file(conn, %{"name" => name, "shortcode" => shortcode} = params) do - new_shortcode = params["new_shortcode"] - new_filename = params["new_filename"] - force = params["force"] == true + def update_file(%{body_params: %{shortcode: shortcode} = params} = conn, %{name: name}) do + new_shortcode = params[:new_shortcode] + new_filename = params[:new_filename] + force = params[:force] with {:ok, pack} <- Pack.update_file(name, shortcode, new_shortcode, new_filename, force) do json(conn, pack.files) else - {:exists, _} -> + {:error, :doesnt_exist} -> conn |> put_status(:bad_request) |> json(%{error: "Emoji \"#{shortcode}\" does not exist"}) - {:not_used, _} -> + {:error, :already_exists} -> conn |> put_status(:conflict) |> json(%{ @@ -236,7 +236,7 @@ def update_file(conn, %{"name" => name, "shortcode" => shortcode} = params) do "New shortcode \"#{new_shortcode}\" is already used. If you want to override emoji use 'force' option" }) - {:loaded, _} -> + {:error, :not_found} -> conn |> put_status(:bad_request) |> json(%{error: "pack \"#{name}\" is not found"}) @@ -255,16 +255,16 @@ def update_file(conn, %{"name" => name, "shortcode" => shortcode} = params) do end end - def delete_file(conn, %{"name" => name, "shortcode" => shortcode}) do + def delete_file(conn, %{name: name, shortcode: shortcode}) do with {:ok, pack} <- Pack.delete_file(name, shortcode) do json(conn, pack.files) else - {:exists, _} -> + {:error, :doesnt_exist} -> conn |> put_status(:bad_request) |> json(%{error: "Emoji \"#{shortcode}\" does not exist"}) - {:loaded, _} -> + {:error, :not_found} -> conn |> put_status(:bad_request) |> json(%{error: "pack \"#{name}\" is not found"}) diff --git a/lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex b/lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex new file mode 100644 index 000000000..19dcffdf3 --- /dev/null +++ b/lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex @@ -0,0 +1,63 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.EmojiReactionController do + use Pleroma.Web, :controller + + alias Pleroma.Activity + alias Pleroma.Object + alias Pleroma.Plugs.OAuthScopesPlug + alias Pleroma.Web.CommonAPI + alias Pleroma.Web.MastodonAPI.StatusView + + plug(Pleroma.Web.ApiSpec.CastAndValidate) + plug(OAuthScopesPlug, %{scopes: ["write:statuses"]} when action in [:create, :delete]) + + plug( + OAuthScopesPlug, + %{scopes: ["read:statuses"], fallback: :proceed_unauthenticated} + when action == :index + ) + + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.EmojiReactionOperation + + action_fallback(Pleroma.Web.MastodonAPI.FallbackController) + + def index(%{assigns: %{user: user}} = conn, %{id: activity_id} = params) do + with %Activity{} = activity <- Activity.get_by_id_with_object(activity_id), + %Object{data: %{"reactions" => reactions}} when is_list(reactions) <- + Object.normalize(activity) do + reactions = filter(reactions, params) + render(conn, "index.json", emoji_reactions: reactions, user: user) + else + _e -> json(conn, []) + end + end + + defp filter(reactions, %{emoji: emoji}) when is_binary(emoji) do + Enum.filter(reactions, fn [e, _] -> e == emoji end) + end + + defp filter(reactions, _), do: reactions + + def create(%{assigns: %{user: user}} = conn, %{id: activity_id, emoji: emoji}) do + with {:ok, _activity} <- CommonAPI.react_with_emoji(activity_id, user, emoji) do + activity = Activity.get_by_id(activity_id) + + conn + |> put_view(StatusView) + |> render("show.json", activity: activity, for: user, as: :activity) + end + end + + def delete(%{assigns: %{user: user}} = conn, %{id: activity_id, emoji: emoji}) do + with {:ok, _activity} <- CommonAPI.unreact_with_emoji(activity_id, user, emoji) do + activity = Activity.get_by_id(activity_id) + + conn + |> put_view(StatusView) + |> render("show.json", activity: activity, for: user, as: :activity) + end + end +end diff --git a/lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex b/lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex index d4e0d8b7c..df6c50ca5 100644 --- a/lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex @@ -9,16 +9,19 @@ defmodule Pleroma.Web.PleromaAPI.MascotController do alias Pleroma.User alias Pleroma.Web.ActivityPub.ActivityPub + plug(Pleroma.Web.ApiSpec.CastAndValidate) plug(OAuthScopesPlug, %{scopes: ["read:accounts"]} when action == :show) plug(OAuthScopesPlug, %{scopes: ["write:accounts"]} when action != :show) + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.PleromaMascotOperation + @doc "GET /api/v1/pleroma/mascot" def show(%{assigns: %{user: user}} = conn, _params) do json(conn, User.get_mascot(user)) end @doc "PUT /api/v1/pleroma/mascot" - def update(%{assigns: %{user: user}} = conn, %{"file" => file}) do + def update(%{assigns: %{user: user}, body_params: %{file: file}} = conn, _) do with {:ok, object} <- ActivityPub.upload(file, actor: User.ap_id(user)), # Reject if not an image %{type: "image"} = attachment <- render_attachment(object) do diff --git a/lib/pleroma/web/pleroma_api/controllers/notification_controller.ex b/lib/pleroma/web/pleroma_api/controllers/notification_controller.ex new file mode 100644 index 000000000..3ed8bd294 --- /dev/null +++ b/lib/pleroma/web/pleroma_api/controllers/notification_controller.ex @@ -0,0 +1,36 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.NotificationController do + use Pleroma.Web, :controller + + alias Pleroma.Notification + alias Pleroma.Plugs.OAuthScopesPlug + + plug(Pleroma.Web.ApiSpec.CastAndValidate) + plug(OAuthScopesPlug, %{scopes: ["write:notifications"]} when action == :mark_as_read) + plug(:put_view, Pleroma.Web.MastodonAPI.NotificationView) + + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.PleromaNotificationOperation + + def mark_as_read(%{assigns: %{user: user}, body_params: %{id: notification_id}} = conn, _) do + with {:ok, notification} <- Notification.read_one(user, notification_id) do + render(conn, "show.json", notification: notification, for: user) + else + {:error, message} -> + conn + |> put_status(:bad_request) + |> json(%{"error" => message}) + end + end + + def mark_as_read(%{assigns: %{user: user}, body_params: %{max_id: max_id}} = conn, _) do + notifications = + user + |> Notification.set_read_up_to(max_id) + |> Enum.take(80) + + render(conn, "index.json", notifications: notifications, for: user) + end +end diff --git a/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex b/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex deleted file mode 100644 index 8bc77b75e..000000000 --- a/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex +++ /dev/null @@ -1,217 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.PleromaAPI.PleromaAPIController do - use Pleroma.Web, :controller - - import Pleroma.Web.ControllerHelper, only: [add_link_headers: 2, skip_relationships?: 1] - - alias Pleroma.Activity - alias Pleroma.Conversation.Participation - alias Pleroma.Notification - alias Pleroma.Object - alias Pleroma.Plugs.OAuthScopesPlug - alias Pleroma.User - alias Pleroma.Web.ActivityPub.ActivityPub - alias Pleroma.Web.CommonAPI - alias Pleroma.Web.MastodonAPI.AccountView - alias Pleroma.Web.MastodonAPI.ConversationView - alias Pleroma.Web.MastodonAPI.NotificationView - alias Pleroma.Web.MastodonAPI.StatusView - - plug( - OAuthScopesPlug, - %{scopes: ["read:statuses"]} - when action in [:conversation, :conversation_statuses] - ) - - plug( - OAuthScopesPlug, - %{scopes: ["read:statuses"], fallback: :proceed_unauthenticated} - when action == :emoji_reactions_by - ) - - plug( - OAuthScopesPlug, - %{scopes: ["write:statuses"]} - when action in [:react_with_emoji, :unreact_with_emoji] - ) - - plug( - OAuthScopesPlug, - %{scopes: ["write:conversations"]} - when action in [:update_conversation, :mark_conversations_as_read] - ) - - plug( - OAuthScopesPlug, - %{scopes: ["write:notifications"]} when action == :mark_notifications_as_read - ) - - def emoji_reactions_by(%{assigns: %{user: user}} = conn, %{"id" => activity_id} = params) do - with %Activity{} = activity <- Activity.get_by_id_with_object(activity_id), - %Object{data: %{"reactions" => emoji_reactions}} when is_list(emoji_reactions) <- - Object.normalize(activity) do - reactions = - emoji_reactions - |> Enum.map(fn [emoji, user_ap_ids] -> - if params["emoji"] && params["emoji"] != emoji do - nil - else - users = - Enum.map(user_ap_ids, &User.get_cached_by_ap_id/1) - |> Enum.filter(fn - %{deactivated: false} -> true - _ -> false - end) - - %{ - name: emoji, - count: length(users), - accounts: AccountView.render("index.json", %{users: users, for: user, as: :user}), - me: !!(user && user.ap_id in user_ap_ids) - } - end - end) - |> Enum.filter(& &1) - - conn - |> json(reactions) - else - _e -> - conn - |> json([]) - end - end - - def react_with_emoji(%{assigns: %{user: user}} = conn, %{"id" => activity_id, "emoji" => emoji}) do - with {:ok, _activity} <- CommonAPI.react_with_emoji(activity_id, user, emoji), - activity <- Activity.get_by_id(activity_id) do - conn - |> put_view(StatusView) - |> render("show.json", %{activity: activity, for: user, as: :activity}) - end - end - - def unreact_with_emoji(%{assigns: %{user: user}} = conn, %{ - "id" => activity_id, - "emoji" => emoji - }) do - with {:ok, _activity} <- - CommonAPI.unreact_with_emoji(activity_id, user, emoji), - activity <- Activity.get_by_id(activity_id) do - conn - |> put_view(StatusView) - |> render("show.json", %{activity: activity, for: user, as: :activity}) - end - end - - def conversation(%{assigns: %{user: user}} = conn, %{"id" => participation_id}) do - with %Participation{} = participation <- Participation.get(participation_id), - true <- user.id == participation.user_id do - conn - |> put_view(ConversationView) - |> render("participation.json", %{participation: participation, for: user}) - else - _error -> - conn - |> put_status(404) - |> json(%{"error" => "Unknown conversation id"}) - end - end - - def conversation_statuses( - %{assigns: %{user: %{id: user_id} = user}} = conn, - %{"id" => participation_id} = params - ) do - with %Participation{user_id: ^user_id} = participation <- - Participation.get(participation_id, preload: [:conversation]) do - params = - params - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("user", user) - - activities = - participation.conversation.ap_id - |> ActivityPub.fetch_activities_for_context_query(params) - |> Pleroma.Pagination.fetch_paginated(Map.put(params, "total", false)) - |> Enum.reverse() - - conn - |> add_link_headers(activities) - |> put_view(StatusView) - |> render("index.json", - activities: activities, - for: user, - as: :activity, - skip_relationships: skip_relationships?(params) - ) - else - _error -> - conn - |> put_status(404) - |> json(%{"error" => "Unknown conversation id"}) - end - end - - def update_conversation( - %{assigns: %{user: user}} = conn, - %{"id" => participation_id, "recipients" => recipients} - ) do - with %Participation{} = participation <- Participation.get(participation_id), - true <- user.id == participation.user_id, - {:ok, participation} <- Participation.set_recipients(participation, recipients) do - conn - |> put_view(ConversationView) - |> render("participation.json", %{participation: participation, for: user}) - else - {:error, message} -> - conn - |> put_status(:bad_request) - |> json(%{"error" => message}) - - _error -> - conn - |> put_status(404) - |> json(%{"error" => "Unknown conversation id"}) - end - end - - def mark_conversations_as_read(%{assigns: %{user: user}} = conn, _params) do - with {:ok, _, participations} <- Participation.mark_all_as_read(user) do - conn - |> add_link_headers(participations) - |> put_view(ConversationView) - |> render("participations.json", participations: participations, for: user) - end - end - - def mark_notifications_as_read(%{assigns: %{user: user}} = conn, %{"id" => notification_id}) do - with {:ok, notification} <- Notification.read_one(user, notification_id) do - conn - |> put_view(NotificationView) - |> render("show.json", %{notification: notification, for: user}) - else - {:error, message} -> - conn - |> put_status(:bad_request) - |> json(%{"error" => message}) - end - end - - def mark_notifications_as_read(%{assigns: %{user: user}} = conn, %{"max_id" => max_id} = params) do - with notifications <- Notification.set_read_up_to(user, max_id) do - notifications = Enum.take(notifications, 80) - - conn - |> put_view(NotificationView) - |> render("index.json", - notifications: notifications, - for: user, - skip_relationships: skip_relationships?(params) - ) - end - end -end diff --git a/lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex b/lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex index 22da6c0ad..e9a4fba92 100644 --- a/lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex @@ -5,34 +5,27 @@ defmodule Pleroma.Web.PleromaAPI.ScrobbleController do use Pleroma.Web, :controller - import Pleroma.Web.ControllerHelper, only: [add_link_headers: 2, fetch_integer_param: 2] + import Pleroma.Web.ControllerHelper, only: [add_link_headers: 2] alias Pleroma.Plugs.OAuthScopesPlug alias Pleroma.User alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.CommonAPI - alias Pleroma.Web.MastodonAPI.StatusView + + plug(Pleroma.Web.ApiSpec.CastAndValidate) plug( OAuthScopesPlug, - %{scopes: ["read"], fallback: :proceed_unauthenticated} when action == :user_scrobbles + %{scopes: ["read"], fallback: :proceed_unauthenticated} when action == :index ) - plug(OAuthScopesPlug, %{scopes: ["write"]} when action != :user_scrobbles) + plug(OAuthScopesPlug, %{scopes: ["write"]} when action == :create) - def new_scrobble(%{assigns: %{user: user}} = conn, %{"title" => _} = params) do - params = - if !params["length"] do - params - else - params - |> Map.put("length", fetch_integer_param(params, "length")) - end + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.PleromaScrobbleOperation + def create(%{assigns: %{user: user}, body_params: params} = conn, _) do with {:ok, activity} <- CommonAPI.listen(user, params) do - conn - |> put_view(StatusView) - |> render("listen.json", %{activity: activity, for: user}) + render(conn, "show.json", activity: activity, for: user) else {:error, message} -> conn @@ -41,16 +34,15 @@ def new_scrobble(%{assigns: %{user: user}} = conn, %{"title" => _} = params) do end end - def user_scrobbles(%{assigns: %{user: reading_user}} = conn, params) do - with %User{} = user <- User.get_cached_by_nickname_or_id(params["id"], for: reading_user) do - params = Map.put(params, "type", ["Listen"]) + def index(%{assigns: %{user: reading_user}} = conn, %{id: id} = params) do + with %User{} = user <- User.get_cached_by_nickname_or_id(id, for: reading_user) do + params = Map.put(params, :type, ["Listen"]) activities = ActivityPub.fetch_user_abstract_activities(user, reading_user, params) conn |> add_link_headers(activities) - |> put_view(StatusView) - |> render("listens.json", %{ + |> render("index.json", %{ activities: activities, for: reading_user, as: :activity diff --git a/lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex b/lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex index eb9989cdf..b86791d09 100644 --- a/lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.TwoFactorAuthenticationController do diff --git a/lib/pleroma/web/pleroma_api/views/chat/message_reference_view.ex b/lib/pleroma/web/pleroma_api/views/chat/message_reference_view.ex new file mode 100644 index 000000000..f2112a86e --- /dev/null +++ b/lib/pleroma/web/pleroma_api/views/chat/message_reference_view.ex @@ -0,0 +1,45 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.Chat.MessageReferenceView do + use Pleroma.Web, :view + + alias Pleroma.User + alias Pleroma.Web.CommonAPI.Utils + alias Pleroma.Web.MastodonAPI.StatusView + + def render( + "show.json", + %{ + chat_message_reference: %{ + id: id, + object: %{data: chat_message}, + chat_id: chat_id, + unread: unread + } + } + ) do + %{ + id: id |> to_string(), + content: chat_message["content"], + chat_id: chat_id |> to_string(), + account_id: User.get_cached_by_ap_id(chat_message["actor"]).id, + created_at: Utils.to_masto_date(chat_message["published"]), + emojis: StatusView.build_emojis(chat_message["emoji"]), + attachment: + chat_message["attachment"] && + StatusView.render("attachment.json", attachment: chat_message["attachment"]), + unread: unread + } + end + + def render("index.json", opts) do + render_many( + opts[:chat_message_references], + __MODULE__, + "show.json", + Map.put(opts, :as, :chat_message_reference) + ) + end +end diff --git a/lib/pleroma/web/pleroma_api/views/chat_view.ex b/lib/pleroma/web/pleroma_api/views/chat_view.ex new file mode 100644 index 000000000..1c996da11 --- /dev/null +++ b/lib/pleroma/web/pleroma_api/views/chat_view.ex @@ -0,0 +1,33 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.ChatView do + use Pleroma.Web, :view + + alias Pleroma.Chat + alias Pleroma.Chat.MessageReference + alias Pleroma.User + alias Pleroma.Web.CommonAPI.Utils + alias Pleroma.Web.MastodonAPI.AccountView + alias Pleroma.Web.PleromaAPI.Chat.MessageReferenceView + + def render("show.json", %{chat: %Chat{} = chat} = opts) do + recipient = User.get_cached_by_ap_id(chat.recipient) + last_message = opts[:last_message] || MessageReference.last_message_for_chat(chat) + + %{ + id: chat.id |> to_string(), + account: AccountView.render("show.json", Map.put(opts, :user, recipient)), + unread: MessageReference.unread_count_for_chat(chat), + last_message: + last_message && + MessageReferenceView.render("show.json", chat_message_reference: last_message), + updated_at: Utils.to_masto_date(chat.updated_at) + } + end + + def render("index.json", %{chats: chats}) do + render_many(chats, __MODULE__, "show.json") + end +end diff --git a/lib/pleroma/web/pleroma_api/views/emoji_reaction_view.ex b/lib/pleroma/web/pleroma_api/views/emoji_reaction_view.ex new file mode 100644 index 000000000..84d2d303d --- /dev/null +++ b/lib/pleroma/web/pleroma_api/views/emoji_reaction_view.ex @@ -0,0 +1,33 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.EmojiReactionView do + use Pleroma.Web, :view + + alias Pleroma.Web.MastodonAPI.AccountView + + def render("index.json", %{emoji_reactions: emoji_reactions} = opts) do + render_many(emoji_reactions, __MODULE__, "show.json", opts) + end + + def render("show.json", %{emoji_reaction: [emoji, user_ap_ids], user: user}) do + users = fetch_users(user_ap_ids) + + %{ + name: emoji, + count: length(users), + accounts: render(AccountView, "index.json", users: users, for: user, as: :user), + me: !!(user && user.ap_id in user_ap_ids) + } + end + + defp fetch_users(user_ap_ids) do + user_ap_ids + |> Enum.map(&Pleroma.User.get_cached_by_ap_id/1) + |> Enum.filter(fn + %{deactivated: false} -> true + _ -> false + end) + end +end diff --git a/lib/pleroma/web/pleroma_api/views/scrobble_view.ex b/lib/pleroma/web/pleroma_api/views/scrobble_view.ex new file mode 100644 index 000000000..bbff93abe --- /dev/null +++ b/lib/pleroma/web/pleroma_api/views/scrobble_view.ex @@ -0,0 +1,37 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.ScrobbleView do + use Pleroma.Web, :view + + require Pleroma.Constants + + alias Pleroma.Activity + alias Pleroma.HTML + alias Pleroma.Object + alias Pleroma.Web.CommonAPI.Utils + alias Pleroma.Web.MastodonAPI.AccountView + alias Pleroma.Web.MastodonAPI.StatusView + + def render("show.json", %{activity: %Activity{data: %{"type" => "Listen"}} = activity} = opts) do + object = Object.normalize(activity) + + user = StatusView.get_user(activity.data["actor"]) + created_at = Utils.to_masto_date(activity.data["published"]) + + %{ + id: activity.id, + account: AccountView.render("show.json", %{user: user, for: opts[:for]}), + created_at: created_at, + title: object.data["title"] |> HTML.strip_tags(), + artist: object.data["artist"] |> HTML.strip_tags(), + album: object.data["album"] |> HTML.strip_tags(), + length: object.data["length"] + } + end + + def render("index.json", opts) do + safe_render_many(opts.activities, __MODULE__, "show.json", opts) + end +end diff --git a/lib/pleroma/web/preload.ex b/lib/pleroma/web/preload.ex new file mode 100644 index 000000000..90e454468 --- /dev/null +++ b/lib/pleroma/web/preload.ex @@ -0,0 +1,36 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Preload do + alias Phoenix.HTML + require Logger + + def build_tags(_conn, params) do + preload_data = + Enum.reduce(Pleroma.Config.get([__MODULE__, :providers], []), %{}, fn parser, acc -> + terms = + params + |> parser.generate_terms() + |> Enum.map(fn {k, v} -> {k, Base.encode64(Jason.encode!(v))} end) + |> Enum.into(%{}) + + Map.merge(acc, terms) + end) + + rendered_html = + preload_data + |> Jason.encode!() + |> build_script_tag() + |> HTML.safe_to_string() + + rendered_html + end + + def build_script_tag(content) do + HTML.Tag.content_tag(:script, HTML.raw(content), + id: "initial-results", + type: "application/json" + ) + end +end diff --git a/lib/pleroma/web/preload/instance.ex b/lib/pleroma/web/preload/instance.ex new file mode 100644 index 000000000..0b6fd3313 --- /dev/null +++ b/lib/pleroma/web/preload/instance.ex @@ -0,0 +1,49 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Preload.Providers.Instance do + alias Pleroma.Web.MastodonAPI.InstanceView + alias Pleroma.Web.Nodeinfo.Nodeinfo + alias Pleroma.Web.Preload.Providers.Provider + + @behaviour Provider + @instance_url :"/api/v1/instance" + @panel_url :"/instance/panel.html" + @nodeinfo_url :"/nodeinfo/2.0" + + @impl Provider + def generate_terms(_params) do + %{} + |> build_info_tag() + |> build_panel_tag() + |> build_nodeinfo_tag() + end + + defp build_info_tag(acc) do + info_data = InstanceView.render("show.json", %{}) + + Map.put(acc, @instance_url, info_data) + end + + defp build_panel_tag(acc) do + instance_path = Path.join(:code.priv_dir(:pleroma), "static/instance/panel.html") + + if File.exists?(instance_path) do + panel_data = File.read!(instance_path) + Map.put(acc, @panel_url, panel_data) + else + acc + end + end + + defp build_nodeinfo_tag(acc) do + case Nodeinfo.get_nodeinfo("2.0") do + {:error, _} -> + acc + + nodeinfo_data -> + Map.put(acc, @nodeinfo_url, nodeinfo_data) + end + end +end diff --git a/lib/pleroma/web/preload/provider.ex b/lib/pleroma/web/preload/provider.ex new file mode 100644 index 000000000..7ef595a34 --- /dev/null +++ b/lib/pleroma/web/preload/provider.ex @@ -0,0 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Preload.Providers.Provider do + @callback generate_terms(map()) :: map() +end diff --git a/lib/pleroma/web/preload/status_net.ex b/lib/pleroma/web/preload/status_net.ex new file mode 100644 index 000000000..367442d5c --- /dev/null +++ b/lib/pleroma/web/preload/status_net.ex @@ -0,0 +1,24 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Preload.Providers.StatusNet do + alias Pleroma.Web.Preload.Providers.Provider + alias Pleroma.Web.TwitterAPI.UtilView + + @behaviour Provider + @config_url :"/api/statusnet/config.json" + + @impl Provider + def generate_terms(_params) do + %{} + |> build_config_tag() + end + + defp build_config_tag(acc) do + instance = Pleroma.Config.get(:instance) + info_data = UtilView.status_net_config(instance) + + Map.put(acc, @config_url, info_data) + end +end diff --git a/lib/pleroma/web/preload/timelines.ex b/lib/pleroma/web/preload/timelines.ex new file mode 100644 index 000000000..e531b8960 --- /dev/null +++ b/lib/pleroma/web/preload/timelines.ex @@ -0,0 +1,39 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Preload.Providers.Timelines do + alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.MastodonAPI.StatusView + alias Pleroma.Web.Preload.Providers.Provider + + @behaviour Provider + @public_url :"/api/v1/timelines/public" + + @impl Provider + def generate_terms(params) do + build_public_tag(%{}, params) + end + + def build_public_tag(acc, params) do + if Pleroma.Config.get([:restrict_unauthenticated, :timelines, :federated], true) do + acc + else + Map.put(acc, @public_url, public_timeline(params)) + end + end + + defp public_timeline(%{"path" => ["main", "all"]}), do: get_public_timeline(false) + + defp public_timeline(_params), do: get_public_timeline(true) + + defp get_public_timeline(local_only) do + activities = + ActivityPub.fetch_public_activities(%{ + type: ["Create"], + local_only: local_only + }) + + StatusView.render("index.json", activities: activities, for: nil, as: :activity) + end +end diff --git a/lib/pleroma/web/preload/user.ex b/lib/pleroma/web/preload/user.ex new file mode 100644 index 000000000..3a244845b --- /dev/null +++ b/lib/pleroma/web/preload/user.ex @@ -0,0 +1,25 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Preload.Providers.User do + alias Pleroma.Web.MastodonAPI.AccountView + alias Pleroma.Web.Preload.Providers.Provider + + @behaviour Provider + @account_url :"/api/v1/accounts" + + @impl Provider + def generate_terms(%{user: user}) do + build_accounts_tag(%{}, user) + end + + def generate_terms(_params), do: %{} + + def build_accounts_tag(acc, nil), do: acc + + def build_accounts_tag(acc, user) do + account_data = AccountView.render("show.json", %{user: user, for: user}) + Map.put(acc, @account_url, account_data) + end +end diff --git a/lib/pleroma/web/push/impl.ex b/lib/pleroma/web/push/impl.ex index 691725702..cdb827e76 100644 --- a/lib/pleroma/web/push/impl.ex +++ b/lib/pleroma/web/push/impl.ex @@ -16,8 +16,6 @@ defmodule Pleroma.Web.Push.Impl do require Logger import Ecto.Query - defdelegate mastodon_notification_type(activity), to: Activity - @types ["Create", "Follow", "Announce", "Like", "Move"] @doc "Performs sending notifications for user subscriptions" @@ -31,10 +29,10 @@ def perform( when activity_type in @types do actor = User.get_cached_by_ap_id(notification.activity.data["actor"]) - mastodon_type = mastodon_notification_type(notification.activity) + mastodon_type = notification.type gcm_api_key = Application.get_env(:web_push_encryption, :gcm_api_key) avatar_url = User.avatar_url(actor) - object = Object.normalize(activity) + object = Object.normalize(activity, false) user = User.get_cached_by_id(user_id) direct_conversation_id = Activity.direct_conversation_id(activity, user) @@ -116,7 +114,7 @@ def build_content( end def build_content(notification, actor, object, mastodon_type) do - mastodon_type = mastodon_type || mastodon_notification_type(notification.activity) + mastodon_type = mastodon_type || notification.type %{ title: format_title(notification, mastodon_type), @@ -126,6 +124,13 @@ def build_content(notification, actor, object, mastodon_type) do def format_body(activity, actor, object, mastodon_type \\ nil) + def format_body(_activity, actor, %{data: %{"type" => "ChatMessage", "content" => content}}, _) do + case content do + nil -> "@#{actor.nickname}: (Attachment)" + content -> "@#{actor.nickname}: #{Utils.scrub_html_and_truncate(content, 80)}" + end + end + def format_body( %{activity: %{data: %{"type" => "Create"}}}, actor, @@ -151,7 +156,7 @@ def format_body( mastodon_type ) when type in ["Follow", "Like"] do - mastodon_type = mastodon_type || mastodon_notification_type(notification.activity) + mastodon_type = mastodon_type || notification.type case mastodon_type do "follow" -> "@#{actor.nickname} has followed you" @@ -166,15 +171,14 @@ def format_title(%{activity: %{data: %{"directMessage" => true}}}, _mastodon_typ "New Direct Message" end - def format_title(%{activity: activity}, mastodon_type) do - mastodon_type = mastodon_type || mastodon_notification_type(activity) - - case mastodon_type do + def format_title(%{type: type}, mastodon_type) do + case mastodon_type || type do "mention" -> "New Mention" "follow" -> "New Follower" "follow_request" -> "New Follow Request" "reblog" -> "New Repeat" "favourite" -> "New Favorite" + "pleroma:chat_mention" -> "New Chat Message" type -> "New #{String.capitalize(type || "event")}" end end diff --git a/lib/pleroma/web/push/subscription.ex b/lib/pleroma/web/push/subscription.ex index 3e401a490..5b5aa0d59 100644 --- a/lib/pleroma/web/push/subscription.ex +++ b/lib/pleroma/web/push/subscription.ex @@ -25,7 +25,7 @@ defmodule Pleroma.Web.Push.Subscription do timestamps() end - @supported_alert_types ~w[follow favourite mention reblog]a + @supported_alert_types ~w[follow favourite mention reblog pleroma:chat_mention]a defp alerts(%{data: %{alerts: alerts}}) do alerts = Map.take(alerts, @supported_alert_types) diff --git a/lib/pleroma/web/rich_media/helpers.ex b/lib/pleroma/web/rich_media/helpers.ex index 9d3d7f978..1729141e9 100644 --- a/lib/pleroma/web/rich_media/helpers.ex +++ b/lib/pleroma/web/rich_media/helpers.ex @@ -9,7 +9,7 @@ defmodule Pleroma.Web.RichMedia.Helpers do alias Pleroma.Object alias Pleroma.Web.RichMedia.Parser - @spec validate_page_url(any()) :: :ok | :error + @spec validate_page_url(URI.t() | binary()) :: :ok | :error defp validate_page_url(page_url) when is_binary(page_url) do validate_tld = Application.get_env(:auto_linker, :opts)[:validate_tld] @@ -18,8 +18,8 @@ defp validate_page_url(page_url) when is_binary(page_url) do |> parse_uri(page_url) end - defp validate_page_url(%URI{host: host, scheme: scheme, authority: authority}) - when scheme == "https" and not is_nil(authority) do + defp validate_page_url(%URI{host: host, scheme: "https", authority: authority}) + when is_binary(authority) do cond do host in Config.get([:rich_media, :ignore_hosts], []) -> :error diff --git a/lib/pleroma/web/rich_media/parser.ex b/lib/pleroma/web/rich_media/parser.ex index 40980def8..ef5ead2da 100644 --- a/lib/pleroma/web/rich_media/parser.ex +++ b/lib/pleroma/web/rich_media/parser.ex @@ -91,7 +91,7 @@ defp parse_url(url) do html |> parse_html() |> maybe_parse() - |> Map.put(:url, url) + |> Map.put("url", url) |> clean_parsed_data() |> check_parsed_data() rescue @@ -105,14 +105,14 @@ defp parse_html(html), do: Floki.parse_document!(html) defp maybe_parse(html) do Enum.reduce_while(parsers(), %{}, fn parser, acc -> case parser.parse(html, acc) do - {:ok, data} -> {:halt, data} - {:error, _msg} -> {:cont, acc} + data when data != %{} -> {:halt, data} + _ -> {:cont, acc} end end) end - defp check_parsed_data(%{title: title} = data) - when is_binary(title) and byte_size(title) > 0 do + defp check_parsed_data(%{"title" => title} = data) + when is_binary(title) and title != "" do {:ok, data} end @@ -123,11 +123,7 @@ defp check_parsed_data(data) do defp clean_parsed_data(data) do data |> Enum.reject(fn {key, val} -> - with {:ok, _} <- Jason.encode(%{key => val}) do - false - else - _ -> true - end + not match?({:ok, _}, Jason.encode(%{key => val})) end) |> Map.new() end diff --git a/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex b/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex index ae0f36702..3d577e254 100644 --- a/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex +++ b/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex @@ -3,22 +3,15 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.RichMedia.Parsers.MetaTagsParser do - def parse(html, data, prefix, error_message, key_name, value_name \\ "content") do - meta_data = - html - |> get_elements(key_name, prefix) - |> Enum.reduce(data, fn el, acc -> - attributes = normalize_attributes(el, prefix, key_name, value_name) + def parse(data, html, prefix, key_name, value_name \\ "content") do + html + |> get_elements(key_name, prefix) + |> Enum.reduce(data, fn el, acc -> + attributes = normalize_attributes(el, prefix, key_name, value_name) - Map.merge(acc, attributes) - end) - |> maybe_put_title(html) - - if Enum.empty?(meta_data) do - {:error, error_message} - else - {:ok, meta_data} - end + Map.merge(acc, attributes) + end) + |> maybe_put_title(html) end defp get_elements(html, key_name, prefix) do @@ -29,19 +22,19 @@ defp normalize_attributes(html_node, prefix, key_name, value_name) do {_tag, attributes, _children} = html_node data = - Enum.into(attributes, %{}, fn {name, value} -> + Map.new(attributes, fn {name, value} -> {name, String.trim_leading(value, "#{prefix}:")} end) - %{String.to_atom(data[key_name]) => data[value_name]} + %{data[key_name] => data[value_name]} end - defp maybe_put_title(%{title: _} = meta, _), do: meta + defp maybe_put_title(%{"title" => _} = meta, _), do: meta defp maybe_put_title(meta, html) when meta != %{} do case get_page_title(html) do "" -> meta - title -> Map.put_new(meta, :title, title) + title -> Map.put_new(meta, "title", title) end end diff --git a/lib/pleroma/web/rich_media/parsers/oembed_parser.ex b/lib/pleroma/web/rich_media/parsers/oembed_parser.ex index 8f32bf91b..6bdeac89c 100644 --- a/lib/pleroma/web/rich_media/parsers/oembed_parser.ex +++ b/lib/pleroma/web/rich_media/parsers/oembed_parser.ex @@ -5,11 +5,11 @@ defmodule Pleroma.Web.RichMedia.Parsers.OEmbed do def parse(html, _data) do with elements = [_ | _] <- get_discovery_data(html), - {:ok, oembed_url} <- get_oembed_url(elements), + oembed_url when is_binary(oembed_url) <- get_oembed_url(elements), {:ok, oembed_data} <- get_oembed_data(oembed_url) do - {:ok, oembed_data} + oembed_data else - _e -> {:error, "No OEmbed data found"} + _e -> %{} end end @@ -17,19 +17,13 @@ defp get_discovery_data(html) do html |> Floki.find("link[type='application/json+oembed']") end - defp get_oembed_url(nodes) do - {"link", attributes, _children} = nodes |> hd() - - {:ok, Enum.into(attributes, %{})["href"]} + defp get_oembed_url([{"link", attributes, _children} | _]) do + Enum.find_value(attributes, fn {k, v} -> if k == "href", do: v end) end defp get_oembed_data(url) do - {:ok, %Tesla.Env{body: json}} = Pleroma.HTTP.get(url, [], adapter: [pool: :media]) - - {:ok, data} = Jason.decode(json) - - data = data |> Map.new(fn {k, v} -> {String.to_atom(k), v} end) - - {:ok, data} + with {:ok, %Tesla.Env{body: json}} <- Pleroma.HTTP.get(url, [], adapter: [pool: :media]) do + Jason.decode(json) + end end end diff --git a/lib/pleroma/web/rich_media/parsers/ogp.ex b/lib/pleroma/web/rich_media/parsers/ogp.ex index 3e9012588..b3b3b059c 100644 --- a/lib/pleroma/web/rich_media/parsers/ogp.ex +++ b/lib/pleroma/web/rich_media/parsers/ogp.ex @@ -3,13 +3,8 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.RichMedia.Parsers.OGP do - def parse(html, data) do - Pleroma.Web.RichMedia.Parsers.MetaTagsParser.parse( - html, - data, - "og", - "No OGP metadata found", - "property" - ) + @deprecated "OGP parser is deprecated. Use TwitterCard instead." + def parse(_html, _data) do + %{} end end diff --git a/lib/pleroma/web/rich_media/parsers/twitter_card.ex b/lib/pleroma/web/rich_media/parsers/twitter_card.ex index 09d4b526e..4a04865d2 100644 --- a/lib/pleroma/web/rich_media/parsers/twitter_card.ex +++ b/lib/pleroma/web/rich_media/parsers/twitter_card.ex @@ -5,18 +5,11 @@ defmodule Pleroma.Web.RichMedia.Parsers.TwitterCard do alias Pleroma.Web.RichMedia.Parsers.MetaTagsParser - @spec parse(String.t(), map()) :: {:ok, map()} | {:error, String.t()} + @spec parse(list(), map()) :: map() def parse(html, data) do data - |> parse_name_attrs(html) - |> parse_property_attrs(html) - end - - defp parse_name_attrs(data, html) do - MetaTagsParser.parse(html, data, "twitter", %{}, "name") - end - - defp parse_property_attrs({_, data}, html) do - MetaTagsParser.parse(html, data, "twitter", "No twitter card metadata found", "property") + |> MetaTagsParser.parse(html, "og", "property") + |> MetaTagsParser.parse(html, "twitter", "name") + |> MetaTagsParser.parse(html, "twitter", "property") end end diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 82cfec7bb..930bf7314 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -160,14 +160,14 @@ defmodule Pleroma.Web.Router do :right_delete_multiple ) - get("/relay", AdminAPIController, :relay_list) - post("/relay", AdminAPIController, :relay_follow) - delete("/relay", AdminAPIController, :relay_unfollow) + get("/relay", RelayController, :index) + post("/relay", RelayController, :follow) + delete("/relay", RelayController, :unfollow) - post("/users/invite_token", AdminAPIController, :create_invite_token) - get("/users/invites", AdminAPIController, :invites) - post("/users/revoke_invite", AdminAPIController, :revoke_invite) - post("/users/email_invite", AdminAPIController, :email_invite) + post("/users/invite_token", InviteController, :create) + get("/users/invites", InviteController, :index) + post("/users/revoke_invite", InviteController, :revoke) + post("/users/email_invite", InviteController, :email) get("/users/:nickname/password_reset", AdminAPIController, :get_password_reset) patch("/users/force_password_reset", AdminAPIController, :force_password_reset) @@ -183,20 +183,20 @@ defmodule Pleroma.Web.Router do patch("/users/confirm_email", AdminAPIController, :confirm_email) patch("/users/resend_confirmation_email", AdminAPIController, :resend_confirmation_email) - get("/reports", AdminAPIController, :list_reports) - get("/reports/:id", AdminAPIController, :report_show) - patch("/reports", AdminAPIController, :reports_update) - post("/reports/:id/notes", AdminAPIController, :report_notes_create) - delete("/reports/:report_id/notes/:id", AdminAPIController, :report_notes_delete) + get("/reports", ReportController, :index) + get("/reports/:id", ReportController, :show) + patch("/reports", ReportController, :update) + post("/reports/:id/notes", ReportController, :notes_create) + delete("/reports/:report_id/notes/:id", ReportController, :notes_delete) - get("/statuses/:id", AdminAPIController, :status_show) - put("/statuses/:id", AdminAPIController, :status_update) - delete("/statuses/:id", AdminAPIController, :status_delete) - get("/statuses", AdminAPIController, :list_statuses) + get("/statuses/:id", StatusController, :show) + put("/statuses/:id", StatusController, :update) + delete("/statuses/:id", StatusController, :delete) + get("/statuses", StatusController, :index) - get("/config", AdminAPIController, :config_show) - post("/config", AdminAPIController, :config_update) - get("/config/descriptions", AdminAPIController, :config_descriptions) + get("/config", ConfigController, :show) + post("/config", ConfigController, :update) + get("/config/descriptions", ConfigController, :descriptions) get("/need_reboot", AdminAPIController, :need_reboot) get("/restart", AdminAPIController, :restart) @@ -205,10 +205,14 @@ defmodule Pleroma.Web.Router do post("/reload_emoji", AdminAPIController, :reload_emoji) get("/stats", AdminAPIController, :stats) - get("/oauth_app", AdminAPIController, :oauth_app_list) - post("/oauth_app", AdminAPIController, :oauth_app_create) - patch("/oauth_app/:id", AdminAPIController, :oauth_app_update) - delete("/oauth_app/:id", AdminAPIController, :oauth_app_delete) + get("/oauth_app", OAuthAppController, :index) + post("/oauth_app", OAuthAppController, :create) + patch("/oauth_app/:id", OAuthAppController, :update) + delete("/oauth_app/:id", OAuthAppController, :delete) + + get("/media_proxy_caches", MediaProxyCacheController, :index) + post("/media_proxy_caches/delete", MediaProxyCacheController, :delete) + post("/media_proxy_caches/purge", MediaProxyCacheController, :purge) end scope "/api/pleroma/emoji", Pleroma.Web.PleromaAPI do @@ -216,24 +220,25 @@ defmodule Pleroma.Web.Router do scope "/packs" do pipe_through(:admin_api) - get("/import", EmojiAPIController, :import_from_filesystem) - get("/remote", EmojiAPIController, :remote) - post("/download", EmojiAPIController, :download) + get("/import", EmojiPackController, :import_from_filesystem) + get("/remote", EmojiPackController, :remote) + post("/download", EmojiPackController, :download) - post("/:name", EmojiAPIController, :create) - patch("/:name", EmojiAPIController, :update) - delete("/:name", EmojiAPIController, :delete) + post("/:name", EmojiPackController, :create) + patch("/:name", EmojiPackController, :update) + delete("/:name", EmojiPackController, :delete) - post("/:name/files", EmojiAPIController, :add_file) - patch("/:name/files", EmojiAPIController, :update_file) - delete("/:name/files", EmojiAPIController, :delete_file) + post("/:name/files", EmojiPackController, :add_file) + patch("/:name/files", EmojiPackController, :update_file) + delete("/:name/files", EmojiPackController, :delete_file) end # Pack info / downloading scope "/packs" do - get("/", EmojiAPIController, :list) - get("/:name", EmojiAPIController, :show) - get("/:name/archive", EmojiAPIController, :archive) + pipe_through(:api) + get("/", EmojiPackController, :index) + get("/:name", EmojiPackController, :show) + get("/:name/archive", EmojiPackController, :archive) end end @@ -297,26 +302,31 @@ defmodule Pleroma.Web.Router do scope "/api/v1/pleroma", Pleroma.Web.PleromaAPI do pipe_through(:api) - get("/statuses/:id/reactions/:emoji", PleromaAPIController, :emoji_reactions_by) - get("/statuses/:id/reactions", PleromaAPIController, :emoji_reactions_by) + get("/statuses/:id/reactions/:emoji", EmojiReactionController, :index) + get("/statuses/:id/reactions", EmojiReactionController, :index) end scope "/api/v1/pleroma", Pleroma.Web.PleromaAPI do scope [] do pipe_through(:authenticated_api) - get("/conversations/:id/statuses", PleromaAPIController, :conversation_statuses) - get("/conversations/:id", PleromaAPIController, :conversation) - post("/conversations/read", PleromaAPIController, :mark_conversations_as_read) - end + post("/chats/by-account-id/:id", ChatController, :create) + get("/chats", ChatController, :index) + get("/chats/:id", ChatController, :show) + get("/chats/:id/messages", ChatController, :messages) + post("/chats/:id/messages", ChatController, :post_chat_message) + delete("/chats/:id/messages/:message_id", ChatController, :delete_message) + post("/chats/:id/read", ChatController, :mark_as_read) + post("/chats/:id/messages/:message_id/read", ChatController, :mark_message_as_read) - scope [] do - pipe_through(:authenticated_api) + get("/conversations/:id/statuses", ConversationController, :statuses) + get("/conversations/:id", ConversationController, :show) + post("/conversations/read", ConversationController, :mark_as_read) + patch("/conversations/:id", ConversationController, :update) - patch("/conversations/:id", PleromaAPIController, :update_conversation) - put("/statuses/:id/reactions/:emoji", PleromaAPIController, :react_with_emoji) - delete("/statuses/:id/reactions/:emoji", PleromaAPIController, :unreact_with_emoji) - post("/notifications/read", PleromaAPIController, :mark_notifications_as_read) + put("/statuses/:id/reactions/:emoji", EmojiReactionController, :create) + delete("/statuses/:id/reactions/:emoji", EmojiReactionController, :delete) + post("/notifications/read", NotificationController, :mark_as_read) patch("/accounts/update_avatar", AccountController, :update_avatar) patch("/accounts/update_banner", AccountController, :update_banner) @@ -325,7 +335,7 @@ defmodule Pleroma.Web.Router do get("/mascot", MascotController, :show) put("/mascot", MascotController, :update) - post("/scrobble", ScrobbleController, :new_scrobble) + post("/scrobble", ScrobbleController, :create) end scope [] do @@ -345,7 +355,7 @@ defmodule Pleroma.Web.Router do scope "/api/v1/pleroma", Pleroma.Web.PleromaAPI do pipe_through(:api) - get("/accounts/:id/scrobbles", ScrobbleController, :user_scrobbles) + get("/accounts/:id/scrobbles", ScrobbleController, :index) end scope "/api/v1", Pleroma.Web.MastodonAPI do @@ -403,6 +413,7 @@ defmodule Pleroma.Web.Router do post("/markers", MarkerController, :upsert) post("/media", MediaController, :create) + get("/media/:id", MediaController, :show) put("/media/:id", MediaController, :update) get("/notifications", NotificationController, :index) @@ -456,6 +467,7 @@ defmodule Pleroma.Web.Router do scope "/api/web", Pleroma.Web do pipe_through(:authenticated_api) + # Backend-obscure settings blob for MastoFE, don't parse/reuse elsewhere put("/settings", MastoFEController, :put_settings) end @@ -497,6 +509,8 @@ defmodule Pleroma.Web.Router do scope "/api/v2", Pleroma.Web.MastodonAPI do pipe_through(:api) get("/search", SearchController, :search2) + + post("/media", MediaController, :create2) end scope "/api", Pleroma.Web do @@ -555,6 +569,10 @@ defmodule Pleroma.Web.Router do get("/notice/:id", OStatus.OStatusController, :notice) get("/notice/:id/embed_player", OStatus.OStatusController, :notice_player) + # Mastodon compatibility routes + get("/users/:nickname/statuses/:id", OStatus.OStatusController, :object) + get("/users/:nickname/statuses/:id/activity", OStatus.OStatusController, :activity) + get("/users/:nickname/feed", Feed.UserController, :feed, as: :user_feed) get("/users/:nickname", Feed.UserController, :feed_redirect, as: :user_feed) @@ -566,13 +584,6 @@ defmodule Pleroma.Web.Router do get("/mailer/unsubscribe/:token", Mailer.SubscriptionController, :unsubscribe) end - scope "/", Pleroma.Web.ActivityPub do - # XXX: not really ostatus - pipe_through(:ostatus) - - get("/users/:nickname/outbox", ActivityPubController, :outbox) - end - pipeline :ap_service_actor do plug(:accepts, ["activity+json", "json"]) end @@ -597,6 +608,7 @@ defmodule Pleroma.Web.Router do get("/api/ap/whoami", ActivityPubController, :whoami) get("/users/:nickname/inbox", ActivityPubController, :read_inbox) + get("/users/:nickname/outbox", ActivityPubController, :outbox) post("/users/:nickname/outbox", ActivityPubController, :update_outbox) post("/api/ap/upload_media", ActivityPubController, :upload_media) @@ -659,6 +671,8 @@ defmodule Pleroma.Web.Router do post("/auth/password", MastodonAPI.AuthController, :password_reset) get("/web/*path", MastoFEController, :index) + + get("/embed/:id", EmbedController, :show) end scope "/proxy/", Pleroma.Web.MediaProxy do @@ -711,7 +725,7 @@ defmodule Pleroma.Web.Router do get("/registration/:token", RedirectController, :registration_page) get("/:maybe_nickname_or_id", RedirectController, :redirector_with_meta) get("/api*path", RedirectController, :api_not_implemented) - get("/*path", RedirectController, :redirector) + get("/*path", RedirectController, :redirector_with_preload) options("/*path", RedirectController, :empty) end diff --git a/lib/pleroma/web/static_fe/static_fe_controller.ex b/lib/pleroma/web/static_fe/static_fe_controller.ex index c3efb6651..a7a891b13 100644 --- a/lib/pleroma/web/static_fe/static_fe_controller.ex +++ b/lib/pleroma/web/static_fe/static_fe_controller.ex @@ -111,8 +111,14 @@ def show(%{assigns: %{username_or_id: username_or_id}} = conn, params) do %User{} = user -> meta = Metadata.build_tags(%{user: user}) + params = + params + |> Map.take(@page_keys) + |> Map.new(fn {k, v} -> {String.to_existing_atom(k), v} end) + timeline = - ActivityPub.fetch_user_activities(user, nil, Map.take(params, @page_keys)) + user + |> ActivityPub.fetch_user_activities(nil, params) |> Enum.map(&represent/1) prev_page_id = diff --git a/lib/pleroma/web/streamer/streamer.ex b/lib/pleroma/web/streamer/streamer.ex index 49a400df7..d1d2c9b9c 100644 --- a/lib/pleroma/web/streamer/streamer.ex +++ b/lib/pleroma/web/streamer/streamer.ex @@ -6,6 +6,7 @@ defmodule Pleroma.Web.Streamer do require Logger alias Pleroma.Activity + alias Pleroma.Chat.MessageReference alias Pleroma.Config alias Pleroma.Conversation.Participation alias Pleroma.Notification @@ -22,7 +23,7 @@ defmodule Pleroma.Web.Streamer do def registry, do: @registry @public_streams ["public", "public:local", "public:media", "public:local:media"] - @user_streams ["user", "user:notification", "direct"] + @user_streams ["user", "user:notification", "direct", "user:pleroma_chat"] @doc "Expands and authorizes a stream, and registers the process for streaming." @spec get_topic_and_add_socket(stream :: String.t(), User.t() | nil, Map.t() | nil) :: @@ -89,34 +90,20 @@ def remove_socket(topic) do if should_env_send?(), do: Registry.unregister(@registry, topic) end - def stream(topics, item) when is_list(topics) do + def stream(topics, items) do if should_env_send?() do - Enum.each(topics, fn t -> - spawn(fn -> do_stream(t, item) end) + List.wrap(topics) + |> Enum.each(fn topic -> + List.wrap(items) + |> Enum.each(fn item -> + spawn(fn -> do_stream(topic, item) end) + end) end) end :ok end - def stream(topic, items) when is_list(items) do - if should_env_send?() do - Enum.each(items, fn i -> - spawn(fn -> do_stream(topic, i) end) - end) - - :ok - end - end - - def stream(topic, item) do - if should_env_send?() do - spawn(fn -> do_stream(topic, item) end) - end - - :ok - end - def filtered_by_user?(%User{} = user, %Activity{} = item) do %{block: blocked_ap_ids, mute: muted_ap_ids, reblog_mute: reblog_muted_ap_ids} = User.outgoing_relationships_ap_ids(user, [:block, :mute, :reblog_mute]) @@ -136,7 +123,7 @@ def filtered_by_user?(%User{} = user, %Activity{} = item) do false <- Pleroma.Web.ActivityPub.MRF.subdomain_match?(domain_blocks, item_host), false <- Pleroma.Web.ActivityPub.MRF.subdomain_match?(domain_blocks, parent_host), true <- thread_containment(item, user), - false <- CommonAPI.thread_muted?(user, item) do + false <- CommonAPI.thread_muted?(user, parent) do false else _ -> true @@ -200,6 +187,19 @@ defp do_stream(topic, %Notification{} = item) end) end + defp do_stream(topic, {user, %MessageReference{} = cm_ref}) + when topic in ["user", "user:pleroma_chat"] do + topic = "#{topic}:#{user.id}" + + text = StreamerView.render("chat_update.json", %{chat_message_reference: cm_ref}) + + Registry.dispatch(@registry, topic, fn list -> + Enum.each(list, fn {pid, _auth} -> + send(pid, {:text, text}) + end) + end) + end + defp do_stream("user", item) do Logger.debug("Trying to push to users") diff --git a/lib/pleroma/web/templates/embed/_attachment.html.eex b/lib/pleroma/web/templates/embed/_attachment.html.eex new file mode 100644 index 000000000..7e04e9550 --- /dev/null +++ b/lib/pleroma/web/templates/embed/_attachment.html.eex @@ -0,0 +1,8 @@ +<%= case @mediaType do %> +<% "audio" -> %> + +<% "video" -> %> + +<% _ -> %> +<%= @name %> +<% end %> diff --git a/lib/pleroma/web/templates/embed/show.html.eex b/lib/pleroma/web/templates/embed/show.html.eex new file mode 100644 index 000000000..05a3f0ee3 --- /dev/null +++ b/lib/pleroma/web/templates/embed/show.html.eex @@ -0,0 +1,76 @@ +
+ + +
+ <%= if status_title(@activity) != "" do %> +
open<% end %>> + <%= raw status_title(@activity) %> +
<%= activity_content(@activity) %>
+
+ <% else %> +
<%= activity_content(@activity) %>
+ <% end %> + <%= for %{"name" => name, "url" => [url | _]} <- attachments(@activity) do %> +
+ <%= if sensitive?(@activity) do %> +
+ <%= Gettext.gettext("sensitive media") %> +
+ <%= render("_attachment.html", %{name: name, url: url["href"], + mediaType: fetch_media_type(url)}) %> +
+
+ <% else %> + <%= render("_attachment.html", %{name: name, url: url["href"], + mediaType: fetch_media_type(url)}) %> + <% end %> +
+ <% end %> +
+ +
+
<%= Gettext.gettext("replies") %>
<%= @counts.replies %>
+
<%= Gettext.gettext("announces") %>
<%= @counts.announces %>
+
<%= Gettext.gettext("likes") %>
<%= @counts.likes %>
+
+ +

+ <%= link published(@activity), to: activity_url(@author, @activity) %> +

+
+ + diff --git a/lib/pleroma/web/templates/layout/embed.html.eex b/lib/pleroma/web/templates/layout/embed.html.eex new file mode 100644 index 000000000..8b905f070 --- /dev/null +++ b/lib/pleroma/web/templates/layout/embed.html.eex @@ -0,0 +1,15 @@ + + + + + + <%= Pleroma.Config.get([:instance, :name]) %> + + <%= Phoenix.HTML.raw(assigns[:meta] || "") %> + + + + + <%= render @view_module, @view_template, assigns %> + + diff --git a/lib/pleroma/web/twitter_api/controllers/util_controller.ex b/lib/pleroma/web/twitter_api/controllers/util_controller.ex index 76f4bb8f4..4ec523a4e 100644 --- a/lib/pleroma/web/twitter_api/controllers/util_controller.ex +++ b/lib/pleroma/web/twitter_api/controllers/util_controller.ex @@ -14,6 +14,7 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do alias Pleroma.Plugs.OAuthScopesPlug alias Pleroma.User alias Pleroma.Web.CommonAPI + alias Pleroma.Web.TwitterAPI.UtilView alias Pleroma.Web.WebFinger plug(Pleroma.Web.FederatingPlug when action == :remote_subscribe) diff --git a/lib/pleroma/web/twitter_api/views/util_view.ex b/lib/pleroma/web/twitter_api/views/util_view.ex index 52054e020..d3bdb4f62 100644 --- a/lib/pleroma/web/twitter_api/views/util_view.ex +++ b/lib/pleroma/web/twitter_api/views/util_view.ex @@ -5,4 +5,18 @@ defmodule Pleroma.Web.TwitterAPI.UtilView do use Pleroma.Web, :view import Phoenix.HTML.Form + alias Pleroma.Web + + def status_net_config(instance) do + """ + + + #{Keyword.get(instance, :name)} + #{Web.base_url()} + #{Keyword.get(instance, :limit)} + #{!Keyword.get(instance, :registrations_open)} + + + """ + end end diff --git a/lib/pleroma/web/views/embed_view.ex b/lib/pleroma/web/views/embed_view.ex new file mode 100644 index 000000000..5f50bd155 --- /dev/null +++ b/lib/pleroma/web/views/embed_view.ex @@ -0,0 +1,74 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.EmbedView do + use Pleroma.Web, :view + + alias Calendar.Strftime + alias Pleroma.Activity + alias Pleroma.Emoji.Formatter + alias Pleroma.Object + alias Pleroma.User + alias Pleroma.Web.Gettext + alias Pleroma.Web.MediaProxy + alias Pleroma.Web.Metadata.Utils + alias Pleroma.Web.Router.Helpers + + use Phoenix.HTML + + @media_types ["image", "audio", "video"] + + defp fetch_media_type(%{"mediaType" => mediaType}) do + Utils.fetch_media_type(@media_types, mediaType) + end + + defp open_content? do + Pleroma.Config.get( + [:frontend_configurations, :collapse_message_with_subjects], + true + ) + end + + defp full_nickname(user) do + %{host: host} = URI.parse(user.ap_id) + "@" <> user.nickname <> "@" <> host + end + + defp status_title(%Activity{object: %Object{data: %{"name" => name}}}) when is_binary(name), + do: name + + defp status_title(%Activity{object: %Object{data: %{"summary" => summary}}}) + when is_binary(summary), + do: summary + + defp status_title(_), do: nil + + defp activity_content(%Activity{object: %Object{data: %{"content" => content}}}) do + content |> Pleroma.HTML.filter_tags() |> raw() + end + + defp activity_content(_), do: nil + + defp activity_url(%User{local: true}, activity) do + Helpers.o_status_url(Pleroma.Web.Endpoint, :notice, activity) + end + + defp activity_url(%User{local: false}, %Activity{object: %Object{data: data}}) do + data["url"] || data["external_url"] || data["id"] + end + + defp attachments(%Activity{object: %Object{data: %{"attachment" => attachments}}}) do + attachments + end + + defp sensitive?(%Activity{object: %Object{data: %{"sensitive" => sensitive}}}) do + sensitive + end + + defp published(%Activity{object: %Object{data: %{"published" => published}}}) do + published + |> NaiveDateTime.from_iso8601!() + |> Strftime.strftime!("%B %d, %Y, %l:%M %p") + end +end diff --git a/lib/pleroma/web/views/streamer_view.ex b/lib/pleroma/web/views/streamer_view.ex index 237b29ded..476a33245 100644 --- a/lib/pleroma/web/views/streamer_view.ex +++ b/lib/pleroma/web/views/streamer_view.ex @@ -51,6 +51,29 @@ def render("update.json", %Activity{} = activity) do |> Jason.encode!() end + def render("chat_update.json", %{chat_message_reference: cm_ref}) do + # Explicitly giving the cmr for the object here, so we don't accidentally + # send a later 'last_message' that was inserted between inserting this and + # streaming it out + # + # It also contains the chat with a cache of the correct unread count + Logger.debug("Trying to stream out #{inspect(cm_ref)}") + + representation = + Pleroma.Web.PleromaAPI.ChatView.render( + "show.json", + %{last_message: cm_ref, chat: cm_ref.chat} + ) + + %{ + event: "pleroma:chat_update", + payload: + representation + |> Jason.encode!() + } + |> Jason.encode!() + end + def render("conversation.json", %Participation{} = participation) do %{ event: "conversation", diff --git a/lib/pleroma/workers/attachments_cleanup_worker.ex b/lib/pleroma/workers/attachments_cleanup_worker.ex index 3c5820a86..8deeabda0 100644 --- a/lib/pleroma/workers/attachments_cleanup_worker.ex +++ b/lib/pleroma/workers/attachments_cleanup_worker.ex @@ -18,78 +18,97 @@ def perform( }, _job ) do - hrefs = - Enum.flat_map(attachments, fn attachment -> - Enum.map(attachment["url"], & &1["href"]) - end) + attachments + |> Enum.flat_map(fn item -> Enum.map(item["url"], & &1["href"]) end) + |> fetch_objects + |> prepare_objects(actor, Enum.map(attachments, & &1["name"])) + |> filter_objects + |> do_clean - names = Enum.map(attachments, & &1["name"]) - - uploader = Pleroma.Config.get([Pleroma.Upload, :uploader]) - - # find all objects for copies of the attachments, name and actor doesn't matter here - delete_ids = - from(o in Object, - where: - fragment( - "to_jsonb(array(select jsonb_array_elements((?)#>'{url}') ->> 'href' where jsonb_typeof((?)#>'{url}') = 'array'))::jsonb \\?| (?)", - o.data, - o.data, - ^hrefs - ) - ) - # The query above can be time consumptive on large instances until we - # refactor how uploads are stored - |> Repo.all(timeout: :infinity) - # we should delete 1 object for any given attachment, but don't delete - # files if there are more than 1 object for it - |> Enum.reduce(%{}, fn %{ - id: id, - data: %{ - "url" => [%{"href" => href}], - "actor" => obj_actor, - "name" => name - } - }, - acc -> - Map.update(acc, href, %{id: id, count: 1}, fn val -> - case obj_actor == actor and name in names do - true -> - # set id of the actor's object that will be deleted - %{val | id: id, count: val.count + 1} - - false -> - # another actor's object, just increase count to not delete file - %{val | count: val.count + 1} - end - end) - end) - |> Enum.map(fn {href, %{id: id, count: count}} -> - # only delete files that have single instance - with 1 <- count do - prefix = - case Pleroma.Config.get([Pleroma.Upload, :base_url]) do - nil -> "media" - _ -> "" - end - - base_url = - String.trim_trailing( - Pleroma.Config.get([Pleroma.Upload, :base_url], Pleroma.Web.base_url()), - "/" - ) - - file_path = String.trim_leading(href, "#{base_url}/#{prefix}") - - uploader.delete_file(file_path) - end - - id - end) - - from(o in Object, where: o.id in ^delete_ids) - |> Repo.delete_all() + {:ok, :success} end - def perform(%{"op" => "cleanup_attachments", "object" => _object}, _job), do: :ok + def perform(%{"op" => "cleanup_attachments", "object" => _object}, _job), do: {:ok, :skip} + + defp do_clean({object_ids, attachment_urls}) do + uploader = Pleroma.Config.get([Pleroma.Upload, :uploader]) + + prefix = + case Pleroma.Config.get([Pleroma.Upload, :base_url]) do + nil -> "media" + _ -> "" + end + + base_url = + String.trim_trailing( + Pleroma.Config.get([Pleroma.Upload, :base_url], Pleroma.Web.base_url()), + "/" + ) + + Enum.each(attachment_urls, fn href -> + href + |> String.trim_leading("#{base_url}/#{prefix}") + |> uploader.delete_file() + end) + + delete_objects(object_ids) + end + + defp delete_objects([_ | _] = object_ids) do + Repo.delete_all(from(o in Object, where: o.id in ^object_ids)) + end + + defp delete_objects(_), do: :ok + + # we should delete 1 object for any given attachment, but don't delete + # files if there are more than 1 object for it + defp filter_objects(objects) do + Enum.reduce(objects, {[], []}, fn {href, %{id: id, count: count}}, {ids, hrefs} -> + with 1 <- count do + {ids ++ [id], hrefs ++ [href]} + else + _ -> {ids ++ [id], hrefs} + end + end) + end + + defp prepare_objects(objects, actor, names) do + objects + |> Enum.reduce(%{}, fn %{ + id: id, + data: %{ + "url" => [%{"href" => href}], + "actor" => obj_actor, + "name" => name + } + }, + acc -> + Map.update(acc, href, %{id: id, count: 1}, fn val -> + case obj_actor == actor and name in names do + true -> + # set id of the actor's object that will be deleted + %{val | id: id, count: val.count + 1} + + false -> + # another actor's object, just increase count to not delete file + %{val | count: val.count + 1} + end + end) + end) + end + + defp fetch_objects(hrefs) do + from(o in Object, + where: + fragment( + "to_jsonb(array(select jsonb_array_elements((?)#>'{url}') ->> 'href' where jsonb_typeof((?)#>'{url}') = 'array'))::jsonb \\?| (?)", + o.data, + o.data, + ^hrefs + ) + ) + # The query above can be time consumptive on large instances until we + # refactor how uploads are stored + |> Repo.all(timeout: :infinity) + end end diff --git a/lib/pleroma/workers/cron/clear_oauth_token_worker.ex b/lib/pleroma/workers/cron/clear_oauth_token_worker.ex index 341eff054..a4c3b9516 100644 --- a/lib/pleroma/workers/cron/clear_oauth_token_worker.ex +++ b/lib/pleroma/workers/cron/clear_oauth_token_worker.ex @@ -16,6 +16,8 @@ defmodule Pleroma.Workers.Cron.ClearOauthTokenWorker do def perform(_opts, _job) do if Config.get([:oauth2, :clean_expired_tokens], false) do Token.delete_expired_tokens() + else + :ok end end end diff --git a/lib/pleroma/workers/cron/digest_emails_worker.ex b/lib/pleroma/workers/cron/digest_emails_worker.ex index dd13c3b17..7f09ff3cf 100644 --- a/lib/pleroma/workers/cron/digest_emails_worker.ex +++ b/lib/pleroma/workers/cron/digest_emails_worker.ex @@ -37,6 +37,8 @@ def perform(_opts, _job) do ) |> Repo.all() |> send_emails + else + :ok end end diff --git a/lib/pleroma/workers/cron/new_users_digest_worker.ex b/lib/pleroma/workers/cron/new_users_digest_worker.ex index 9bd0a5621..5c816b3fe 100644 --- a/lib/pleroma/workers/cron/new_users_digest_worker.ex +++ b/lib/pleroma/workers/cron/new_users_digest_worker.ex @@ -55,7 +55,11 @@ def perform(_args, _job) do |> Repo.all() |> Enum.map(&Pleroma.Emails.NewUsersDigestEmail.new_users(&1, users_and_statuses)) |> Enum.each(&Pleroma.Emails.Mailer.deliver/1) + else + :ok end + else + :ok end end end diff --git a/lib/pleroma/workers/cron/purge_expired_activities_worker.ex b/lib/pleroma/workers/cron/purge_expired_activities_worker.ex index b8953dd7f..84b3b84de 100644 --- a/lib/pleroma/workers/cron/purge_expired_activities_worker.ex +++ b/lib/pleroma/workers/cron/purge_expired_activities_worker.ex @@ -23,6 +23,8 @@ defmodule Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker do def perform(_opts, _job) do if Config.get([ActivityExpiration, :enabled]) do Enum.each(ActivityExpiration.due_expirations(@interval), &delete_activity/1) + else + :ok end end diff --git a/mix.exs b/mix.exs index b8e663a03..b638be541 100644 --- a/mix.exs +++ b/mix.exs @@ -5,7 +5,7 @@ def project do [ app: :pleroma, version: version("2.0.50"), - elixir: "~> 1.8", + elixir: "~> 1.9", elixirc_paths: elixirc_paths(Mix.env()), compilers: [:phoenix, :gettext] ++ Mix.compilers(), elixirc_options: [warnings_as_errors: warnings_as_errors(Mix.env())], @@ -117,7 +117,7 @@ defp oauth_deps do defp deps do [ {:phoenix, "~> 1.4.8"}, - {:tzdata, "~> 0.5.21"}, + {:tzdata, "~> 1.0.3"}, {:plug_cowboy, "~> 2.0"}, {:phoenix_pubsub, "~> 1.1"}, {:phoenix_ecto, "~> 4.0"}, @@ -155,7 +155,7 @@ defp deps do {:credo, "~> 1.1.0", only: [:dev, :test], runtime: false}, {:mock, "~> 0.3.3", only: :test}, {:crypt, - git: "https://github.com/msantos/crypt", ref: "1f2b58927ab57e72910191a7ebaeff984382a1d3"}, + git: "https://github.com/msantos/crypt", ref: "f63a705f92c26955977ee62a313012e309a4d77a"}, {:cors_plug, "~> 1.5"}, {:ex_doc, "~> 0.21", only: :dev, runtime: false}, {:web_push_encryption, "~> 0.2.1"}, @@ -230,32 +230,37 @@ defp aliases do defp version(version) do identifier_filter = ~r/[^0-9a-z\-]+/i - # Pre-release version, denoted from patch version with a hyphen - {tag, tag_err} = - System.cmd("git", ["describe", "--tags", "--abbrev=0"], stderr_to_stdout: true) - - {describe, describe_err} = System.cmd("git", ["describe", "--tags", "--abbrev=8"]) - {commit_hash, commit_hash_err} = System.cmd("git", ["rev-parse", "--short", "HEAD"]) + {_cmdgit, cmdgit_err} = System.cmd("sh", ["-c", "command -v git"]) git_pre_release = - cond do - tag_err == 0 and describe_err == 0 -> - describe - |> String.trim() - |> String.replace(String.trim(tag), "") - |> String.trim_leading("-") - |> String.trim() + if cmdgit_err == 0 do + {tag, tag_err} = + System.cmd("git", ["describe", "--tags", "--abbrev=0"], stderr_to_stdout: true) - commit_hash_err == 0 -> - "0-g" <> String.trim(commit_hash) + {describe, describe_err} = System.cmd("git", ["describe", "--tags", "--abbrev=8"]) + {commit_hash, commit_hash_err} = System.cmd("git", ["rev-parse", "--short", "HEAD"]) - true -> - "" + # Pre-release version, denoted from patch version with a hyphen + cond do + tag_err == 0 and describe_err == 0 -> + describe + |> String.trim() + |> String.replace(String.trim(tag), "") + |> String.trim_leading("-") + |> String.trim() + + commit_hash_err == 0 -> + "0-g" <> String.trim(commit_hash) + + true -> + nil + end end # Branch name as pre-release version component, denoted with a dot branch_name = - with {branch_name, 0} <- System.cmd("git", ["rev-parse", "--abbrev-ref", "HEAD"]), + with 0 <- cmdgit_err, + {branch_name, 0} <- System.cmd("git", ["rev-parse", "--abbrev-ref", "HEAD"]), branch_name <- String.trim(branch_name), branch_name <- System.get_env("PLEROMA_BUILD_BRANCH") || branch_name, true <- @@ -269,7 +274,7 @@ defp version(version) do branch_name else - _ -> "stable" + _ -> "" end build_name = diff --git a/mix.lock b/mix.lock index 955b2bb37..5ad49391d 100644 --- a/mix.lock +++ b/mix.lock @@ -12,7 +12,7 @@ "calendar": {:hex, :calendar, "0.17.6", "ec291cb2e4ba499c2e8c0ef5f4ace974e2f9d02ae9e807e711a9b0c7850b9aee", [:mix], [{:tzdata, "~> 0.5.20 or ~> 0.1.201603 or ~> 1.0", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm", "738d0e17a93c2ccfe4ddc707bdc8e672e9074c8569498483feb1c4530fb91b2b"}, "captcha": {:git, "https://git.pleroma.social/pleroma/elixir-libraries/elixir-captcha.git", "e0f16822d578866e186a0974d65ad58cddc1e2ab", [ref: "e0f16822d578866e186a0974d65ad58cddc1e2ab"]}, "castore": {:hex, :castore, "0.1.5", "591c763a637af2cc468a72f006878584bc6c306f8d111ef8ba1d4c10e0684010", [:mix], [], "hexpm", "6db356b2bc6cc22561e051ff545c20ad064af57647e436650aa24d7d06cd941a"}, - "certifi": {:hex, :certifi, "2.5.1", "867ce347f7c7d78563450a18a6a28a8090331e77fa02380b4a21962a65d36ee5", [:rebar3], [{:parse_trans, "~>3.3", [hex: :parse_trans, repo: "hexpm", optional: false]}], "hexpm", "805abd97539caf89ec6d4732c91e62ba9da0cda51ac462380bbd28ee697a8c42"}, + "certifi": {:hex, :certifi, "2.5.2", "b7cfeae9d2ed395695dd8201c57a2d019c0c43ecaf8b8bcb9320b40d6662f340", [:rebar3], [{:parse_trans, "~>3.3", [hex: :parse_trans, repo: "hexpm", optional: false]}], "hexpm", "3b3b5f36493004ac3455966991eaf6e768ce9884693d9968055aeeeb1e575040"}, "combine": {:hex, :combine, "0.10.0", "eff8224eeb56498a2af13011d142c5e7997a80c8f5b97c499f84c841032e429f", [:mix], [], "hexpm", "1b1dbc1790073076580d0d1d64e42eae2366583e7aecd455d1215b0d16f2451b"}, "comeonin": {:hex, :comeonin, "5.3.1", "7fe612b739c78c9c1a75186ef2d322ce4d25032d119823269d0aa1e2f1e20025", [:mix], [], "hexpm", "d6222483060c17f0977fad1b7401ef0c5863c985a64352755f366aee3799c245"}, "connection": {:hex, :connection, "1.0.4", "a1cae72211f0eef17705aaededacac3eb30e6625b04a6117c1b2db6ace7d5976", [:mix], [], "hexpm", "4a0850c9be22a43af9920a71ab17c051f5f7d45c209e40269a1938832510e4d9"}, @@ -21,13 +21,13 @@ "cowlib": {:hex, :cowlib, "2.8.0", "fd0ff1787db84ac415b8211573e9a30a3ebe71b5cbff7f720089972b2319c8a4", [:rebar3], [], "hexpm", "79f954a7021b302186a950a32869dbc185523d99d3e44ce430cd1f3289f41ed4"}, "credo": {:hex, :credo, "1.1.5", "caec7a3cadd2e58609d7ee25b3931b129e739e070539ad1a0cd7efeeb47014f4", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "d0bbd3222607ccaaac5c0340f7f525c627ae4d7aee6c8c8c108922620c5b6446"}, "crontab": {:hex, :crontab, "1.1.8", "2ce0e74777dfcadb28a1debbea707e58b879e6aa0ffbf9c9bb540887bce43617", [:mix], [{:ecto, "~> 1.0 or ~> 2.0 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: true]}], "hexpm"}, - "crypt": {:git, "https://github.com/msantos/crypt", "1f2b58927ab57e72910191a7ebaeff984382a1d3", [ref: "1f2b58927ab57e72910191a7ebaeff984382a1d3"]}, + "crypt": {:git, "https://github.com/msantos/crypt", "f63a705f92c26955977ee62a313012e309a4d77a", [ref: "f63a705f92c26955977ee62a313012e309a4d77a"]}, "custom_base": {:hex, :custom_base, "0.2.1", "4a832a42ea0552299d81652aa0b1f775d462175293e99dfbe4d7dbaab785a706", [:mix], [], "hexpm", "8df019facc5ec9603e94f7270f1ac73ddf339f56ade76a721eaa57c1493ba463"}, "db_connection": {:hex, :db_connection, "2.2.1", "caee17725495f5129cb7faebde001dc4406796f12a62b8949f4ac69315080566", [:mix], [{:connection, "~> 1.0.2", [hex: :connection, repo: "hexpm", optional: false]}], "hexpm", "2b02ece62d9f983fcd40954e443b7d9e6589664380e5546b2b9b523cd0fb59e1"}, "decimal": {:hex, :decimal, "1.8.1", "a4ef3f5f3428bdbc0d35374029ffcf4ede8533536fa79896dd450168d9acdf3c", [:mix], [], "hexpm", "3cb154b00225ac687f6cbd4acc4b7960027c757a5152b369923ead9ddbca7aec"}, "deep_merge": {:hex, :deep_merge, "1.0.0", "b4aa1a0d1acac393bdf38b2291af38cb1d4a52806cf7a4906f718e1feb5ee961", [:mix], [], "hexpm", "ce708e5f094b9cd4e8f2be4f00d2f4250c4095be93f8cd6d018c753894885430"}, "earmark": {:hex, :earmark, "1.4.3", "364ca2e9710f6bff494117dbbd53880d84bebb692dafc3a78eb50aa3183f2bfd", [:mix], [], "hexpm", "8cf8a291ebf1c7b9539e3cddb19e9cef066c2441b1640f13c34c1d3cfc825fec"}, - "ecto": {:hex, :ecto, "3.4.0", "a7a83ab8359bf816ce729e5e65981ce25b9fc5adfc89c2ea3980f4fed0bfd7c1", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "5eed18252f5b5bbadec56a24112b531343507dbe046273133176b12190ce19cc"}, + "ecto": {:hex, :ecto, "3.4.4", "a2c881e80dc756d648197ae0d936216c0308370332c5e77a2325a10293eef845", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "cc4bd3ad62abc3b21fb629f0f7a3dab23a192fca837d257dd08449fba7373561"}, "ecto_enum": {:hex, :ecto_enum, "1.4.0", "d14b00e04b974afc69c251632d1e49594d899067ee2b376277efd8233027aec8", [:mix], [{:ecto, ">= 3.0.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:ecto_sql, "> 3.0.0", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:mariaex, ">= 0.0.0", [hex: :mariaex, repo: "hexpm", optional: true]}, {:postgrex, ">= 0.0.0", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "8fb55c087181c2b15eee406519dc22578fa60dd82c088be376d0010172764ee4"}, "ecto_sql": {:hex, :ecto_sql, "3.3.4", "aa18af12eb875fbcda2f75e608b3bd534ebf020fc4f6448e4672fcdcbb081244", [:mix], [{:db_connection, "~> 2.2", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.4 or ~> 3.3.3", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.3.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.15.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "5eccbdbf92e3c6f213007a82d5dbba4cd9bb659d1a21331f89f408e4c0efd7a8"}, "elixir_make": {:hex, :elixir_make, "0.6.0", "38349f3e29aff4864352084fc736fa7fa0f2995a819a737554f7ebd28b85aaab", [:mix], [], "hexpm", "d522695b93b7f0b4c0fcb2dfe73a6b905b1c301226a5a55cb42e5b14d509e050"}, @@ -50,14 +50,14 @@ "gen_state_machine": {:hex, :gen_state_machine, "2.0.5", "9ac15ec6e66acac994cc442dcc2c6f9796cf380ec4b08267223014be1c728a95", [:mix], [], "hexpm"}, "gettext": {:hex, :gettext, "0.17.4", "f13088e1ec10ce01665cf25f5ff779e7df3f2dc71b37084976cf89d1aa124d5c", [:mix], [], "hexpm", "3c75b5ea8288e2ee7ea503ff9e30dfe4d07ad3c054576a6e60040e79a801e14d"}, "gun": {:git, "https://github.com/ninenines/gun.git", "e1a69b36b180a574c0ac314ced9613fdd52312cc", [ref: "e1a69b36b180a574c0ac314ced9613fdd52312cc"]}, - "hackney": {:hex, :hackney, "1.15.2", "07e33c794f8f8964ee86cebec1a8ed88db5070e52e904b8f12209773c1036085", [:rebar3], [{:certifi, "2.5.1", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "6.0.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "1.0.1", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "1.1.5", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm", "e0100f8ef7d1124222c11ad362c857d3df7cb5f4204054f9f0f4a728666591fc"}, + "hackney": {:hex, :hackney, "1.16.0", "5096ac8e823e3a441477b2d187e30dd3fff1a82991a806b2003845ce72ce2d84", [:rebar3], [{:certifi, "2.5.2", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "6.0.1", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "1.0.1", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.3.0", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "1.1.6", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm", "3bf0bebbd5d3092a3543b783bf065165fa5d3ad4b899b836810e513064134e18"}, "html_entities": {:hex, :html_entities, "0.5.1", "1c9715058b42c35a2ab65edc5b36d0ea66dd083767bef6e3edb57870ef556549", [:mix], [], "hexpm", "30efab070904eb897ff05cd52fa61c1025d7f8ef3a9ca250bc4e6513d16c32de"}, "html_sanitize_ex": {:hex, :html_sanitize_ex, "1.3.0", "f005ad692b717691203f940c686208aa3d8ffd9dd4bb3699240096a51fa9564e", [:mix], [{:mochiweb, "~> 2.15", [hex: :mochiweb, repo: "hexpm", optional: false]}], "hexpm"}, "http_signatures": {:git, "https://git.pleroma.social/pleroma/http_signatures.git", "293d77bb6f4a67ac8bde1428735c3b42f22cbb30", [ref: "293d77bb6f4a67ac8bde1428735c3b42f22cbb30"]}, "httpoison": {:hex, :httpoison, "1.6.2", "ace7c8d3a361cebccbed19c283c349b3d26991eff73a1eaaa8abae2e3c8089b6", [:mix], [{:hackney, "~> 1.15 and >= 1.15.2", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "aa2c74bd271af34239a3948779612f87df2422c2fdcfdbcec28d9c105f0773fe"}, - "idna": {:hex, :idna, "6.0.0", "689c46cbcdf3524c44d5f3dde8001f364cd7608a99556d8fbd8239a5798d4c10", [:rebar3], [{:unicode_util_compat, "0.4.1", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "4bdd305eb64e18b0273864920695cb18d7a2021f31a11b9c5fbcd9a253f936e2"}, + "idna": {:hex, :idna, "6.0.1", "1d038fb2e7668ce41fbf681d2c45902e52b3cb9e9c77b55334353b222c2ee50c", [:rebar3], [{:unicode_util_compat, "0.5.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "a02c8a1c4fd601215bb0b0324c8a6986749f807ce35f25449ec9e69758708122"}, "inet_cidr": {:hex, :inet_cidr, "1.0.4", "a05744ab7c221ca8e395c926c3919a821eb512e8f36547c062f62c4ca0cf3d6e", [:mix], [], "hexpm", "64a2d30189704ae41ca7dbdd587f5291db5d1dda1414e0774c29ffc81088c1bc"}, - "jason": {:hex, :jason, "1.2.0", "10043418c42d2493d0ee212d3fddd25d7ffe484380afad769a0a38795938e448", [:mix], [{:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "116747dbe057794c3a3e4e143b7c8390b29f634e16c78a7f59ba75bfa6852e7f"}, + "jason": {:hex, :jason, "1.2.1", "12b22825e22f468c02eb3e4b9985f3d0cb8dc40b9bd704730efa11abd2708c44", [:mix], [{:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "b659b8571deedf60f79c5a608e15414085fa141344e2716fbd6988a084b5f993"}, "joken": {:hex, :joken, "2.2.0", "2daa1b12be05184aff7b5ace1d43ca1f81345962285fff3f88db74927c954d3a", [:mix], [{:jose, "~> 1.9", [hex: :jose, repo: "hexpm", optional: false]}], "hexpm", "b4f92e30388206f869dd25d1af628a1d99d7586e5cf0672f64d4df84c4d2f5e9"}, "jose": {:hex, :jose, "1.10.1", "16d8e460dae7203c6d1efa3f277e25b5af8b659febfc2f2eb4bacf87f128b80a", [:mix, :rebar3], [], "hexpm", "3c7ddc8a9394b92891db7c2771da94bf819834a1a4c92e30857b7d582e2f8257"}, "jumper": {:hex, :jumper, "1.0.1", "3c00542ef1a83532b72269fab9f0f0c82bf23a35e27d278bfd9ed0865cecabff", [:mix], [], "hexpm", "318c59078ac220e966d27af3646026db9b5a5e6703cb2aa3e26bcfaba65b7433"}, @@ -102,7 +102,7 @@ "recon": {:hex, :recon, "2.5.0", "2f7fcbec2c35034bade2f9717f77059dc54eb4e929a3049ca7ba6775c0bd66cd", [:mix, :rebar3], [], "hexpm", "72f3840fedd94f06315c523f6cecf5b4827233bed7ae3fe135b2a0ebeab5e196"}, "remote_ip": {:git, "https://git.pleroma.social/pleroma/remote_ip.git", "b647d0deecaa3acb140854fe4bda5b7e1dc6d1c8", [ref: "b647d0deecaa3acb140854fe4bda5b7e1dc6d1c8"]}, "sleeplocks": {:hex, :sleeplocks, "1.1.1", "3d462a0639a6ef36cc75d6038b7393ae537ab394641beb59830a1b8271faeed3", [:rebar3], [], "hexpm", "84ee37aeff4d0d92b290fff986d6a95ac5eedf9b383fadfd1d88e9b84a1c02e1"}, - "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.5", "6eaf7ad16cb568bb01753dbbd7a95ff8b91c7979482b95f38443fe2c8852a79b", [:make, :mix, :rebar3], [], "hexpm", "13104d7897e38ed7f044c4de953a6c28597d1c952075eb2e328bc6d6f2bfc496"}, + "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.6", "cf344f5692c82d2cd7554f5ec8fd961548d4fd09e7d22f5b62482e5aeaebd4b0", [:make, :mix, :rebar3], [], "hexpm", "bdb0d2471f453c88ff3908e7686f86f9be327d065cc1ec16fa4540197ea04680"}, "sweet_xml": {:hex, :sweet_xml, "0.6.6", "fc3e91ec5dd7c787b6195757fbcf0abc670cee1e4172687b45183032221b66b8", [:mix], [], "hexpm", "2e1ec458f892ffa81f9f8386e3f35a1af6db7a7a37748a64478f13163a1f3573"}, "swoosh": {:hex, :swoosh, "0.23.5", "bfd9404bbf5069b1be2ffd317923ce57e58b332e25dbca2a35dedd7820dfee5a", [:mix], [{:cowboy, "~> 1.0.1 or ~> 1.1 or ~> 2.4", [hex: :cowboy, repo: "hexpm", optional: true]}, {:gen_smtp, "~> 0.13", [hex: :gen_smtp, repo: "hexpm", optional: true]}, {:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mail, "~> 0.2", [hex: :mail, repo: "hexpm", optional: true]}, {:mime, "~> 1.1", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_cowboy, ">= 1.0.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}], "hexpm", "e3928e1d2889a308aaf3e42755809ac21cffd77cb58eef01cbfdab4ce2fd1e21"}, "syslog": {:hex, :syslog, "1.1.0", "6419a232bea84f07b56dc575225007ffe34d9fdc91abe6f1b2f254fd71d8efc2", [:rebar3], [], "hexpm", "4c6a41373c7e20587be33ef841d3de6f3beba08519809329ecc4d27b15b659e1"}, @@ -110,9 +110,9 @@ "tesla": {:git, "https://git.pleroma.social/pleroma/elixir-libraries/tesla.git", "61b7503cef33f00834f78ddfafe0d5d9dec2270b", [ref: "61b7503cef33f00834f78ddfafe0d5d9dec2270b"]}, "timex": {:hex, :timex, "3.6.1", "efdf56d0e67a6b956cc57774353b0329c8ab7726766a11547e529357ffdc1d56", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 0.1.8 or ~> 0.5 or ~> 1.0.0", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm", "f354efb2400dd7a80fd9eb6c8419068c4f632da4ac47f3d8822d6e33f08bc852"}, "trailing_format_plug": {:hex, :trailing_format_plug, "0.0.7", "64b877f912cf7273bed03379936df39894149e35137ac9509117e59866e10e45", [:mix], [{:plug, "> 0.12.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "bd4fde4c15f3e993a999e019d64347489b91b7a9096af68b2bdadd192afa693f"}, - "tzdata": {:hex, :tzdata, "0.5.22", "f2ba9105117ee0360eae2eca389783ef7db36d533899b2e84559404dbc77ebb8", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "cd66c8a1e6a9e121d1f538b01bef459334bb4029a1ffb4eeeb5e4eae0337e7b6"}, + "tzdata": {:hex, :tzdata, "1.0.3", "73470ad29dde46e350c60a66e6b360d3b99d2d18b74c4c349dbebbc27a09a3eb", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "a6e1ee7003c4d04ecbd21dd3ec690d4c6662db5d3bbdd7262d53cdf5e7c746c1"}, "ueberauth": {:hex, :ueberauth, "0.6.2", "25a31111249d60bad8b65438b2306a4dc91f3208faa62f5a8c33e8713989b2e8", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "db9fbfb5ac707bc4f85a297758406340bf0358b4af737a88113c1a9eee120ac7"}, - "unicode_util_compat": {:hex, :unicode_util_compat, "0.4.1", "d869e4c68901dd9531385bb0c8c40444ebf624e60b6962d95952775cac5e90cd", [:rebar3], [], "hexpm", "1d1848c40487cdb0b30e8ed975e34e025860c02e419cb615d255849f3427439d"}, + "unicode_util_compat": {:hex, :unicode_util_compat, "0.5.0", "8516502659002cec19e244ebd90d312183064be95025a319a6c7e89f4bccd65b", [:rebar3], [], "hexpm", "d48d002e15f5cc105a696cf2f1bbb3fc72b4b770a184d8420c8db20da2674b38"}, "unsafe": {:hex, :unsafe, "1.0.1", "a27e1874f72ee49312e0a9ec2e0b27924214a05e3ddac90e91727bc76f8613d8", [:mix], [], "hexpm", "6c7729a2d214806450d29766abc2afaa7a2cbecf415be64f36a6691afebb50e5"}, "web_push_encryption": {:hex, :web_push_encryption, "0.2.3", "a0ceab85a805a30852f143d22d71c434046fbdbafbc7292e7887cec500826a80", [:mix], [{:httpoison, "~> 1.0", [hex: :httpoison, repo: "hexpm", optional: false]}, {:jose, "~> 1.8", [hex: :jose, repo: "hexpm", optional: false]}, {:poison, "~> 3.0", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm", "9315c8f37c108835cf3f8e9157d7a9b8f420a34f402d1b1620a31aed5b93ecdf"}, "websocket_client": {:git, "https://github.com/jeremyong/websocket_client.git", "9a6f65d05ebf2725d62fb19262b21f1805a59fbf", []}, diff --git a/priv/gettext/it/LC_MESSAGES/errors.po b/priv/gettext/it/LC_MESSAGES/errors.po new file mode 100644 index 000000000..726be628b --- /dev/null +++ b/priv/gettext/it/LC_MESSAGES/errors.po @@ -0,0 +1,580 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-06-19 14:33+0000\n" +"PO-Revision-Date: 2020-06-19 20:38+0000\n" +"Last-Translator: Ben Is \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.0.4\n" + +## This file is a PO Template file. +## +## `msgid`s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run `mix gettext.extract` to bring this file up to +## date. Leave `msgstr`s empty as changing them here as no +## effect: edit them in PO (`.po`) files instead. +## From Ecto.Changeset.cast/4 +msgid "can't be blank" +msgstr "non può essere nullo" + +## From Ecto.Changeset.unique_constraint/3 +msgid "has already been taken" +msgstr "" + +## From Ecto.Changeset.put_change/3 +msgid "is invalid" +msgstr "" + +## From Ecto.Changeset.validate_format/3 +msgid "has invalid format" +msgstr "" + +## From Ecto.Changeset.validate_subset/3 +msgid "has an invalid entry" +msgstr "" + +## From Ecto.Changeset.validate_exclusion/3 +msgid "is reserved" +msgstr "" + +## From Ecto.Changeset.validate_confirmation/3 +msgid "does not match confirmation" +msgstr "" + +## From Ecto.Changeset.no_assoc_constraint/3 +msgid "is still associated with this entry" +msgstr "" + +msgid "are still associated with this entry" +msgstr "" + +## From Ecto.Changeset.validate_length/3 +msgid "should be %{count} character(s)" +msgid_plural "should be %{count} character(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should have %{count} item(s)" +msgid_plural "should have %{count} item(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should be at least %{count} character(s)" +msgid_plural "should be at least %{count} character(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should have at least %{count} item(s)" +msgid_plural "should have at least %{count} item(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should be at most %{count} character(s)" +msgid_plural "should be at most %{count} character(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should have at most %{count} item(s)" +msgid_plural "should have at most %{count} item(s)" +msgstr[0] "" +msgstr[1] "" + +## From Ecto.Changeset.validate_number/3 +msgid "must be less than %{number}" +msgstr "" + +msgid "must be greater than %{number}" +msgstr "" + +msgid "must be less than or equal to %{number}" +msgstr "" + +msgid "must be greater than or equal to %{number}" +msgstr "" + +msgid "must be equal to %{number}" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:421 +#, elixir-format +msgid "Account not found" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:249 +#, elixir-format +msgid "Already voted" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:360 +#, elixir-format +msgid "Bad request" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:425 +#, elixir-format +msgid "Can't delete object" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:196 +#, elixir-format +msgid "Can't delete this post" +msgstr "" + +#: lib/pleroma/web/controller_helper.ex:95 +#: lib/pleroma/web/controller_helper.ex:101 +#, elixir-format +msgid "Can't display this activity" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:227 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:254 +#, elixir-format +msgid "Can't find user" +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:114 +#, elixir-format +msgid "Can't get favorites" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:437 +#, elixir-format +msgid "Can't like object" +msgstr "" + +#: lib/pleroma/web/common_api/utils.ex:556 +#, elixir-format +msgid "Cannot post an empty status without attachments" +msgstr "" + +#: lib/pleroma/web/common_api/utils.ex:504 +#, elixir-format +msgid "Comment must be up to %{max_size} characters" +msgstr "" + +#: lib/pleroma/config/config_db.ex:222 +#, elixir-format +msgid "Config with params %{params} not found" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:95 +#, elixir-format +msgid "Could not delete" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:141 +#, elixir-format +msgid "Could not favorite" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:370 +#, elixir-format +msgid "Could not pin" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:112 +#, elixir-format +msgid "Could not repeat" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:188 +#, elixir-format +msgid "Could not unfavorite" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:380 +#, elixir-format +msgid "Could not unpin" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:126 +#, elixir-format +msgid "Could not unrepeat" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:428 +#: lib/pleroma/web/common_api/common_api.ex:437 +#, elixir-format +msgid "Could not update state" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:202 +#, elixir-format +msgid "Error." +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:106 +#, elixir-format +msgid "Invalid CAPTCHA" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:117 +#: lib/pleroma/web/oauth/oauth_controller.ex:569 +#, elixir-format +msgid "Invalid credentials" +msgstr "" + +#: lib/pleroma/plugs/ensure_authenticated_plug.ex:38 +#, elixir-format +msgid "Invalid credentials." +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:265 +#, elixir-format +msgid "Invalid indices" +msgstr "" + +#: lib/pleroma/web/admin_api/admin_api_controller.ex:1147 +#, elixir-format +msgid "Invalid parameters" +msgstr "" + +#: lib/pleroma/web/common_api/utils.ex:411 +#, elixir-format +msgid "Invalid password." +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:187 +#, elixir-format +msgid "Invalid request" +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:109 +#, elixir-format +msgid "Kocaptcha service unavailable" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:113 +#, elixir-format +msgid "Missing parameters" +msgstr "" + +#: lib/pleroma/web/common_api/utils.ex:540 +#, elixir-format +msgid "No such conversation" +msgstr "" + +#: lib/pleroma/web/admin_api/admin_api_controller.ex:439 +#: lib/pleroma/web/admin_api/admin_api_controller.ex:465 lib/pleroma/web/admin_api/admin_api_controller.ex:507 +#, elixir-format +msgid "No such permission_group" +msgstr "" + +#: lib/pleroma/plugs/uploaded_media.ex:74 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:485 lib/pleroma/web/admin_api/admin_api_controller.ex:1135 +#: lib/pleroma/web/feed/user_controller.ex:73 lib/pleroma/web/ostatus/ostatus_controller.ex:143 +#, elixir-format +msgid "Not found" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:241 +#, elixir-format +msgid "Poll's author can't vote" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:20 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:37 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:49 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:50 lib/pleroma/web/mastodon_api/controllers/status_controller.ex:290 +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:71 +#, elixir-format +msgid "Record not found" +msgstr "" + +#: lib/pleroma/web/admin_api/admin_api_controller.ex:1153 +#: lib/pleroma/web/feed/user_controller.ex:79 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:32 +#: lib/pleroma/web/ostatus/ostatus_controller.ex:149 +#, elixir-format +msgid "Something went wrong" +msgstr "" + +#: lib/pleroma/web/common_api/activity_draft.ex:107 +#, elixir-format +msgid "The message visibility must be direct" +msgstr "" + +#: lib/pleroma/web/common_api/utils.ex:566 +#, elixir-format +msgid "The status is over the character limit" +msgstr "" + +#: lib/pleroma/plugs/ensure_public_or_authenticated_plug.ex:31 +#, elixir-format +msgid "This resource requires authentication." +msgstr "" + +#: lib/pleroma/plugs/rate_limiter/rate_limiter.ex:206 +#, elixir-format +msgid "Throttled" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:266 +#, elixir-format +msgid "Too many choices" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:442 +#, elixir-format +msgid "Unhandled activity type" +msgstr "" + +#: lib/pleroma/web/admin_api/admin_api_controller.ex:536 +#, elixir-format +msgid "You can't revoke your own admin status." +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:218 +#: lib/pleroma/web/oauth/oauth_controller.ex:309 +#, elixir-format +msgid "Your account is currently disabled" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:180 +#: lib/pleroma/web/oauth/oauth_controller.ex:332 +#, elixir-format +msgid "Your login is missing a confirmed e-mail address" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:389 +#, elixir-format +msgid "can't read inbox of %{nickname} as %{as_nickname}" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:472 +#, elixir-format +msgid "can't update outbox of %{nickname} as %{as_nickname}" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:388 +#, elixir-format +msgid "conversation is already muted" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:316 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:491 +#, elixir-format +msgid "error" +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:29 +#, elixir-format +msgid "mascots can only be images" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:60 +#, elixir-format +msgid "not found" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:395 +#, elixir-format +msgid "Bad OAuth request." +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:115 +#, elixir-format +msgid "CAPTCHA already used" +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:112 +#, elixir-format +msgid "CAPTCHA expired" +msgstr "" + +#: lib/pleroma/plugs/uploaded_media.ex:55 +#, elixir-format +msgid "Failed" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:411 +#, elixir-format +msgid "Failed to authenticate: %{message}." +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:442 +#, elixir-format +msgid "Failed to set up user account." +msgstr "" + +#: lib/pleroma/plugs/oauth_scopes_plug.ex:38 +#, elixir-format +msgid "Insufficient permissions: %{permissions}." +msgstr "" + +#: lib/pleroma/plugs/uploaded_media.ex:94 +#, elixir-format +msgid "Internal Error" +msgstr "" + +#: lib/pleroma/web/oauth/fallback_controller.ex:22 +#: lib/pleroma/web/oauth/fallback_controller.ex:29 +#, elixir-format +msgid "Invalid Username/Password" +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:118 +#, elixir-format +msgid "Invalid answer data" +msgstr "" + +#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:128 +#, elixir-format +msgid "Nodeinfo schema version not handled" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:169 +#, elixir-format +msgid "This action is outside the authorized scopes" +msgstr "" + +#: lib/pleroma/web/oauth/fallback_controller.ex:14 +#, elixir-format +msgid "Unknown error, please check the details and try again." +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:116 +#: lib/pleroma/web/oauth/oauth_controller.ex:155 +#, elixir-format +msgid "Unlisted redirect_uri." +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:391 +#, elixir-format +msgid "Unsupported OAuth provider: %{provider}." +msgstr "" + +#: lib/pleroma/uploaders/uploader.ex:72 +#, elixir-format +msgid "Uploader callback timeout" +msgstr "" + +#: lib/pleroma/web/uploader_controller.ex:23 +#, elixir-format +msgid "bad request" +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:103 +#, elixir-format +msgid "CAPTCHA Error" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:200 +#, elixir-format +msgid "Could not add reaction emoji" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:211 +#, elixir-format +msgid "Could not remove reaction emoji" +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:129 +#, elixir-format +msgid "Invalid CAPTCHA (Missing parameter: %{name})" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:92 +#, elixir-format +msgid "List not found" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:124 +#, elixir-format +msgid "Missing parameter: %{name}" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:207 +#: lib/pleroma/web/oauth/oauth_controller.ex:322 +#, elixir-format +msgid "Password reset is required" +msgstr "" + +#: lib/pleroma/tests/auth_test_controller.ex:9 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:6 lib/pleroma/web/admin_api/admin_api_controller.ex:6 +#: lib/pleroma/web/controller_helper.ex:6 lib/pleroma/web/fallback_redirect_controller.ex:6 +#: lib/pleroma/web/feed/tag_controller.ex:6 lib/pleroma/web/feed/user_controller.ex:6 +#: lib/pleroma/web/mailer/subscription_controller.ex:2 lib/pleroma/web/masto_fe_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/app_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/auth_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/filter_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/instance_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/marker_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex:14 lib/pleroma/web/mastodon_api/controllers/media_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/notification_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/report_controller.ex:8 lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/search_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/status_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:7 lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:6 lib/pleroma/web/media_proxy/media_proxy_controller.ex:6 +#: lib/pleroma/web/mongooseim/mongoose_im_controller.ex:6 lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:6 +#: lib/pleroma/web/oauth/fallback_controller.ex:6 lib/pleroma/web/oauth/mfa_controller.ex:10 +#: lib/pleroma/web/oauth/oauth_controller.ex:6 lib/pleroma/web/ostatus/ostatus_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:2 +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex:7 lib/pleroma/web/static_fe/static_fe_controller.ex:6 +#: lib/pleroma/web/twitter_api/controllers/password_controller.ex:10 lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex:6 +#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:6 lib/pleroma/web/twitter_api/twitter_api_controller.ex:6 +#: lib/pleroma/web/uploader_controller.ex:6 lib/pleroma/web/web_finger/web_finger_controller.ex:6 +#, elixir-format +msgid "Security violation: OAuth scopes check was neither handled nor explicitly skipped." +msgstr "" + +#: lib/pleroma/plugs/ensure_authenticated_plug.ex:28 +#, elixir-format +msgid "Two-factor authentication enabled, you must use a access token." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:210 +#, elixir-format +msgid "Unexpected error occurred while adding file to pack." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:138 +#, elixir-format +msgid "Unexpected error occurred while creating pack." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:278 +#, elixir-format +msgid "Unexpected error occurred while removing file from pack." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:250 +#, elixir-format +msgid "Unexpected error occurred while updating file in pack." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:179 +#, elixir-format +msgid "Unexpected error occurred while updating pack metadata." +msgstr "" + +#: lib/pleroma/plugs/user_is_admin_plug.ex:40 +#, elixir-format +msgid "User is not an admin or OAuth admin scope is not granted." +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61 +#, elixir-format +msgid "Web push subscription is disabled on this Pleroma instance" +msgstr "" + +#: lib/pleroma/web/admin_api/admin_api_controller.ex:502 +#, elixir-format +msgid "You can't revoke your own admin/moderator status." +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:105 +#, elixir-format +msgid "authorization required for timeline view" +msgstr "" diff --git a/priv/gettext/nl/LC_MESSAGES/errors.po b/priv/gettext/nl/LC_MESSAGES/errors.po new file mode 100644 index 000000000..3118f6b5d --- /dev/null +++ b/priv/gettext/nl/LC_MESSAGES/errors.po @@ -0,0 +1,580 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-05-15 09:37+0000\n" +"PO-Revision-Date: 2020-06-02 07:36+0000\n" +"Last-Translator: Fristi \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.0.4\n" + +## This file is a PO Template file. +## +## `msgid`s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run `mix gettext.extract` to bring this file up to +## date. Leave `msgstr`s empty as changing them here as no +## effect: edit them in PO (`.po`) files instead. +## From Ecto.Changeset.cast/4 +msgid "can't be blank" +msgstr "kan niet leeg zijn" + +## From Ecto.Changeset.unique_constraint/3 +msgid "has already been taken" +msgstr "is al bezet" + +## From Ecto.Changeset.put_change/3 +msgid "is invalid" +msgstr "is ongeldig" + +## From Ecto.Changeset.validate_format/3 +msgid "has invalid format" +msgstr "heeft een ongeldig formaat" + +## From Ecto.Changeset.validate_subset/3 +msgid "has an invalid entry" +msgstr "heeft een ongeldige entry" + +## From Ecto.Changeset.validate_exclusion/3 +msgid "is reserved" +msgstr "is gereserveerd" + +## From Ecto.Changeset.validate_confirmation/3 +msgid "does not match confirmation" +msgstr "komt niet overeen met bevestiging" + +## From Ecto.Changeset.no_assoc_constraint/3 +msgid "is still associated with this entry" +msgstr "is nog geassocieerd met deze entry" + +msgid "are still associated with this entry" +msgstr "zijn nog geassocieerd met deze entry" + +## From Ecto.Changeset.validate_length/3 +msgid "should be %{count} character(s)" +msgid_plural "should be %{count} character(s)" +msgstr[0] "dient %{count} karakter te bevatten" +msgstr[1] "dient %{count} karakters te bevatten" + +msgid "should have %{count} item(s)" +msgid_plural "should have %{count} item(s)" +msgstr[0] "dient %{count} item te bevatten" +msgstr[1] "dient %{count} items te bevatten" + +msgid "should be at least %{count} character(s)" +msgid_plural "should be at least %{count} character(s)" +msgstr[0] "dient ten minste %{count} karakter te bevatten" +msgstr[1] "dient ten minste %{count} karakters te bevatten" + +msgid "should have at least %{count} item(s)" +msgid_plural "should have at least %{count} item(s)" +msgstr[0] "dient ten minste %{count} item te bevatten" +msgstr[1] "dient ten minste %{count} items te bevatten" + +msgid "should be at most %{count} character(s)" +msgid_plural "should be at most %{count} character(s)" +msgstr[0] "dient niet meer dan %{count} karakter te bevatten" +msgstr[1] "dient niet meer dan %{count} karakters te bevatten" + +msgid "should have at most %{count} item(s)" +msgid_plural "should have at most %{count} item(s)" +msgstr[0] "dient niet meer dan %{count} item te bevatten" +msgstr[1] "dient niet meer dan %{count} items te bevatten" + +## From Ecto.Changeset.validate_number/3 +msgid "must be less than %{number}" +msgstr "dient kleiner te zijn dan %{number}" + +msgid "must be greater than %{number}" +msgstr "dient groter te zijn dan %{number}" + +msgid "must be less than or equal to %{number}" +msgstr "dient kleiner dan of gelijk te zijn aan %{number}" + +msgid "must be greater than or equal to %{number}" +msgstr "dient groter dan of gelijk te zijn aan %{number}" + +msgid "must be equal to %{number}" +msgstr "dient gelijk te zijn aan %{number}" + +#: lib/pleroma/web/common_api/common_api.ex:421 +#, elixir-format +msgid "Account not found" +msgstr "Account niet gevonden" + +#: lib/pleroma/web/common_api/common_api.ex:249 +#, elixir-format +msgid "Already voted" +msgstr "Al gestemd" + +#: lib/pleroma/web/oauth/oauth_controller.ex:360 +#, elixir-format +msgid "Bad request" +msgstr "Bad request" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:425 +#, elixir-format +msgid "Can't delete object" +msgstr "Object kan niet verwijderd worden" + +#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:196 +#, elixir-format +msgid "Can't delete this post" +msgstr "Bericht kan niet verwijderd worden" + +#: lib/pleroma/web/controller_helper.ex:95 +#: lib/pleroma/web/controller_helper.ex:101 +#, elixir-format +msgid "Can't display this activity" +msgstr "Activiteit kan niet worden getoond" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:227 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:254 +#, elixir-format +msgid "Can't find user" +msgstr "Gebruiker kan niet gevonden worden" + +#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:114 +#, elixir-format +msgid "Can't get favorites" +msgstr "Favorieten konden niet opgehaald worden" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:437 +#, elixir-format +msgid "Can't like object" +msgstr "Object kan niet geliked worden" + +#: lib/pleroma/web/common_api/utils.ex:556 +#, elixir-format +msgid "Cannot post an empty status without attachments" +msgstr "Status kan niet geplaatst worden zonder tekst of bijlagen" + +#: lib/pleroma/web/common_api/utils.ex:504 +#, elixir-format +msgid "Comment must be up to %{max_size} characters" +msgstr "Opmerking dient maximaal %{max_size} karakters te bevatten" + +#: lib/pleroma/config/config_db.ex:222 +#, elixir-format +msgid "Config with params %{params} not found" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:95 +#, elixir-format +msgid "Could not delete" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:141 +#, elixir-format +msgid "Could not favorite" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:370 +#, elixir-format +msgid "Could not pin" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:112 +#, elixir-format +msgid "Could not repeat" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:188 +#, elixir-format +msgid "Could not unfavorite" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:380 +#, elixir-format +msgid "Could not unpin" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:126 +#, elixir-format +msgid "Could not unrepeat" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:428 +#: lib/pleroma/web/common_api/common_api.ex:437 +#, elixir-format +msgid "Could not update state" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:202 +#, elixir-format +msgid "Error." +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:106 +#, elixir-format +msgid "Invalid CAPTCHA" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:117 +#: lib/pleroma/web/oauth/oauth_controller.ex:569 +#, elixir-format +msgid "Invalid credentials" +msgstr "" + +#: lib/pleroma/plugs/ensure_authenticated_plug.ex:38 +#, elixir-format +msgid "Invalid credentials." +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:265 +#, elixir-format +msgid "Invalid indices" +msgstr "" + +#: lib/pleroma/web/admin_api/admin_api_controller.ex:1147 +#, elixir-format +msgid "Invalid parameters" +msgstr "" + +#: lib/pleroma/web/common_api/utils.ex:411 +#, elixir-format +msgid "Invalid password." +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:187 +#, elixir-format +msgid "Invalid request" +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:109 +#, elixir-format +msgid "Kocaptcha service unavailable" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:113 +#, elixir-format +msgid "Missing parameters" +msgstr "" + +#: lib/pleroma/web/common_api/utils.ex:540 +#, elixir-format +msgid "No such conversation" +msgstr "" + +#: lib/pleroma/web/admin_api/admin_api_controller.ex:439 +#: lib/pleroma/web/admin_api/admin_api_controller.ex:465 lib/pleroma/web/admin_api/admin_api_controller.ex:507 +#, elixir-format +msgid "No such permission_group" +msgstr "" + +#: lib/pleroma/plugs/uploaded_media.ex:74 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:485 lib/pleroma/web/admin_api/admin_api_controller.ex:1135 +#: lib/pleroma/web/feed/user_controller.ex:73 lib/pleroma/web/ostatus/ostatus_controller.ex:143 +#, elixir-format +msgid "Not found" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:241 +#, elixir-format +msgid "Poll's author can't vote" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:20 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:37 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:49 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:50 lib/pleroma/web/mastodon_api/controllers/status_controller.ex:290 +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:71 +#, elixir-format +msgid "Record not found" +msgstr "" + +#: lib/pleroma/web/admin_api/admin_api_controller.ex:1153 +#: lib/pleroma/web/feed/user_controller.ex:79 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:32 +#: lib/pleroma/web/ostatus/ostatus_controller.ex:149 +#, elixir-format +msgid "Something went wrong" +msgstr "" + +#: lib/pleroma/web/common_api/activity_draft.ex:107 +#, elixir-format +msgid "The message visibility must be direct" +msgstr "" + +#: lib/pleroma/web/common_api/utils.ex:566 +#, elixir-format +msgid "The status is over the character limit" +msgstr "" + +#: lib/pleroma/plugs/ensure_public_or_authenticated_plug.ex:31 +#, elixir-format +msgid "This resource requires authentication." +msgstr "" + +#: lib/pleroma/plugs/rate_limiter/rate_limiter.ex:206 +#, elixir-format +msgid "Throttled" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:266 +#, elixir-format +msgid "Too many choices" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:442 +#, elixir-format +msgid "Unhandled activity type" +msgstr "" + +#: lib/pleroma/web/admin_api/admin_api_controller.ex:536 +#, elixir-format +msgid "You can't revoke your own admin status." +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:218 +#: lib/pleroma/web/oauth/oauth_controller.ex:309 +#, elixir-format +msgid "Your account is currently disabled" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:180 +#: lib/pleroma/web/oauth/oauth_controller.ex:332 +#, elixir-format +msgid "Your login is missing a confirmed e-mail address" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:389 +#, elixir-format +msgid "can't read inbox of %{nickname} as %{as_nickname}" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:472 +#, elixir-format +msgid "can't update outbox of %{nickname} as %{as_nickname}" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:388 +#, elixir-format +msgid "conversation is already muted" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:316 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:491 +#, elixir-format +msgid "error" +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:29 +#, elixir-format +msgid "mascots can only be images" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:60 +#, elixir-format +msgid "not found" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:395 +#, elixir-format +msgid "Bad OAuth request." +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:115 +#, elixir-format +msgid "CAPTCHA already used" +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:112 +#, elixir-format +msgid "CAPTCHA expired" +msgstr "" + +#: lib/pleroma/plugs/uploaded_media.ex:55 +#, elixir-format +msgid "Failed" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:411 +#, elixir-format +msgid "Failed to authenticate: %{message}." +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:442 +#, elixir-format +msgid "Failed to set up user account." +msgstr "" + +#: lib/pleroma/plugs/oauth_scopes_plug.ex:38 +#, elixir-format +msgid "Insufficient permissions: %{permissions}." +msgstr "" + +#: lib/pleroma/plugs/uploaded_media.ex:94 +#, elixir-format +msgid "Internal Error" +msgstr "" + +#: lib/pleroma/web/oauth/fallback_controller.ex:22 +#: lib/pleroma/web/oauth/fallback_controller.ex:29 +#, elixir-format +msgid "Invalid Username/Password" +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:118 +#, elixir-format +msgid "Invalid answer data" +msgstr "" + +#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:128 +#, elixir-format +msgid "Nodeinfo schema version not handled" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:169 +#, elixir-format +msgid "This action is outside the authorized scopes" +msgstr "" + +#: lib/pleroma/web/oauth/fallback_controller.ex:14 +#, elixir-format +msgid "Unknown error, please check the details and try again." +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:116 +#: lib/pleroma/web/oauth/oauth_controller.ex:155 +#, elixir-format +msgid "Unlisted redirect_uri." +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:391 +#, elixir-format +msgid "Unsupported OAuth provider: %{provider}." +msgstr "" + +#: lib/pleroma/uploaders/uploader.ex:72 +#, elixir-format +msgid "Uploader callback timeout" +msgstr "" + +#: lib/pleroma/web/uploader_controller.ex:23 +#, elixir-format +msgid "bad request" +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:103 +#, elixir-format +msgid "CAPTCHA Error" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:200 +#, elixir-format +msgid "Could not add reaction emoji" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:211 +#, elixir-format +msgid "Could not remove reaction emoji" +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:129 +#, elixir-format +msgid "Invalid CAPTCHA (Missing parameter: %{name})" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:92 +#, elixir-format +msgid "List not found" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:124 +#, elixir-format +msgid "Missing parameter: %{name}" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:207 +#: lib/pleroma/web/oauth/oauth_controller.ex:322 +#, elixir-format +msgid "Password reset is required" +msgstr "" + +#: lib/pleroma/tests/auth_test_controller.ex:9 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:6 lib/pleroma/web/admin_api/admin_api_controller.ex:6 +#: lib/pleroma/web/controller_helper.ex:6 lib/pleroma/web/fallback_redirect_controller.ex:6 +#: lib/pleroma/web/feed/tag_controller.ex:6 lib/pleroma/web/feed/user_controller.ex:6 +#: lib/pleroma/web/mailer/subscription_controller.ex:2 lib/pleroma/web/masto_fe_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/app_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/auth_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/filter_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/instance_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/marker_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex:14 lib/pleroma/web/mastodon_api/controllers/media_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/notification_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/report_controller.ex:8 lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/search_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/status_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:7 lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:6 lib/pleroma/web/media_proxy/media_proxy_controller.ex:6 +#: lib/pleroma/web/mongooseim/mongoose_im_controller.ex:6 lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:6 +#: lib/pleroma/web/oauth/fallback_controller.ex:6 lib/pleroma/web/oauth/mfa_controller.ex:10 +#: lib/pleroma/web/oauth/oauth_controller.ex:6 lib/pleroma/web/ostatus/ostatus_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:2 +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex:7 lib/pleroma/web/static_fe/static_fe_controller.ex:6 +#: lib/pleroma/web/twitter_api/controllers/password_controller.ex:10 lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex:6 +#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:6 lib/pleroma/web/twitter_api/twitter_api_controller.ex:6 +#: lib/pleroma/web/uploader_controller.ex:6 lib/pleroma/web/web_finger/web_finger_controller.ex:6 +#, elixir-format +msgid "Security violation: OAuth scopes check was neither handled nor explicitly skipped." +msgstr "" + +#: lib/pleroma/plugs/ensure_authenticated_plug.ex:28 +#, elixir-format +msgid "Two-factor authentication enabled, you must use a access token." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:210 +#, elixir-format +msgid "Unexpected error occurred while adding file to pack." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:138 +#, elixir-format +msgid "Unexpected error occurred while creating pack." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:278 +#, elixir-format +msgid "Unexpected error occurred while removing file from pack." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:250 +#, elixir-format +msgid "Unexpected error occurred while updating file in pack." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:179 +#, elixir-format +msgid "Unexpected error occurred while updating pack metadata." +msgstr "" + +#: lib/pleroma/plugs/user_is_admin_plug.ex:40 +#, elixir-format +msgid "User is not an admin or OAuth admin scope is not granted." +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61 +#, elixir-format +msgid "Web push subscription is disabled on this Pleroma instance" +msgstr "" + +#: lib/pleroma/web/admin_api/admin_api_controller.ex:502 +#, elixir-format +msgid "You can't revoke your own admin/moderator status." +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:105 +#, elixir-format +msgid "authorization required for timeline view" +msgstr "" diff --git a/priv/gettext/pl/LC_MESSAGES/errors.po b/priv/gettext/pl/LC_MESSAGES/errors.po index af9e214c6..7bc39c52a 100644 --- a/priv/gettext/pl/LC_MESSAGES/errors.po +++ b/priv/gettext/pl/LC_MESSAGES/errors.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-13 16:37+0000\n" -"PO-Revision-Date: 2020-05-14 14:37+0000\n" -"Last-Translator: Michał Sidor \n" +"PO-Revision-Date: 2020-05-16 17:13+0000\n" +"Last-Translator: Jędrzej Tomaszewski \n" "Language-Team: Polish \n" "Language: pl\n" @@ -46,7 +46,7 @@ msgstr "ma niepoprawny wpis" ## From Ecto.Changeset.validate_exclusion/3 msgid "is reserved" -msgstr "" +msgstr "jest zarezerwowany" ## From Ecto.Changeset.validate_confirmation/3 msgid "does not match confirmation" @@ -54,17 +54,17 @@ msgstr "" ## From Ecto.Changeset.no_assoc_constraint/3 msgid "is still associated with this entry" -msgstr "" +msgstr "jest wciąż powiązane z tym wpisem" msgid "are still associated with this entry" -msgstr "" +msgstr "są wciąż powiązane z tym wpisem" ## From Ecto.Changeset.validate_length/3 msgid "should be %{count} character(s)" msgid_plural "should be %{count} character(s)" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "powinno mieć %{count} znak" +msgstr[1] "powinno mieć %{count} znaki" +msgstr[2] "powinno mieć %{count} znaków" msgid "should have %{count} item(s)" msgid_plural "should have %{count} item(s)" diff --git a/priv/repo/migrations/20200309123730_create_chats.exs b/priv/repo/migrations/20200309123730_create_chats.exs new file mode 100644 index 000000000..715d798ea --- /dev/null +++ b/priv/repo/migrations/20200309123730_create_chats.exs @@ -0,0 +1,16 @@ +defmodule Pleroma.Repo.Migrations.CreateChats do + use Ecto.Migration + + def change do + create table(:chats) do + add(:user_id, references(:users, type: :uuid)) + # Recipient is an ActivityPub id, to future-proof for group support. + add(:recipient, :string) + add(:unread, :integer, default: 0) + timestamps() + end + + # There's only one chat between a user and a recipient. + create(index(:chats, [:user_id, :recipient], unique: true)) + end +end diff --git a/priv/repo/migrations/20200322174133_user_raw_bio.exs b/priv/repo/migrations/20200322174133_user_raw_bio.exs new file mode 100644 index 000000000..ddf9be4f5 --- /dev/null +++ b/priv/repo/migrations/20200322174133_user_raw_bio.exs @@ -0,0 +1,9 @@ +defmodule Pleroma.Repo.Migrations.UserRawBio do + use Ecto.Migration + + def change do + alter table(:users) do + add_if_not_exists(:raw_bio, :text) + end + end +end diff --git a/priv/repo/migrations/20200323122421_mrf_config_move_from_instance_namespace.exs b/priv/repo/migrations/20200323122421_mrf_config_move_from_instance_namespace.exs new file mode 100644 index 000000000..ef36c4eb7 --- /dev/null +++ b/priv/repo/migrations/20200323122421_mrf_config_move_from_instance_namespace.exs @@ -0,0 +1,39 @@ +defmodule Pleroma.Repo.Migrations.MrfConfigMoveFromInstanceNamespace do + use Ecto.Migration + + alias Pleroma.ConfigDB + + @old_keys [:rewrite_policy, :mrf_transparency, :mrf_transparency_exclusions] + def change do + config = ConfigDB.get_by_params(%{group: :pleroma, key: :instance}) + + if config do + mrf = + config.value + |> Keyword.take(@old_keys) + |> Keyword.new(fn + {:rewrite_policy, policies} -> {:policies, policies} + {:mrf_transparency, transparency} -> {:transparency, transparency} + {:mrf_transparency_exclusions, exclusions} -> {:transparency_exclusions, exclusions} + end) + + if mrf != [] do + {:ok, _} = + %ConfigDB{} + |> ConfigDB.changeset(%{group: :pleroma, key: :mrf, value: mrf}) + |> Pleroma.Repo.insert() + + new_instance = Keyword.drop(config.value, @old_keys) + + if new_instance != [] do + {:ok, _} = + config + |> ConfigDB.changeset(%{value: new_instance}) + |> Pleroma.Repo.update() + else + {:ok, _} = ConfigDB.delete(config) + end + end + end + end +end diff --git a/priv/repo/migrations/20200328193433_populate_user_raw_bio.exs b/priv/repo/migrations/20200328193433_populate_user_raw_bio.exs new file mode 100644 index 000000000..cb35db3f5 --- /dev/null +++ b/priv/repo/migrations/20200328193433_populate_user_raw_bio.exs @@ -0,0 +1,25 @@ +defmodule Pleroma.Repo.Migrations.PopulateUserRawBio do + use Ecto.Migration + import Ecto.Query + alias Pleroma.User + alias Pleroma.Repo + + def change do + {:ok, _} = Application.ensure_all_started(:fast_sanitize) + + User.Query.build(%{local: true}) + |> select([u], struct(u, [:id, :ap_id, :bio])) + |> Repo.stream() + |> Enum.each(fn %{bio: bio} = user -> + if bio do + raw_bio = + bio + |> String.replace(~r(
), "\n") + |> Pleroma.HTML.strip_tags() + + Ecto.Changeset.cast(user, %{raw_bio: raw_bio}, [:raw_bio]) + |> Repo.update() + end + end) + end +end diff --git a/priv/repo/migrations/20200508092434_update_counter_cache_table.exs b/priv/repo/migrations/20200508092434_update_counter_cache_table.exs new file mode 100644 index 000000000..738344868 --- /dev/null +++ b/priv/repo/migrations/20200508092434_update_counter_cache_table.exs @@ -0,0 +1,143 @@ +defmodule Pleroma.Repo.Migrations.UpdateCounterCacheTable do + use Ecto.Migration + + @function_name "update_status_visibility_counter_cache" + @trigger_name "status_visibility_counter_cache_trigger" + + def up do + execute("drop trigger if exists #{@trigger_name} on activities") + execute("drop function if exists #{@function_name}()") + drop_if_exists(unique_index(:counter_cache, [:name])) + drop_if_exists(table(:counter_cache)) + + create_if_not_exists table(:counter_cache) do + add(:instance, :string, null: false) + add(:direct, :bigint, null: false, default: 0) + add(:private, :bigint, null: false, default: 0) + add(:unlisted, :bigint, null: false, default: 0) + add(:public, :bigint, null: false, default: 0) + end + + create_if_not_exists(unique_index(:counter_cache, [:instance])) + + """ + CREATE OR REPLACE FUNCTION #{@function_name}() + RETURNS TRIGGER AS + $$ + DECLARE + hostname character varying(255); + visibility_new character varying(64); + visibility_old character varying(64); + actor character varying(255); + BEGIN + IF TG_OP = 'DELETE' THEN + actor := OLD.actor; + ELSE + actor := NEW.actor; + END IF; + hostname := split_part(actor, '/', 3); + IF TG_OP = 'INSERT' THEN + visibility_new := activity_visibility(NEW.actor, NEW.recipients, NEW.data); + IF NEW.data->>'type' = 'Create' + AND visibility_new IN ('public', 'unlisted', 'private', 'direct') THEN + EXECUTE format('INSERT INTO "counter_cache" ("instance", %1$I) VALUES ($1, 1) + ON CONFLICT ("instance") DO + UPDATE SET %1$I = "counter_cache".%1$I + 1', visibility_new) + USING hostname; + END IF; + RETURN NEW; + ELSIF TG_OP = 'UPDATE' THEN + visibility_new := activity_visibility(NEW.actor, NEW.recipients, NEW.data); + visibility_old := activity_visibility(OLD.actor, OLD.recipients, OLD.data); + IF (NEW.data->>'type' = 'Create') + AND (OLD.data->>'type' = 'Create') + AND visibility_new != visibility_old + AND visibility_new IN ('public', 'unlisted', 'private', 'direct') THEN + EXECUTE format('UPDATE "counter_cache" SET + %1$I = greatest("counter_cache".%1$I - 1, 0), + %2$I = "counter_cache".%2$I + 1 + WHERE "instance" = $1', visibility_old, visibility_new) + USING hostname; + END IF; + RETURN NEW; + ELSIF TG_OP = 'DELETE' THEN + IF OLD.data->>'type' = 'Create' THEN + visibility_old := activity_visibility(OLD.actor, OLD.recipients, OLD.data); + EXECUTE format('UPDATE "counter_cache" SET + %1$I = greatest("counter_cache".%1$I - 1, 0) + WHERE "instance" = $1', visibility_old) + USING hostname; + END IF; + RETURN OLD; + END IF; + END; + $$ + LANGUAGE 'plpgsql'; + """ + |> execute() + + execute("DROP TRIGGER IF EXISTS #{@trigger_name} ON activities") + + """ + CREATE TRIGGER #{@trigger_name} + BEFORE + INSERT + OR UPDATE of recipients, data + OR DELETE + ON activities + FOR EACH ROW + EXECUTE PROCEDURE #{@function_name}(); + """ + |> execute() + end + + def down do + execute("DROP TRIGGER IF EXISTS #{@trigger_name} ON activities") + execute("DROP FUNCTION IF EXISTS #{@function_name}()") + drop_if_exists(unique_index(:counter_cache, [:instance])) + drop_if_exists(table(:counter_cache)) + + create_if_not_exists table(:counter_cache) do + add(:name, :string, null: false) + add(:count, :bigint, null: false, default: 0) + end + + create_if_not_exists(unique_index(:counter_cache, [:name])) + + """ + CREATE OR REPLACE FUNCTION #{@function_name}() + RETURNS TRIGGER AS + $$ + DECLARE + BEGIN + IF TG_OP = 'INSERT' THEN + IF NEW.data->>'type' = 'Create' THEN + EXECUTE 'INSERT INTO counter_cache (name, count) VALUES (''status_visibility_' || activity_visibility(NEW.actor, NEW.recipients, NEW.data) || ''', 1) ON CONFLICT (name) DO UPDATE SET count = counter_cache.count + 1'; + END IF; + RETURN NEW; + ELSIF TG_OP = 'UPDATE' THEN + IF (NEW.data->>'type' = 'Create') and (OLD.data->>'type' = 'Create') and activity_visibility(NEW.actor, NEW.recipients, NEW.data) != activity_visibility(OLD.actor, OLD.recipients, OLD.data) THEN + EXECUTE 'INSERT INTO counter_cache (name, count) VALUES (''status_visibility_' || activity_visibility(NEW.actor, NEW.recipients, NEW.data) || ''', 1) ON CONFLICT (name) DO UPDATE SET count = counter_cache.count + 1'; + EXECUTE 'update counter_cache SET count = counter_cache.count - 1 where count > 0 and name = ''status_visibility_' || activity_visibility(OLD.actor, OLD.recipients, OLD.data) || ''';'; + END IF; + RETURN NEW; + ELSIF TG_OP = 'DELETE' THEN + IF OLD.data->>'type' = 'Create' THEN + EXECUTE 'update counter_cache SET count = counter_cache.count - 1 where count > 0 and name = ''status_visibility_' || activity_visibility(OLD.actor, OLD.recipients, OLD.data) || ''';'; + END IF; + RETURN OLD; + END IF; + END; + $$ + LANGUAGE 'plpgsql'; + """ + |> execute() + + """ + CREATE TRIGGER #{@trigger_name} BEFORE INSERT OR UPDATE of recipients, data OR DELETE ON activities + FOR EACH ROW + EXECUTE PROCEDURE #{@function_name}(); + """ + |> execute() + end +end diff --git a/priv/repo/migrations/20200520155351_add_recipients_contain_blocked_domains_function.exs b/priv/repo/migrations/20200520155351_add_recipients_contain_blocked_domains_function.exs new file mode 100644 index 000000000..14e873125 --- /dev/null +++ b/priv/repo/migrations/20200520155351_add_recipients_contain_blocked_domains_function.exs @@ -0,0 +1,33 @@ +defmodule Pleroma.Repo.Migrations.AddRecipientsContainBlockedDomainsFunction do + use Ecto.Migration + @disable_ddl_transaction true + + def up do + statement = """ + CREATE OR REPLACE FUNCTION recipients_contain_blocked_domains(recipients varchar[], blocked_domains varchar[]) RETURNS boolean AS $$ + DECLARE + recipient_domain varchar; + recipient varchar; + BEGIN + FOREACH recipient IN ARRAY recipients LOOP + recipient_domain = split_part(recipient, '/', 3)::varchar; + + IF recipient_domain = ANY(blocked_domains) THEN + RETURN TRUE; + END IF; + END LOOP; + + RETURN FALSE; + END; + $$ LANGUAGE plpgsql; + """ + + execute(statement) + end + + def down do + execute( + "drop function if exists recipients_contain_blocked_domains(recipients varchar[], blocked_domains varchar[])" + ) + end +end diff --git a/priv/repo/migrations/20200526144426_add_apps_indexes.exs b/priv/repo/migrations/20200526144426_add_apps_indexes.exs new file mode 100644 index 000000000..5cb6a0473 --- /dev/null +++ b/priv/repo/migrations/20200526144426_add_apps_indexes.exs @@ -0,0 +1,7 @@ +defmodule Pleroma.Repo.Migrations.AddAppsIndexes do + use Ecto.Migration + + def change do + create(index(:apps, [:client_id, :client_secret])) + end +end diff --git a/priv/repo/migrations/20200527104138_change_notification_user_index.exs b/priv/repo/migrations/20200527104138_change_notification_user_index.exs new file mode 100644 index 000000000..4dcfe6de9 --- /dev/null +++ b/priv/repo/migrations/20200527104138_change_notification_user_index.exs @@ -0,0 +1,8 @@ +defmodule Pleroma.Repo.Migrations.ChangeNotificationUserIndex do + use Ecto.Migration + + def change do + drop_if_exists(index(:notifications, [:user_id])) + create_if_not_exists(index(:notifications, [:user_id, "id desc nulls last"])) + end +end diff --git a/priv/repo/migrations/20200527163635_delete_notifications_from_invisible_users.exs b/priv/repo/migrations/20200527163635_delete_notifications_from_invisible_users.exs new file mode 100644 index 000000000..9e95a8111 --- /dev/null +++ b/priv/repo/migrations/20200527163635_delete_notifications_from_invisible_users.exs @@ -0,0 +1,18 @@ +defmodule Pleroma.Repo.Migrations.DeleteNotificationsFromInvisibleUsers do + use Ecto.Migration + + import Ecto.Query + alias Pleroma.Repo + + def up do + Pleroma.Notification + |> join(:inner, [n], activity in assoc(n, :activity)) + |> where( + [n, a], + fragment("? in (SELECT ap_id FROM users WHERE invisible = true)", a.actor) + ) + |> Repo.delete_all() + end + + def down, do: :ok +end diff --git a/priv/repo/migrations/20200602094828_add_type_to_notifications.exs b/priv/repo/migrations/20200602094828_add_type_to_notifications.exs new file mode 100644 index 000000000..19c733628 --- /dev/null +++ b/priv/repo/migrations/20200602094828_add_type_to_notifications.exs @@ -0,0 +1,9 @@ +defmodule Pleroma.Repo.Migrations.AddTypeToNotifications do + use Ecto.Migration + + def change do + alter table(:notifications) do + add(:type, :string) + end + end +end diff --git a/priv/repo/migrations/20200602125218_backfill_notification_types.exs b/priv/repo/migrations/20200602125218_backfill_notification_types.exs new file mode 100644 index 000000000..996d721ee --- /dev/null +++ b/priv/repo/migrations/20200602125218_backfill_notification_types.exs @@ -0,0 +1,10 @@ +defmodule Pleroma.Repo.Migrations.BackfillNotificationTypes do + use Ecto.Migration + + def up do + Pleroma.MigrationHelper.NotificationBackfill.fill_in_notification_types() + end + + def down do + end +end diff --git a/priv/repo/migrations/20200602150528_create_chat_message_reference.exs b/priv/repo/migrations/20200602150528_create_chat_message_reference.exs new file mode 100644 index 000000000..6f9148b7c --- /dev/null +++ b/priv/repo/migrations/20200602150528_create_chat_message_reference.exs @@ -0,0 +1,20 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.CreateChatMessageReference do + use Ecto.Migration + + def change do + create table(:chat_message_references, primary_key: false) do + add(:id, :uuid, primary_key: true) + add(:chat_id, references(:chats, on_delete: :delete_all), null: false) + add(:object_id, references(:objects, on_delete: :delete_all), null: false) + add(:seen, :boolean, default: false, null: false) + + timestamps() + end + + create(index(:chat_message_references, [:chat_id, "id desc"])) + end +end diff --git a/priv/repo/migrations/20200603105113_add_unique_index_to_chat_message_references.exs b/priv/repo/migrations/20200603105113_add_unique_index_to_chat_message_references.exs new file mode 100644 index 000000000..fdf85132e --- /dev/null +++ b/priv/repo/migrations/20200603105113_add_unique_index_to_chat_message_references.exs @@ -0,0 +1,7 @@ +defmodule Pleroma.Repo.Migrations.AddUniqueIndexToChatMessageReferences do + use Ecto.Migration + + def change do + create(unique_index(:chat_message_references, [:object_id, :chat_id])) + end +end diff --git a/priv/repo/migrations/20200603120448_remove_unread_from_chats.exs b/priv/repo/migrations/20200603120448_remove_unread_from_chats.exs new file mode 100644 index 000000000..6322137d5 --- /dev/null +++ b/priv/repo/migrations/20200603120448_remove_unread_from_chats.exs @@ -0,0 +1,9 @@ +defmodule Pleroma.Repo.Migrations.RemoveUnreadFromChats do + use Ecto.Migration + + def change do + alter table(:chats) do + remove(:unread, :integer, default: 0) + end + end +end diff --git a/priv/repo/migrations/20200603122732_add_seen_index_to_chat_message_references.exs b/priv/repo/migrations/20200603122732_add_seen_index_to_chat_message_references.exs new file mode 100644 index 000000000..a5065d612 --- /dev/null +++ b/priv/repo/migrations/20200603122732_add_seen_index_to_chat_message_references.exs @@ -0,0 +1,12 @@ +defmodule Pleroma.Repo.Migrations.AddSeenIndexToChatMessageReferences do + use Ecto.Migration + + def change do + create( + index(:chat_message_references, [:chat_id], + where: "seen = false", + name: "unseen_messages_count_index" + ) + ) + end +end diff --git a/priv/repo/migrations/20200604150318_migrate_seen_to_unread_in_chat_message_references.exs b/priv/repo/migrations/20200604150318_migrate_seen_to_unread_in_chat_message_references.exs new file mode 100644 index 000000000..fd6bc7bc7 --- /dev/null +++ b/priv/repo/migrations/20200604150318_migrate_seen_to_unread_in_chat_message_references.exs @@ -0,0 +1,30 @@ +defmodule Pleroma.Repo.Migrations.MigrateSeenToUnreadInChatMessageReferences do + use Ecto.Migration + + def change do + drop( + index(:chat_message_references, [:chat_id], + where: "seen = false", + name: "unseen_messages_count_index" + ) + ) + + alter table(:chat_message_references) do + add(:unread, :boolean, default: true) + end + + execute("update chat_message_references set unread = not seen") + + alter table(:chat_message_references) do + modify(:unread, :boolean, default: true, null: false) + remove(:seen, :boolean, default: false, null: false) + end + + create( + index(:chat_message_references, [:chat_id], + where: "unread = true", + name: "unread_messages_count_index" + ) + ) + end +end diff --git a/priv/repo/migrations/20200606105430_change_type_to_enum_for_notifications.exs b/priv/repo/migrations/20200606105430_change_type_to_enum_for_notifications.exs new file mode 100644 index 000000000..9ea34436b --- /dev/null +++ b/priv/repo/migrations/20200606105430_change_type_to_enum_for_notifications.exs @@ -0,0 +1,36 @@ +defmodule Pleroma.Repo.Migrations.ChangeTypeToEnumForNotifications do + use Ecto.Migration + + def up do + """ + create type notification_type as enum ( + 'follow', + 'follow_request', + 'mention', + 'move', + 'pleroma:emoji_reaction', + 'pleroma:chat_mention', + 'reblog', + 'favourite' + ) + """ + |> execute() + + """ + alter table notifications + alter column type type notification_type using (type::notification_type) + """ + |> execute() + end + + def down do + alter table(:notifications) do + modify(:type, :string) + end + + """ + drop type notification_type + """ + |> execute() + end +end diff --git a/priv/repo/migrations/20200607112923_change_chat_id_to_flake.exs b/priv/repo/migrations/20200607112923_change_chat_id_to_flake.exs new file mode 100644 index 000000000..f14e269ca --- /dev/null +++ b/priv/repo/migrations/20200607112923_change_chat_id_to_flake.exs @@ -0,0 +1,23 @@ +defmodule Pleroma.Repo.Migrations.ChangeChatIdToFlake do + use Ecto.Migration + + def up do + execute(""" + alter table chats + drop constraint chats_pkey cascade, + alter column id drop default, + alter column id set data type uuid using cast( lpad( to_hex(id), 32, '0') as uuid), + add primary key (id) + """) + + execute(""" + alter table chat_message_references + alter column chat_id set data type uuid using cast( lpad( to_hex(chat_id), 32, '0') as uuid), + add constraint chat_message_references_chat_id_fkey foreign key (chat_id) references chats(id) on delete cascade + """) + end + + def down do + :ok + end +end diff --git a/priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs b/priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs index 6227769dc..757afa129 100644 --- a/priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs +++ b/priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs @@ -10,8 +10,8 @@ def up do execute("CREATE FUNCTION objects_fts_update() RETURNS trigger AS $$ begin - new.fts_content := to_tsvector('english', new.data->>'content'); - return new; + new.fts_content := to_tsvector('english', new.data->>'content'); + return new; end $$ LANGUAGE plpgsql") execute("create index if not exists objects_fts on objects using RUM (fts_content rum_tsvector_addon_ops, inserted_at) with (attach = 'inserted_at', to = 'fts_content');") diff --git a/priv/static/READ_THIS_BEFORE_TOUCHING_FILES_HERE b/priv/static/READ_THIS_BEFORE_TOUCHING_FILES_HERE new file mode 100644 index 000000000..eb5294eaf --- /dev/null +++ b/priv/static/READ_THIS_BEFORE_TOUCHING_FILES_HERE @@ -0,0 +1 @@ +If you are an instance admin and you want to modify the instace static files, this is probably not the right place to do it. This directory is checked in version control, so don't be surprised if you get merge conflicts after modifying anything here. Please use instance static directory instead, it has the same directory structure and files placed there will override files placed here. See https://docs.pleroma.social/backend/configuration/static_dir/ for more info diff --git a/priv/static/adminfe/app.796ca6d4.css b/priv/static/adminfe/app.6684eb28.css similarity index 100% rename from priv/static/adminfe/app.796ca6d4.css rename to priv/static/adminfe/app.6684eb28.css diff --git a/priv/static/adminfe/chunk-0558.af0d89cd.css b/priv/static/adminfe/chunk-070d.d2dd6533.css similarity index 100% rename from priv/static/adminfe/chunk-0558.af0d89cd.css rename to priv/static/adminfe/chunk-070d.d2dd6533.css diff --git a/priv/static/adminfe/chunk-0cbc.60bba79b.css b/priv/static/adminfe/chunk-0cbc.60bba79b.css new file mode 100644 index 000000000..c6280f7ef Binary files /dev/null and b/priv/static/adminfe/chunk-0cbc.60bba79b.css differ diff --git a/priv/static/adminfe/chunk-143c.43ada4fc.css b/priv/static/adminfe/chunk-143c.43ada4fc.css new file mode 100644 index 000000000..b580e0699 Binary files /dev/null and b/priv/static/adminfe/chunk-143c.43ada4fc.css differ diff --git a/priv/static/adminfe/chunk-1609.408dae86.css b/priv/static/adminfe/chunk-1609.408dae86.css new file mode 100644 index 000000000..483d88545 Binary files /dev/null and b/priv/static/adminfe/chunk-1609.408dae86.css differ diff --git a/priv/static/adminfe/chunk-176e.5d7d957b.css b/priv/static/adminfe/chunk-176e.5d7d957b.css new file mode 100644 index 000000000..0bedf3773 Binary files /dev/null and b/priv/static/adminfe/chunk-176e.5d7d957b.css differ diff --git a/priv/static/adminfe/chunk-22d2.813009b9.css b/priv/static/adminfe/chunk-22d2.813009b9.css deleted file mode 100644 index f0a98583e..000000000 Binary files a/priv/static/adminfe/chunk-22d2.813009b9.css and /dev/null differ diff --git a/priv/static/adminfe/chunk-3384.2278f87c.css b/priv/static/adminfe/chunk-3384.2278f87c.css deleted file mode 100644 index 96e3273eb..000000000 Binary files a/priv/static/adminfe/chunk-3384.2278f87c.css and /dev/null differ diff --git a/priv/static/adminfe/chunk-4011.c4799067.css b/priv/static/adminfe/chunk-4011.c4799067.css deleted file mode 100644 index 1fb099c0c..000000000 Binary files a/priv/static/adminfe/chunk-4011.c4799067.css and /dev/null differ diff --git a/priv/static/adminfe/chunk-43ca.0de86b6d.css b/priv/static/adminfe/chunk-43ca.0de86b6d.css new file mode 100644 index 000000000..817a6be44 Binary files /dev/null and b/priv/static/adminfe/chunk-43ca.0de86b6d.css differ diff --git a/priv/static/adminfe/chunk-0961.d3692214.css b/priv/static/adminfe/chunk-4e7e.5afe1978.css similarity index 100% rename from priv/static/adminfe/chunk-0961.d3692214.css rename to priv/static/adminfe/chunk-4e7e.5afe1978.css diff --git a/priv/static/adminfe/chunk-5882.f65db7f2.css b/priv/static/adminfe/chunk-5882.f65db7f2.css new file mode 100644 index 000000000..b5e2a00b0 Binary files /dev/null and b/priv/static/adminfe/chunk-5882.f65db7f2.css differ diff --git a/priv/static/adminfe/chunk-6b68.0cc00484.css b/priv/static/adminfe/chunk-6b68.0cc00484.css deleted file mode 100644 index 7061b3d03..000000000 Binary files a/priv/static/adminfe/chunk-6b68.0cc00484.css and /dev/null differ diff --git a/priv/static/adminfe/chunk-6e81.0e80d020.css b/priv/static/adminfe/chunk-6e81.ca3b222f.css similarity index 100% rename from priv/static/adminfe/chunk-6e81.0e80d020.css rename to priv/static/adminfe/chunk-6e81.ca3b222f.css diff --git a/priv/static/adminfe/chunk-7506.f01f6c2a.css b/priv/static/adminfe/chunk-7506.f01f6c2a.css new file mode 100644 index 000000000..93d3eac84 Binary files /dev/null and b/priv/static/adminfe/chunk-7506.f01f6c2a.css differ diff --git a/priv/static/adminfe/chunk-7637.941c4edb.css b/priv/static/adminfe/chunk-7637.941c4edb.css deleted file mode 100644 index be1d183a9..000000000 Binary files a/priv/static/adminfe/chunk-7637.941c4edb.css and /dev/null differ diff --git a/priv/static/adminfe/chunk-0778.d9e7180a.css b/priv/static/adminfe/chunk-7c6b.d9e7180a.css similarity index 100% rename from priv/static/adminfe/chunk-0778.d9e7180a.css rename to priv/static/adminfe/chunk-7c6b.d9e7180a.css diff --git a/priv/static/adminfe/chunk-970d.f59cca8c.css b/priv/static/adminfe/chunk-970d.f59cca8c.css deleted file mode 100644 index 15511f12f..000000000 Binary files a/priv/static/adminfe/chunk-970d.f59cca8c.css and /dev/null differ diff --git a/priv/static/adminfe/chunk-c5f4.0827b1ce.css b/priv/static/adminfe/chunk-c5f4.0827b1ce.css new file mode 100644 index 000000000..eb59ca31a Binary files /dev/null and b/priv/static/adminfe/chunk-c5f4.0827b1ce.css differ diff --git a/priv/static/adminfe/chunk-commons.7f6d2d11.css b/priv/static/adminfe/chunk-commons.7f6d2d11.css new file mode 100644 index 000000000..42f5e0ee9 Binary files /dev/null and b/priv/static/adminfe/chunk-commons.7f6d2d11.css differ diff --git a/priv/static/adminfe/chunk-d38a.cabdc22e.css b/priv/static/adminfe/chunk-d38a.cabdc22e.css deleted file mode 100644 index 4a2bf472b..000000000 Binary files a/priv/static/adminfe/chunk-d38a.cabdc22e.css and /dev/null differ diff --git a/priv/static/adminfe/chunk-e404.a56021ae.css b/priv/static/adminfe/chunk-e404.a56021ae.css new file mode 100644 index 000000000..7d8596ef6 Binary files /dev/null and b/priv/static/adminfe/chunk-e404.a56021ae.css differ diff --git a/priv/static/adminfe/chunk-e458.f88bafea.css b/priv/static/adminfe/chunk-e458.f88bafea.css deleted file mode 100644 index 085bdf076..000000000 Binary files a/priv/static/adminfe/chunk-e458.f88bafea.css and /dev/null differ diff --git a/priv/static/adminfe/index.html b/priv/static/adminfe/index.html index a236dd0f7..c8f62d0c7 100644 --- a/priv/static/adminfe/index.html +++ b/priv/static/adminfe/index.html @@ -1 +1 @@ -Admin FE
\ No newline at end of file +Admin FE
\ No newline at end of file diff --git a/priv/static/adminfe/static/js/app.203f69f8.js b/priv/static/adminfe/static/js/app.203f69f8.js deleted file mode 100644 index d06fdf71d..000000000 Binary files a/priv/static/adminfe/static/js/app.203f69f8.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/app.203f69f8.js.map b/priv/static/adminfe/static/js/app.203f69f8.js.map deleted file mode 100644 index eb78cd464..000000000 Binary files a/priv/static/adminfe/static/js/app.203f69f8.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/app.3fcec8f6.js b/priv/static/adminfe/static/js/app.3fcec8f6.js new file mode 100644 index 000000000..9a6fb1307 Binary files /dev/null and b/priv/static/adminfe/static/js/app.3fcec8f6.js differ diff --git a/priv/static/adminfe/static/js/app.3fcec8f6.js.map b/priv/static/adminfe/static/js/app.3fcec8f6.js.map new file mode 100644 index 000000000..cc4ce87b3 Binary files /dev/null and b/priv/static/adminfe/static/js/app.3fcec8f6.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-0558.75954137.js b/priv/static/adminfe/static/js/chunk-070d.7e10a520.js similarity index 98% rename from priv/static/adminfe/static/js/chunk-0558.75954137.js rename to priv/static/adminfe/static/js/chunk-070d.7e10a520.js index 7b29707fa..8726dbcd3 100644 Binary files a/priv/static/adminfe/static/js/chunk-0558.75954137.js and b/priv/static/adminfe/static/js/chunk-070d.7e10a520.js differ diff --git a/priv/static/adminfe/static/js/chunk-0558.75954137.js.map b/priv/static/adminfe/static/js/chunk-070d.7e10a520.js.map similarity index 99% rename from priv/static/adminfe/static/js/chunk-0558.75954137.js.map rename to priv/static/adminfe/static/js/chunk-070d.7e10a520.js.map index e9e2affb6..6b75a215e 100644 Binary files a/priv/static/adminfe/static/js/chunk-0558.75954137.js.map and b/priv/static/adminfe/static/js/chunk-070d.7e10a520.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-0778.b17650df.js.map b/priv/static/adminfe/static/js/chunk-0778.b17650df.js.map deleted file mode 100644 index 1f96c3236..000000000 Binary files a/priv/static/adminfe/static/js/chunk-0778.b17650df.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-0cbc.43ff796f.js b/priv/static/adminfe/static/js/chunk-0cbc.43ff796f.js new file mode 100644 index 000000000..232f0d447 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-0cbc.43ff796f.js differ diff --git a/priv/static/adminfe/static/js/chunk-0cbc.43ff796f.js.map b/priv/static/adminfe/static/js/chunk-0cbc.43ff796f.js.map new file mode 100644 index 000000000..dbca0ba8e Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-0cbc.43ff796f.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-143c.fc1825bf.js b/priv/static/adminfe/static/js/chunk-143c.fc1825bf.js new file mode 100644 index 000000000..6fbc5b1ed Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-143c.fc1825bf.js differ diff --git a/priv/static/adminfe/static/js/chunk-143c.fc1825bf.js.map b/priv/static/adminfe/static/js/chunk-143c.fc1825bf.js.map new file mode 100644 index 000000000..425a7427a Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-143c.fc1825bf.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-1609.98da6b01.js b/priv/static/adminfe/static/js/chunk-1609.98da6b01.js new file mode 100644 index 000000000..29dbad261 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-1609.98da6b01.js differ diff --git a/priv/static/adminfe/static/js/chunk-1609.98da6b01.js.map b/priv/static/adminfe/static/js/chunk-1609.98da6b01.js.map new file mode 100644 index 000000000..f287a503a Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-1609.98da6b01.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-176e.c4995511.js b/priv/static/adminfe/static/js/chunk-176e.c4995511.js new file mode 100644 index 000000000..80474b904 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-176e.c4995511.js differ diff --git a/priv/static/adminfe/static/js/chunk-176e.c4995511.js.map b/priv/static/adminfe/static/js/chunk-176e.c4995511.js.map new file mode 100644 index 000000000..f0caa5f62 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-176e.c4995511.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-22d2.a0cf7976.js b/priv/static/adminfe/static/js/chunk-22d2.a0cf7976.js deleted file mode 100644 index 903f553b0..000000000 Binary files a/priv/static/adminfe/static/js/chunk-22d2.a0cf7976.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-22d2.a0cf7976.js.map b/priv/static/adminfe/static/js/chunk-22d2.a0cf7976.js.map deleted file mode 100644 index 68735ed26..000000000 Binary files a/priv/static/adminfe/static/js/chunk-22d2.a0cf7976.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-3384.458ffaf1.js b/priv/static/adminfe/static/js/chunk-3384.458ffaf1.js deleted file mode 100644 index eb2b55d37..000000000 Binary files a/priv/static/adminfe/static/js/chunk-3384.458ffaf1.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-3384.458ffaf1.js.map b/priv/static/adminfe/static/js/chunk-3384.458ffaf1.js.map deleted file mode 100644 index 0bb577aab..000000000 Binary files a/priv/static/adminfe/static/js/chunk-3384.458ffaf1.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-4011.67fb1692.js b/priv/static/adminfe/static/js/chunk-4011.67fb1692.js deleted file mode 100644 index 775ed26f1..000000000 Binary files a/priv/static/adminfe/static/js/chunk-4011.67fb1692.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-4011.67fb1692.js.map b/priv/static/adminfe/static/js/chunk-4011.67fb1692.js.map deleted file mode 100644 index 6df398cbc..000000000 Binary files a/priv/static/adminfe/static/js/chunk-4011.67fb1692.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-43ca.3debeff7.js b/priv/static/adminfe/static/js/chunk-43ca.3debeff7.js new file mode 100644 index 000000000..6d653cf62 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-43ca.3debeff7.js differ diff --git a/priv/static/adminfe/static/js/chunk-43ca.3debeff7.js.map b/priv/static/adminfe/static/js/chunk-43ca.3debeff7.js.map new file mode 100644 index 000000000..f7976891f Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-43ca.3debeff7.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-0961.ef33e81b.js b/priv/static/adminfe/static/js/chunk-4e7e.91b5e73a.js similarity index 97% rename from priv/static/adminfe/static/js/chunk-0961.ef33e81b.js rename to priv/static/adminfe/static/js/chunk-4e7e.91b5e73a.js index e090bb93c..0fdf0de50 100644 Binary files a/priv/static/adminfe/static/js/chunk-0961.ef33e81b.js and b/priv/static/adminfe/static/js/chunk-4e7e.91b5e73a.js differ diff --git a/priv/static/adminfe/static/js/chunk-0961.ef33e81b.js.map b/priv/static/adminfe/static/js/chunk-4e7e.91b5e73a.js.map similarity index 99% rename from priv/static/adminfe/static/js/chunk-0961.ef33e81b.js.map rename to priv/static/adminfe/static/js/chunk-4e7e.91b5e73a.js.map index 97c6a4b54..7a6751cf8 100644 Binary files a/priv/static/adminfe/static/js/chunk-0961.ef33e81b.js.map and b/priv/static/adminfe/static/js/chunk-4e7e.91b5e73a.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-7f9e.c49aa694.js b/priv/static/adminfe/static/js/chunk-5118.7c48ad58.js similarity index 99% rename from priv/static/adminfe/static/js/chunk-7f9e.c49aa694.js rename to priv/static/adminfe/static/js/chunk-5118.7c48ad58.js index 9fb60af23..2357e225d 100644 Binary files a/priv/static/adminfe/static/js/chunk-7f9e.c49aa694.js and b/priv/static/adminfe/static/js/chunk-5118.7c48ad58.js differ diff --git a/priv/static/adminfe/static/js/chunk-7f9e.c49aa694.js.map b/priv/static/adminfe/static/js/chunk-5118.7c48ad58.js.map similarity index 99% rename from priv/static/adminfe/static/js/chunk-7f9e.c49aa694.js.map rename to priv/static/adminfe/static/js/chunk-5118.7c48ad58.js.map index 241c6cc21..c29b4b170 100644 Binary files a/priv/static/adminfe/static/js/chunk-7f9e.c49aa694.js.map and b/priv/static/adminfe/static/js/chunk-5118.7c48ad58.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-5882.7cbc4c1b.js b/priv/static/adminfe/static/js/chunk-5882.7cbc4c1b.js new file mode 100644 index 000000000..a29b6daab Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-5882.7cbc4c1b.js differ diff --git a/priv/static/adminfe/static/js/chunk-5882.7cbc4c1b.js.map b/priv/static/adminfe/static/js/chunk-5882.7cbc4c1b.js.map new file mode 100644 index 000000000..d1aa2037f Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-5882.7cbc4c1b.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-6b68.fbc0f684.js b/priv/static/adminfe/static/js/chunk-6b68.fbc0f684.js deleted file mode 100644 index bfdf936f8..000000000 Binary files a/priv/static/adminfe/static/js/chunk-6b68.fbc0f684.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-6b68.fbc0f684.js.map b/priv/static/adminfe/static/js/chunk-6b68.fbc0f684.js.map deleted file mode 100644 index d1d728b80..000000000 Binary files a/priv/static/adminfe/static/js/chunk-6b68.fbc0f684.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-6e81.3733ace2.js b/priv/static/adminfe/static/js/chunk-6e81.6efb01f4.js similarity index 97% rename from priv/static/adminfe/static/js/chunk-6e81.3733ace2.js rename to priv/static/adminfe/static/js/chunk-6e81.6efb01f4.js index c888ce03f..f40d31879 100644 Binary files a/priv/static/adminfe/static/js/chunk-6e81.3733ace2.js and b/priv/static/adminfe/static/js/chunk-6e81.6efb01f4.js differ diff --git a/priv/static/adminfe/static/js/chunk-6e81.3733ace2.js.map b/priv/static/adminfe/static/js/chunk-6e81.6efb01f4.js.map similarity index 98% rename from priv/static/adminfe/static/js/chunk-6e81.3733ace2.js.map rename to priv/static/adminfe/static/js/chunk-6e81.6efb01f4.js.map index 63128dd67..0390c3309 100644 Binary files a/priv/static/adminfe/static/js/chunk-6e81.3733ace2.js.map and b/priv/static/adminfe/static/js/chunk-6e81.6efb01f4.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-7506.a3364e53.js b/priv/static/adminfe/static/js/chunk-7506.a3364e53.js new file mode 100644 index 000000000..d4eaa356a Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-7506.a3364e53.js differ diff --git a/priv/static/adminfe/static/js/chunk-7506.a3364e53.js.map b/priv/static/adminfe/static/js/chunk-7506.a3364e53.js.map new file mode 100644 index 000000000..c8e9db8e0 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-7506.a3364e53.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-7637.8f5fb36e.js b/priv/static/adminfe/static/js/chunk-7637.8f5fb36e.js deleted file mode 100644 index b38644b98..000000000 Binary files a/priv/static/adminfe/static/js/chunk-7637.8f5fb36e.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-7637.8f5fb36e.js.map b/priv/static/adminfe/static/js/chunk-7637.8f5fb36e.js.map deleted file mode 100644 index ddd53f1cd..000000000 Binary files a/priv/static/adminfe/static/js/chunk-7637.8f5fb36e.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-0778.b17650df.js b/priv/static/adminfe/static/js/chunk-7c6b.e63ae1da.js similarity index 83% rename from priv/static/adminfe/static/js/chunk-0778.b17650df.js rename to priv/static/adminfe/static/js/chunk-7c6b.e63ae1da.js index 1a174cc1e..27478ddb1 100644 Binary files a/priv/static/adminfe/static/js/chunk-0778.b17650df.js and b/priv/static/adminfe/static/js/chunk-7c6b.e63ae1da.js differ diff --git a/priv/static/adminfe/static/js/chunk-7c6b.e63ae1da.js.map b/priv/static/adminfe/static/js/chunk-7c6b.e63ae1da.js.map new file mode 100644 index 000000000..2114a3c52 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-7c6b.e63ae1da.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-970d.2457e066.js b/priv/static/adminfe/static/js/chunk-970d.2457e066.js deleted file mode 100644 index 0f99d835e..000000000 Binary files a/priv/static/adminfe/static/js/chunk-970d.2457e066.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-970d.2457e066.js.map b/priv/static/adminfe/static/js/chunk-970d.2457e066.js.map deleted file mode 100644 index 6896407b0..000000000 Binary files a/priv/static/adminfe/static/js/chunk-970d.2457e066.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-c5f4.304479e7.js b/priv/static/adminfe/static/js/chunk-c5f4.304479e7.js new file mode 100644 index 000000000..4220621be Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-c5f4.304479e7.js differ diff --git a/priv/static/adminfe/static/js/chunk-c5f4.304479e7.js.map b/priv/static/adminfe/static/js/chunk-c5f4.304479e7.js.map new file mode 100644 index 000000000..2ab89731d Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-c5f4.304479e7.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-commons.5a106955.js b/priv/static/adminfe/static/js/chunk-commons.5a106955.js new file mode 100644 index 000000000..a6cf2ce52 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-commons.5a106955.js differ diff --git a/priv/static/adminfe/static/js/chunk-commons.5a106955.js.map b/priv/static/adminfe/static/js/chunk-commons.5a106955.js.map new file mode 100644 index 000000000..d924490e5 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-commons.5a106955.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-d38a.a851004a.js b/priv/static/adminfe/static/js/chunk-d38a.a851004a.js deleted file mode 100644 index c302af310..000000000 Binary files a/priv/static/adminfe/static/js/chunk-d38a.a851004a.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-d38a.a851004a.js.map b/priv/static/adminfe/static/js/chunk-d38a.a851004a.js.map deleted file mode 100644 index 6779f6dc1..000000000 Binary files a/priv/static/adminfe/static/js/chunk-d38a.a851004a.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-e404.554bc2e3.js b/priv/static/adminfe/static/js/chunk-e404.554bc2e3.js new file mode 100644 index 000000000..769e9f4f9 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-e404.554bc2e3.js differ diff --git a/priv/static/adminfe/static/js/chunk-e404.554bc2e3.js.map b/priv/static/adminfe/static/js/chunk-e404.554bc2e3.js.map new file mode 100644 index 000000000..e8214adbb Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-e404.554bc2e3.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-e458.4e5aad44.js b/priv/static/adminfe/static/js/chunk-e458.4e5aad44.js deleted file mode 100644 index a02c83110..000000000 Binary files a/priv/static/adminfe/static/js/chunk-e458.4e5aad44.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-e458.4e5aad44.js.map b/priv/static/adminfe/static/js/chunk-e458.4e5aad44.js.map deleted file mode 100644 index e623af23d..000000000 Binary files a/priv/static/adminfe/static/js/chunk-e458.4e5aad44.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/runtime.1b4f6ce0.js b/priv/static/adminfe/static/js/runtime.1b4f6ce0.js deleted file mode 100644 index 6558531ba..000000000 Binary files a/priv/static/adminfe/static/js/runtime.1b4f6ce0.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/runtime.1b4f6ce0.js.map b/priv/static/adminfe/static/js/runtime.1b4f6ce0.js.map deleted file mode 100644 index 9295ac636..000000000 Binary files a/priv/static/adminfe/static/js/runtime.1b4f6ce0.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/runtime.5bae86dc.js b/priv/static/adminfe/static/js/runtime.5bae86dc.js new file mode 100644 index 000000000..e5fb1554b Binary files /dev/null and b/priv/static/adminfe/static/js/runtime.5bae86dc.js differ diff --git a/priv/static/adminfe/static/js/runtime.5bae86dc.js.map b/priv/static/adminfe/static/js/runtime.5bae86dc.js.map new file mode 100644 index 000000000..46c6380d9 Binary files /dev/null and b/priv/static/adminfe/static/js/runtime.5bae86dc.js.map differ diff --git a/priv/static/embed.css b/priv/static/embed.css new file mode 100644 index 000000000..cc79ee7ab Binary files /dev/null and b/priv/static/embed.css differ diff --git a/priv/static/embed.js b/priv/static/embed.js new file mode 100644 index 000000000..f675f6417 Binary files /dev/null and b/priv/static/embed.js differ diff --git a/priv/static/index.html b/priv/static/index.html index b37cbaa67..ddd4ec4eb 100644 --- a/priv/static/index.html +++ b/priv/static/index.html @@ -1 +1 @@ -Pleroma
\ No newline at end of file +Pleroma
\ No newline at end of file diff --git a/priv/static/packs/arrow-key-navigation.js b/priv/static/packs/arrow-key-navigation.js index 710bab007..6f05ce3e1 100644 Binary files a/priv/static/packs/arrow-key-navigation.js and b/priv/static/packs/arrow-key-navigation.js differ diff --git a/priv/static/packs/base_polyfills.js b/priv/static/packs/base_polyfills.js index 092ef3b0a..04e0f921c 100644 Binary files a/priv/static/packs/base_polyfills.js and b/priv/static/packs/base_polyfills.js differ diff --git a/priv/static/packs/base_polyfills.js.LICENSE b/priv/static/packs/base_polyfills.js.LICENSE.txt similarity index 100% rename from priv/static/packs/base_polyfills.js.LICENSE rename to priv/static/packs/base_polyfills.js.LICENSE.txt diff --git a/priv/static/packs/base_polyfills.js.map b/priv/static/packs/base_polyfills.js.map index 21b2fa20e..a16ae5010 100644 Binary files a/priv/static/packs/base_polyfills.js.map and b/priv/static/packs/base_polyfills.js.map differ diff --git a/priv/static/packs/common.js b/priv/static/packs/common.js index 989a740a4..372dc3b82 100644 Binary files a/priv/static/packs/common.js and b/priv/static/packs/common.js differ diff --git a/priv/static/packs/common.js.LICENSE b/priv/static/packs/common.js.LICENSE.txt similarity index 100% rename from priv/static/packs/common.js.LICENSE rename to priv/static/packs/common.js.LICENSE.txt diff --git a/priv/static/packs/common.js.map b/priv/static/packs/common.js.map index 682fdbcf5..b077d20c4 100644 Binary files a/priv/static/packs/common.js.map and b/priv/static/packs/common.js.map differ diff --git a/priv/static/packs/containers/media_container.js b/priv/static/packs/containers/media_container.js index 6f0042d4c..d55f51c04 100644 Binary files a/priv/static/packs/containers/media_container.js and b/priv/static/packs/containers/media_container.js differ diff --git a/priv/static/packs/containers/media_container.js.LICENSE b/priv/static/packs/containers/media_container.js.LICENSE.txt similarity index 100% rename from priv/static/packs/containers/media_container.js.LICENSE rename to priv/static/packs/containers/media_container.js.LICENSE.txt index e72838f69..1fdf87e4c 100644 --- a/priv/static/packs/containers/media_container.js.LICENSE +++ b/priv/static/packs/containers/media_container.js.LICENSE.txt @@ -4,103 +4,69 @@ http://jedwatson.github.io/classnames */ +/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */ + /*! * wavesurfer.js 3.3.1 (2020-01-14) * https://github.com/katspaugh/wavesurfer.js * @license BSD-3-Clause */ -/*!****************************************!*\ - !*** ./node_modules/debounce/index.js ***! - \****************************************/ - -/*! no static exports found */ - -/*!***********************************!*\ - !*** ./src/drawer.canvasentry.js ***! - \***********************************/ - -/*! ./util/style */ - -/*! ./util/get-id */ - -/*!***********************!*\ - !*** ./src/drawer.js ***! - \***********************/ - -/*! ./util */ - -/*!***********************************!*\ - !*** ./src/drawer.multicanvas.js ***! - \***********************************/ +/*! ./ajax */ /*! ./drawer */ /*! ./drawer.canvasentry */ -/*!**************************************!*\ - !*** ./src/mediaelement-webaudio.js ***! - \**************************************/ +/*! ./drawer.multicanvas */ -/*! ./mediaelement */ +/*! ./extend */ -/*!*****************************!*\ - !*** ./src/mediaelement.js ***! - \*****************************/ +/*! ./fetch */ -/*! ./webaudio */ - -/*!**************************!*\ - !*** ./src/peakcache.js ***! - \**************************/ - -/*!**************************!*\ - !*** ./src/util/ajax.js ***! - \**************************/ - -/*! ./observer */ - -/*!****************************!*\ - !*** ./src/util/extend.js ***! - \****************************/ - -/*!***************************!*\ - !*** ./src/util/fetch.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/frame.js ***! - \***************************/ - -/*! ./request-animation-frame */ - -/*!****************************!*\ - !*** ./src/util/get-id.js ***! - \****************************/ - -/*!***************************!*\ - !*** ./src/util/index.js ***! - \***************************/ - -/*! ./ajax */ +/*! ./frame */ /*! ./get-id */ /*! ./max */ +/*! ./mediaelement */ + +/*! ./mediaelement-webaudio */ + /*! ./min */ -/*! ./extend */ +/*! ./observer */ -/*! ./style */ - -/*! ./frame */ - -/*! debounce */ +/*! ./peakcache */ /*! ./prevent-click */ -/*! ./fetch */ +/*! ./request-animation-frame */ + +/*! ./style */ + +/*! ./util */ + +/*! ./util/get-id */ + +/*! ./util/style */ + +/*! ./webaudio */ + +/*! debounce */ + +/*! no static exports found */ + +/*!***********************!*\ + !*** ./src/drawer.js ***! + \***********************/ /*!*************************!*\ !*** ./src/util/max.js ***! @@ -110,17 +76,29 @@ !*** ./src/util/min.js ***! \*************************/ -/*!******************************!*\ - !*** ./src/util/observer.js ***! - \******************************/ +/*!*************************!*\ + !*** ./src/webaudio.js ***! + \*************************/ -/*!***********************************!*\ - !*** ./src/util/prevent-click.js ***! - \***********************************/ +/*!**************************!*\ + !*** ./src/peakcache.js ***! + \**************************/ -/*!*********************************************!*\ - !*** ./src/util/request-animation-frame.js ***! - \*********************************************/ +/*!**************************!*\ + !*** ./src/util/ajax.js ***! + \**************************/ + +/*!***************************!*\ + !*** ./src/util/fetch.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/frame.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/index.js ***! + \***************************/ /*!***************************!*\ !*** ./src/util/style.js ***! @@ -130,20 +108,42 @@ !*** ./src/wavesurfer.js ***! \***************************/ -/*! ./drawer.multicanvas */ +/*!****************************!*\ + !*** ./src/util/extend.js ***! + \****************************/ -/*! ./peakcache */ +/*!****************************!*\ + !*** ./src/util/get-id.js ***! + \****************************/ -/*! ./mediaelement-webaudio */ +/*!*****************************!*\ + !*** ./src/mediaelement.js ***! + \*****************************/ -/*!*************************!*\ - !*** ./src/webaudio.js ***! - \*************************/ +/*!******************************!*\ + !*** ./src/util/observer.js ***! + \******************************/ -/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */ +/*!***********************************!*\ + !*** ./src/drawer.canvasentry.js ***! + \***********************************/ + +/*!***********************************!*\ + !*** ./src/drawer.multicanvas.js ***! + \***********************************/ + +/*!***********************************!*\ + !*** ./src/util/prevent-click.js ***! + \***********************************/ + +/*!**************************************!*\ + !*** ./src/mediaelement-webaudio.js ***! + \**************************************/ + +/*!****************************************!*\ + !*** ./node_modules/debounce/index.js ***! + \****************************************/ + +/*!*********************************************!*\ + !*** ./src/util/request-animation-frame.js ***! + \*********************************************/ diff --git a/priv/static/packs/containers/media_container.js.map b/priv/static/packs/containers/media_container.js.map index 26ccbae0b..bfe37b1d7 100644 Binary files a/priv/static/packs/containers/media_container.js.map and b/priv/static/packs/containers/media_container.js.map differ diff --git a/priv/static/packs/core/admin.js b/priv/static/packs/core/admin.js index 74b3a4573..000669e56 100644 Binary files a/priv/static/packs/core/admin.js and b/priv/static/packs/core/admin.js differ diff --git a/priv/static/packs/core/admin.js.map b/priv/static/packs/core/admin.js.map index aa80e7ea4..cdae04586 100644 Binary files a/priv/static/packs/core/admin.js.map and b/priv/static/packs/core/admin.js.map differ diff --git a/priv/static/packs/core/auth.js b/priv/static/packs/core/auth.js index 082b72b93..e682011a6 100644 Binary files a/priv/static/packs/core/auth.js and b/priv/static/packs/core/auth.js differ diff --git a/priv/static/packs/core/auth.js.LICENSE b/priv/static/packs/core/auth.js.LICENSE.txt similarity index 100% rename from priv/static/packs/core/auth.js.LICENSE rename to priv/static/packs/core/auth.js.LICENSE.txt diff --git a/priv/static/packs/core/auth.js.map b/priv/static/packs/core/auth.js.map index 57c319165..ddbefa466 100644 Binary files a/priv/static/packs/core/auth.js.map and b/priv/static/packs/core/auth.js.map differ diff --git a/priv/static/packs/core/common.js b/priv/static/packs/core/common.js index a74ef3128..94224c402 100644 Binary files a/priv/static/packs/core/common.js and b/priv/static/packs/core/common.js differ diff --git a/priv/static/packs/core/common.js.map b/priv/static/packs/core/common.js.map index 0a1f6d68d..bd4f5a5e2 100644 Binary files a/priv/static/packs/core/common.js.map and b/priv/static/packs/core/common.js.map differ diff --git a/priv/static/packs/core/embed.js b/priv/static/packs/core/embed.js index c136c2652..6a16743d4 100644 Binary files a/priv/static/packs/core/embed.js and b/priv/static/packs/core/embed.js differ diff --git a/priv/static/packs/core/mailer.js b/priv/static/packs/core/mailer.js index 50a41cefa..503710f5d 100644 Binary files a/priv/static/packs/core/mailer.js and b/priv/static/packs/core/mailer.js differ diff --git a/priv/static/packs/core/modal.js b/priv/static/packs/core/modal.js index 70b7c2498..a610ed274 100644 Binary files a/priv/static/packs/core/modal.js and b/priv/static/packs/core/modal.js differ diff --git a/priv/static/packs/core/modal.js.map b/priv/static/packs/core/modal.js.map index ac406915e..0e77ac03d 100644 Binary files a/priv/static/packs/core/modal.js.map and b/priv/static/packs/core/modal.js.map differ diff --git a/priv/static/packs/core/public.js b/priv/static/packs/core/public.js index fd535b14e..00ba6b774 100644 Binary files a/priv/static/packs/core/public.js and b/priv/static/packs/core/public.js differ diff --git a/priv/static/packs/core/public.js.map b/priv/static/packs/core/public.js.map index abcf37ca0..e89df0775 100644 Binary files a/priv/static/packs/core/public.js.map and b/priv/static/packs/core/public.js.map differ diff --git a/priv/static/packs/core/settings.js b/priv/static/packs/core/settings.js index 22b6c9f12..2c496dfa8 100644 Binary files a/priv/static/packs/core/settings.js and b/priv/static/packs/core/settings.js differ diff --git a/priv/static/packs/core/settings.js.LICENSE b/priv/static/packs/core/settings.js.LICENSE.txt similarity index 100% rename from priv/static/packs/core/settings.js.LICENSE rename to priv/static/packs/core/settings.js.LICENSE.txt diff --git a/priv/static/packs/core/settings.js.map b/priv/static/packs/core/settings.js.map index d61b87412..cd1dd9bf8 100644 Binary files a/priv/static/packs/core/settings.js.map and b/priv/static/packs/core/settings.js.map differ diff --git a/priv/static/packs/emoji_picker.js b/priv/static/packs/emoji_picker.js index 281bc43fd..959ae18e1 100644 Binary files a/priv/static/packs/emoji_picker.js and b/priv/static/packs/emoji_picker.js differ diff --git a/priv/static/packs/extra_polyfills.js b/priv/static/packs/extra_polyfills.js index 614adafe1..3e613035a 100644 Binary files a/priv/static/packs/extra_polyfills.js and b/priv/static/packs/extra_polyfills.js differ diff --git a/priv/static/packs/extra_polyfills.js.LICENSE b/priv/static/packs/extra_polyfills.js.LICENSE.txt similarity index 100% rename from priv/static/packs/extra_polyfills.js.LICENSE rename to priv/static/packs/extra_polyfills.js.LICENSE.txt diff --git a/priv/static/packs/extra_polyfills.js.map b/priv/static/packs/extra_polyfills.js.map index 4d96e42cd..524bdd7e1 100644 Binary files a/priv/static/packs/extra_polyfills.js.map and b/priv/static/packs/extra_polyfills.js.map differ diff --git a/priv/static/packs/features/account_gallery.js b/priv/static/packs/features/account_gallery.js index 19dbf1fec..6afdba220 100644 Binary files a/priv/static/packs/features/account_gallery.js and b/priv/static/packs/features/account_gallery.js differ diff --git a/priv/static/packs/features/account_gallery.js.map b/priv/static/packs/features/account_gallery.js.map index 6e91f9d92..6c6a30c94 100644 Binary files a/priv/static/packs/features/account_gallery.js.map and b/priv/static/packs/features/account_gallery.js.map differ diff --git a/priv/static/packs/features/account_timeline.js b/priv/static/packs/features/account_timeline.js index c8b46f89c..792bf05f0 100644 Binary files a/priv/static/packs/features/account_timeline.js and b/priv/static/packs/features/account_timeline.js differ diff --git a/priv/static/packs/features/account_timeline.js.map b/priv/static/packs/features/account_timeline.js.map index 779a67ad6..8766fb489 100644 Binary files a/priv/static/packs/features/account_timeline.js.map and b/priv/static/packs/features/account_timeline.js.map differ diff --git a/priv/static/packs/features/blocks.js b/priv/static/packs/features/blocks.js index 5aacfc455..b41df4ce4 100644 Binary files a/priv/static/packs/features/blocks.js and b/priv/static/packs/features/blocks.js differ diff --git a/priv/static/packs/features/blocks.js.map b/priv/static/packs/features/blocks.js.map index 57ff7e878..3935acd77 100644 Binary files a/priv/static/packs/features/blocks.js.map and b/priv/static/packs/features/blocks.js.map differ diff --git a/priv/static/packs/features/bookmarked_statuses.js b/priv/static/packs/features/bookmarked_statuses.js index 7a2eb9ded..15ff22331 100644 Binary files a/priv/static/packs/features/bookmarked_statuses.js and b/priv/static/packs/features/bookmarked_statuses.js differ diff --git a/priv/static/packs/features/bookmarked_statuses.js.map b/priv/static/packs/features/bookmarked_statuses.js.map index d6ab7f248..01b5594a6 100644 Binary files a/priv/static/packs/features/bookmarked_statuses.js.map and b/priv/static/packs/features/bookmarked_statuses.js.map differ diff --git a/priv/static/packs/features/community_timeline.js b/priv/static/packs/features/community_timeline.js index 88cb0bd86..69d215446 100644 Binary files a/priv/static/packs/features/community_timeline.js and b/priv/static/packs/features/community_timeline.js differ diff --git a/priv/static/packs/features/community_timeline.js.map b/priv/static/packs/features/community_timeline.js.map index 5f98a8561..66c4b57b4 100644 Binary files a/priv/static/packs/features/community_timeline.js.map and b/priv/static/packs/features/community_timeline.js.map differ diff --git a/priv/static/packs/features/compose.js b/priv/static/packs/features/compose.js index f6ebb3c06..fc3398284 100644 Binary files a/priv/static/packs/features/compose.js and b/priv/static/packs/features/compose.js differ diff --git a/priv/static/packs/features/compose.js.map b/priv/static/packs/features/compose.js.map index 3397e47c7..c0c9b14bd 100644 Binary files a/priv/static/packs/features/compose.js.map and b/priv/static/packs/features/compose.js.map differ diff --git a/priv/static/packs/features/direct_timeline.js b/priv/static/packs/features/direct_timeline.js index 76620a29a..ff330c383 100644 Binary files a/priv/static/packs/features/direct_timeline.js and b/priv/static/packs/features/direct_timeline.js differ diff --git a/priv/static/packs/features/direct_timeline.js.map b/priv/static/packs/features/direct_timeline.js.map index d0ef3c943..fd6845a06 100644 Binary files a/priv/static/packs/features/direct_timeline.js.map and b/priv/static/packs/features/direct_timeline.js.map differ diff --git a/priv/static/packs/features/directory.js b/priv/static/packs/features/directory.js index e02e54d5e..2c0111bc3 100644 Binary files a/priv/static/packs/features/directory.js and b/priv/static/packs/features/directory.js differ diff --git a/priv/static/packs/features/directory.js.map b/priv/static/packs/features/directory.js.map index eb45753be..be594d23d 100644 Binary files a/priv/static/packs/features/directory.js.map and b/priv/static/packs/features/directory.js.map differ diff --git a/priv/static/packs/features/domain_blocks.js b/priv/static/packs/features/domain_blocks.js index efa714703..2e59340de 100644 Binary files a/priv/static/packs/features/domain_blocks.js and b/priv/static/packs/features/domain_blocks.js differ diff --git a/priv/static/packs/features/domain_blocks.js.map b/priv/static/packs/features/domain_blocks.js.map index 2ffb7e1f2..687c9b1bc 100644 Binary files a/priv/static/packs/features/domain_blocks.js.map and b/priv/static/packs/features/domain_blocks.js.map differ diff --git a/priv/static/packs/features/favourited_statuses.js b/priv/static/packs/features/favourited_statuses.js index 747c47ea1..fcc60050f 100644 Binary files a/priv/static/packs/features/favourited_statuses.js and b/priv/static/packs/features/favourited_statuses.js differ diff --git a/priv/static/packs/features/favourited_statuses.js.map b/priv/static/packs/features/favourited_statuses.js.map index 136949ae3..5d1a473bf 100644 Binary files a/priv/static/packs/features/favourited_statuses.js.map and b/priv/static/packs/features/favourited_statuses.js.map differ diff --git a/priv/static/packs/features/favourites.js b/priv/static/packs/features/favourites.js index 605a1ed64..337ad7f6f 100644 Binary files a/priv/static/packs/features/favourites.js and b/priv/static/packs/features/favourites.js differ diff --git a/priv/static/packs/features/favourites.js.map b/priv/static/packs/features/favourites.js.map index d1586da7a..9f9501be2 100644 Binary files a/priv/static/packs/features/favourites.js.map and b/priv/static/packs/features/favourites.js.map differ diff --git a/priv/static/packs/features/follow_requests.js b/priv/static/packs/features/follow_requests.js index c022a1eee..902c02d13 100644 Binary files a/priv/static/packs/features/follow_requests.js and b/priv/static/packs/features/follow_requests.js differ diff --git a/priv/static/packs/features/follow_requests.js.map b/priv/static/packs/features/follow_requests.js.map index dd58baf4d..407dbd78e 100644 Binary files a/priv/static/packs/features/follow_requests.js.map and b/priv/static/packs/features/follow_requests.js.map differ diff --git a/priv/static/packs/features/followers.js b/priv/static/packs/features/followers.js index 67c5826cd..a74070322 100644 Binary files a/priv/static/packs/features/followers.js and b/priv/static/packs/features/followers.js differ diff --git a/priv/static/packs/features/followers.js.map b/priv/static/packs/features/followers.js.map index 44384dbc1..4e5cf5a2e 100644 Binary files a/priv/static/packs/features/followers.js.map and b/priv/static/packs/features/followers.js.map differ diff --git a/priv/static/packs/features/following.js b/priv/static/packs/features/following.js index e7bf1afb6..5189467a3 100644 Binary files a/priv/static/packs/features/following.js and b/priv/static/packs/features/following.js differ diff --git a/priv/static/packs/features/following.js.map b/priv/static/packs/features/following.js.map index 7f94461b6..dc4b4badb 100644 Binary files a/priv/static/packs/features/following.js.map and b/priv/static/packs/features/following.js.map differ diff --git a/priv/static/packs/features/generic_not_found.js b/priv/static/packs/features/generic_not_found.js index 4b6f0f228..7dce6d8e4 100644 Binary files a/priv/static/packs/features/generic_not_found.js and b/priv/static/packs/features/generic_not_found.js differ diff --git a/priv/static/packs/features/getting_started.js b/priv/static/packs/features/getting_started.js index 5b3f3471d..21450c8e1 100644 Binary files a/priv/static/packs/features/getting_started.js and b/priv/static/packs/features/getting_started.js differ diff --git a/priv/static/packs/features/getting_started.js.map b/priv/static/packs/features/getting_started.js.map index f53c06c10..808b2d8ba 100644 Binary files a/priv/static/packs/features/getting_started.js.map and b/priv/static/packs/features/getting_started.js.map differ diff --git a/priv/static/packs/features/glitch/async/directory.js b/priv/static/packs/features/glitch/async/directory.js index db8c2a912..725142be0 100644 Binary files a/priv/static/packs/features/glitch/async/directory.js and b/priv/static/packs/features/glitch/async/directory.js differ diff --git a/priv/static/packs/features/glitch/async/directory.js.map b/priv/static/packs/features/glitch/async/directory.js.map index 218c65282..e8c157894 100644 Binary files a/priv/static/packs/features/glitch/async/directory.js.map and b/priv/static/packs/features/glitch/async/directory.js.map differ diff --git a/priv/static/packs/features/glitch/async/list_adder.js b/priv/static/packs/features/glitch/async/list_adder.js index 1dc96e38c..456fbfb9a 100644 Binary files a/priv/static/packs/features/glitch/async/list_adder.js and b/priv/static/packs/features/glitch/async/list_adder.js differ diff --git a/priv/static/packs/features/glitch/async/list_adder.js.map b/priv/static/packs/features/glitch/async/list_adder.js.map index 956b752d1..cff691afb 100644 Binary files a/priv/static/packs/features/glitch/async/list_adder.js.map and b/priv/static/packs/features/glitch/async/list_adder.js.map differ diff --git a/priv/static/packs/features/glitch/async/search.js b/priv/static/packs/features/glitch/async/search.js index f39dc3db0..2edb95c49 100644 Binary files a/priv/static/packs/features/glitch/async/search.js and b/priv/static/packs/features/glitch/async/search.js differ diff --git a/priv/static/packs/features/hashtag_timeline.js b/priv/static/packs/features/hashtag_timeline.js index f54b99ce8..139ca9b33 100644 Binary files a/priv/static/packs/features/hashtag_timeline.js and b/priv/static/packs/features/hashtag_timeline.js differ diff --git a/priv/static/packs/features/hashtag_timeline.js.map b/priv/static/packs/features/hashtag_timeline.js.map index 909563919..3bd79924b 100644 Binary files a/priv/static/packs/features/hashtag_timeline.js.map and b/priv/static/packs/features/hashtag_timeline.js.map differ diff --git a/priv/static/packs/features/home_timeline.js b/priv/static/packs/features/home_timeline.js index 33237345b..9286699bd 100644 Binary files a/priv/static/packs/features/home_timeline.js and b/priv/static/packs/features/home_timeline.js differ diff --git a/priv/static/packs/features/home_timeline.js.map b/priv/static/packs/features/home_timeline.js.map index 20a487956..156d44782 100644 Binary files a/priv/static/packs/features/home_timeline.js.map and b/priv/static/packs/features/home_timeline.js.map differ diff --git a/priv/static/packs/features/keyboard_shortcuts.js b/priv/static/packs/features/keyboard_shortcuts.js index 484204569..cfeb074bd 100644 Binary files a/priv/static/packs/features/keyboard_shortcuts.js and b/priv/static/packs/features/keyboard_shortcuts.js differ diff --git a/priv/static/packs/features/keyboard_shortcuts.js.map b/priv/static/packs/features/keyboard_shortcuts.js.map index a383cb935..d736f454e 100644 Binary files a/priv/static/packs/features/keyboard_shortcuts.js.map and b/priv/static/packs/features/keyboard_shortcuts.js.map differ diff --git a/priv/static/packs/features/list_adder.js b/priv/static/packs/features/list_adder.js index 84fe9926c..0b4da1969 100644 Binary files a/priv/static/packs/features/list_adder.js and b/priv/static/packs/features/list_adder.js differ diff --git a/priv/static/packs/features/list_adder.js.map b/priv/static/packs/features/list_adder.js.map index f29e5f9f8..f3b671cad 100644 Binary files a/priv/static/packs/features/list_adder.js.map and b/priv/static/packs/features/list_adder.js.map differ diff --git a/priv/static/packs/features/list_editor.js b/priv/static/packs/features/list_editor.js index 76f0f6599..f63276d6c 100644 Binary files a/priv/static/packs/features/list_editor.js and b/priv/static/packs/features/list_editor.js differ diff --git a/priv/static/packs/features/list_editor.js.map b/priv/static/packs/features/list_editor.js.map index c2ab32c4a..ee536303a 100644 Binary files a/priv/static/packs/features/list_editor.js.map and b/priv/static/packs/features/list_editor.js.map differ diff --git a/priv/static/packs/features/list_timeline.js b/priv/static/packs/features/list_timeline.js index 391d15b87..8592d85a1 100644 Binary files a/priv/static/packs/features/list_timeline.js and b/priv/static/packs/features/list_timeline.js differ diff --git a/priv/static/packs/features/list_timeline.js.map b/priv/static/packs/features/list_timeline.js.map index 766670bd2..6e55f0a0c 100644 Binary files a/priv/static/packs/features/list_timeline.js.map and b/priv/static/packs/features/list_timeline.js.map differ diff --git a/priv/static/packs/features/lists.js b/priv/static/packs/features/lists.js index fa26c7031..702c3adcf 100644 Binary files a/priv/static/packs/features/lists.js and b/priv/static/packs/features/lists.js differ diff --git a/priv/static/packs/features/lists.js.map b/priv/static/packs/features/lists.js.map index 2e4811657..58c03a95b 100644 Binary files a/priv/static/packs/features/lists.js.map and b/priv/static/packs/features/lists.js.map differ diff --git a/priv/static/packs/features/mutes.js b/priv/static/packs/features/mutes.js index 3ed714fbd..444d6cd06 100644 Binary files a/priv/static/packs/features/mutes.js and b/priv/static/packs/features/mutes.js differ diff --git a/priv/static/packs/features/mutes.js.map b/priv/static/packs/features/mutes.js.map index 83d73d273..24155f586 100644 Binary files a/priv/static/packs/features/mutes.js.map and b/priv/static/packs/features/mutes.js.map differ diff --git a/priv/static/packs/features/notifications.js b/priv/static/packs/features/notifications.js index 49f828901..419aeeaac 100644 Binary files a/priv/static/packs/features/notifications.js and b/priv/static/packs/features/notifications.js differ diff --git a/priv/static/packs/features/notifications.js.map b/priv/static/packs/features/notifications.js.map index d466060de..80ef6305b 100644 Binary files a/priv/static/packs/features/notifications.js.map and b/priv/static/packs/features/notifications.js.map differ diff --git a/priv/static/packs/features/pinned_statuses.js b/priv/static/packs/features/pinned_statuses.js index b5a366202..1aa2d549a 100644 Binary files a/priv/static/packs/features/pinned_statuses.js and b/priv/static/packs/features/pinned_statuses.js differ diff --git a/priv/static/packs/features/pinned_statuses.js.map b/priv/static/packs/features/pinned_statuses.js.map index 2920e023c..898fcfd27 100644 Binary files a/priv/static/packs/features/pinned_statuses.js.map and b/priv/static/packs/features/pinned_statuses.js.map differ diff --git a/priv/static/packs/features/public_timeline.js b/priv/static/packs/features/public_timeline.js index eb800e73e..a32594de9 100644 Binary files a/priv/static/packs/features/public_timeline.js and b/priv/static/packs/features/public_timeline.js differ diff --git a/priv/static/packs/features/public_timeline.js.map b/priv/static/packs/features/public_timeline.js.map index eb39bab9d..92bd1de46 100644 Binary files a/priv/static/packs/features/public_timeline.js.map and b/priv/static/packs/features/public_timeline.js.map differ diff --git a/priv/static/packs/features/reblogs.js b/priv/static/packs/features/reblogs.js index d8598f305..857ed6a60 100644 Binary files a/priv/static/packs/features/reblogs.js and b/priv/static/packs/features/reblogs.js differ diff --git a/priv/static/packs/features/reblogs.js.map b/priv/static/packs/features/reblogs.js.map index ec193dd4f..211b4a843 100644 Binary files a/priv/static/packs/features/reblogs.js.map and b/priv/static/packs/features/reblogs.js.map differ diff --git a/priv/static/packs/features/search.js b/priv/static/packs/features/search.js index 7efd675f3..64bbc4984 100644 Binary files a/priv/static/packs/features/search.js and b/priv/static/packs/features/search.js differ diff --git a/priv/static/packs/features/status.js b/priv/static/packs/features/status.js index bd8c71d8f..dace442de 100644 Binary files a/priv/static/packs/features/status.js and b/priv/static/packs/features/status.js differ diff --git a/priv/static/packs/features/status.js.map b/priv/static/packs/features/status.js.map index 55d5f08e7..f4688ee17 100644 Binary files a/priv/static/packs/features/status.js.map and b/priv/static/packs/features/status.js.map differ diff --git a/priv/static/packs/flavours/glitch/about.js b/priv/static/packs/flavours/glitch/about.js index b858f1220..19611cdda 100644 Binary files a/priv/static/packs/flavours/glitch/about.js and b/priv/static/packs/flavours/glitch/about.js differ diff --git a/priv/static/packs/flavours/glitch/about.js.LICENSE b/priv/static/packs/flavours/glitch/about.js.LICENSE.txt similarity index 98% rename from priv/static/packs/flavours/glitch/about.js.LICENSE rename to priv/static/packs/flavours/glitch/about.js.LICENSE.txt index 0a0301353..90a9a7678 100644 --- a/priv/static/packs/flavours/glitch/about.js.LICENSE +++ b/priv/static/packs/flavours/glitch/about.js.LICENSE.txt @@ -1,3 +1,9 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + /*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see @@ -12,31 +18,145 @@ * MIT Licensed */ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/** @license React v16.12.0 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. +/*! + * wavesurfer.js 3.3.1 (2020-01-14) + * https://github.com/katspaugh/wavesurfer.js + * @license BSD-3-Clause */ -/** @license React v16.12.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ +/*! ./ajax */ -/** @license React v0.18.0 +/*! ./drawer */ + +/*! ./drawer.canvasentry */ + +/*! ./drawer.multicanvas */ + +/*! ./extend */ + +/*! ./fetch */ + +/*! ./frame */ + +/*! ./get-id */ + +/*! ./max */ + +/*! ./mediaelement */ + +/*! ./mediaelement-webaudio */ + +/*! ./min */ + +/*! ./observer */ + +/*! ./peakcache */ + +/*! ./prevent-click */ + +/*! ./request-animation-frame */ + +/*! ./style */ + +/*! ./util */ + +/*! ./util/get-id */ + +/*! ./util/style */ + +/*! ./webaudio */ + +/*! debounce */ + +/*! https://mths.be/punycode v1.4.1 by @mathias */ + +/*! no static exports found */ + +/*!***********************!*\ + !*** ./src/drawer.js ***! + \***********************/ + +/*!*************************!*\ + !*** ./src/util/max.js ***! + \*************************/ + +/*!*************************!*\ + !*** ./src/util/min.js ***! + \*************************/ + +/*!*************************!*\ + !*** ./src/webaudio.js ***! + \*************************/ + +/*!**************************!*\ + !*** ./src/peakcache.js ***! + \**************************/ + +/*!**************************!*\ + !*** ./src/util/ajax.js ***! + \**************************/ + +/*!***************************!*\ + !*** ./src/util/fetch.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/frame.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/index.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/style.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/wavesurfer.js ***! + \***************************/ + +/*!****************************!*\ + !*** ./src/util/extend.js ***! + \****************************/ + +/*!****************************!*\ + !*** ./src/util/get-id.js ***! + \****************************/ + +/*!*****************************!*\ + !*** ./src/mediaelement.js ***! + \*****************************/ + +/*!******************************!*\ + !*** ./src/util/observer.js ***! + \******************************/ + +/*!***********************************!*\ + !*** ./src/drawer.canvasentry.js ***! + \***********************************/ + +/*!***********************************!*\ + !*** ./src/drawer.multicanvas.js ***! + \***********************************/ + +/*!***********************************!*\ + !*** ./src/util/prevent-click.js ***! + \***********************************/ + +/*!**************************************!*\ + !*** ./src/mediaelement-webaudio.js ***! + \**************************************/ + +/*!****************************************!*\ + !*** ./node_modules/debounce/index.js ***! + \****************************************/ + +/*!*********************************************!*\ + !*** ./src/util/request-animation-frame.js ***! + \*********************************************/ + +/** @license React v0.19.0 * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -54,140 +174,20 @@ object-assign * LICENSE file in the root directory of this source tree. */ -/*! - * wavesurfer.js 3.3.1 (2020-01-14) - * https://github.com/katspaugh/wavesurfer.js - * @license BSD-3-Clause +/** @license React v16.13.0 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ -/*!****************************************!*\ - !*** ./node_modules/debounce/index.js ***! - \****************************************/ - -/*! no static exports found */ - -/*!***********************************!*\ - !*** ./src/drawer.canvasentry.js ***! - \***********************************/ - -/*! ./util/style */ - -/*! ./util/get-id */ - -/*!***********************!*\ - !*** ./src/drawer.js ***! - \***********************/ - -/*! ./util */ - -/*!***********************************!*\ - !*** ./src/drawer.multicanvas.js ***! - \***********************************/ - -/*! ./drawer */ - -/*! ./drawer.canvasentry */ - -/*!**************************************!*\ - !*** ./src/mediaelement-webaudio.js ***! - \**************************************/ - -/*! ./mediaelement */ - -/*!*****************************!*\ - !*** ./src/mediaelement.js ***! - \*****************************/ - -/*! ./webaudio */ - -/*!**************************!*\ - !*** ./src/peakcache.js ***! - \**************************/ - -/*!**************************!*\ - !*** ./src/util/ajax.js ***! - \**************************/ - -/*! ./observer */ - -/*!****************************!*\ - !*** ./src/util/extend.js ***! - \****************************/ - -/*!***************************!*\ - !*** ./src/util/fetch.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/frame.js ***! - \***************************/ - -/*! ./request-animation-frame */ - -/*!****************************!*\ - !*** ./src/util/get-id.js ***! - \****************************/ - -/*!***************************!*\ - !*** ./src/util/index.js ***! - \***************************/ - -/*! ./ajax */ - -/*! ./get-id */ - -/*! ./max */ - -/*! ./min */ - -/*! ./extend */ - -/*! ./style */ - -/*! ./frame */ - -/*! debounce */ - -/*! ./prevent-click */ - -/*! ./fetch */ - -/*!*************************!*\ - !*** ./src/util/max.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/util/min.js ***! - \*************************/ - -/*!******************************!*\ - !*** ./src/util/observer.js ***! - \******************************/ - -/*!***********************************!*\ - !*** ./src/util/prevent-click.js ***! - \***********************************/ - -/*!*********************************************!*\ - !*** ./src/util/request-animation-frame.js ***! - \*********************************************/ - -/*!***************************!*\ - !*** ./src/util/style.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/wavesurfer.js ***! - \***************************/ - -/*! ./drawer.multicanvas */ - -/*! ./peakcache */ - -/*! ./mediaelement-webaudio */ - -/*!*************************!*\ - !*** ./src/webaudio.js ***! - \*************************/ - -/*! https://mths.be/punycode v1.4.1 by @mathias */ +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/priv/static/packs/flavours/glitch/about.js.map b/priv/static/packs/flavours/glitch/about.js.map index bc9d0864b..4914692f5 100644 Binary files a/priv/static/packs/flavours/glitch/about.js.map and b/priv/static/packs/flavours/glitch/about.js.map differ diff --git a/priv/static/packs/flavours/glitch/admin.js b/priv/static/packs/flavours/glitch/admin.js index b6d94af56..82d7437f1 100644 Binary files a/priv/static/packs/flavours/glitch/admin.js and b/priv/static/packs/flavours/glitch/admin.js differ diff --git a/priv/static/packs/flavours/glitch/admin.js.LICENSE b/priv/static/packs/flavours/glitch/admin.js.LICENSE.txt similarity index 91% rename from priv/static/packs/flavours/glitch/admin.js.LICENSE rename to priv/static/packs/flavours/glitch/admin.js.LICENSE.txt index 448b94017..2196b2def 100644 --- a/priv/static/packs/flavours/glitch/admin.js.LICENSE +++ b/priv/static/packs/flavours/glitch/admin.js.LICENSE.txt @@ -1,22 +1,10 @@ -/** @license React v16.12.0 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ -/** @license React v16.12.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v0.18.0 +/** @license React v0.19.0 * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -34,8 +22,20 @@ * LICENSE file in the root directory of this source tree. */ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ +/** @license React v16.13.0 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/priv/static/packs/flavours/glitch/admin.js.map b/priv/static/packs/flavours/glitch/admin.js.map index 203550c99..df66cbc6a 100644 Binary files a/priv/static/packs/flavours/glitch/admin.js.map and b/priv/static/packs/flavours/glitch/admin.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/account_gallery.js b/priv/static/packs/flavours/glitch/async/account_gallery.js index 50c23a1cf..a282e6ebc 100644 Binary files a/priv/static/packs/flavours/glitch/async/account_gallery.js and b/priv/static/packs/flavours/glitch/async/account_gallery.js differ diff --git a/priv/static/packs/flavours/glitch/async/account_gallery.js.map b/priv/static/packs/flavours/glitch/async/account_gallery.js.map index 2fcee6618..0aeddd9ef 100644 Binary files a/priv/static/packs/flavours/glitch/async/account_gallery.js.map and b/priv/static/packs/flavours/glitch/async/account_gallery.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/account_timeline.js b/priv/static/packs/flavours/glitch/async/account_timeline.js index ebf40ef53..80863af8d 100644 Binary files a/priv/static/packs/flavours/glitch/async/account_timeline.js and b/priv/static/packs/flavours/glitch/async/account_timeline.js differ diff --git a/priv/static/packs/flavours/glitch/async/account_timeline.js.map b/priv/static/packs/flavours/glitch/async/account_timeline.js.map index 2288ad945..af4549145 100644 Binary files a/priv/static/packs/flavours/glitch/async/account_timeline.js.map and b/priv/static/packs/flavours/glitch/async/account_timeline.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/block_modal.js b/priv/static/packs/flavours/glitch/async/block_modal.js index 7a5c639aa..ff78212cd 100644 Binary files a/priv/static/packs/flavours/glitch/async/block_modal.js and b/priv/static/packs/flavours/glitch/async/block_modal.js differ diff --git a/priv/static/packs/flavours/glitch/async/block_modal.js.map b/priv/static/packs/flavours/glitch/async/block_modal.js.map index 4214332d9..a99478646 100644 Binary files a/priv/static/packs/flavours/glitch/async/block_modal.js.map and b/priv/static/packs/flavours/glitch/async/block_modal.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/blocks.js b/priv/static/packs/flavours/glitch/async/blocks.js index 868309ca2..7287b772f 100644 Binary files a/priv/static/packs/flavours/glitch/async/blocks.js and b/priv/static/packs/flavours/glitch/async/blocks.js differ diff --git a/priv/static/packs/flavours/glitch/async/blocks.js.map b/priv/static/packs/flavours/glitch/async/blocks.js.map index bf2305454..0f1981357 100644 Binary files a/priv/static/packs/flavours/glitch/async/blocks.js.map and b/priv/static/packs/flavours/glitch/async/blocks.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/bookmarked_statuses.js b/priv/static/packs/flavours/glitch/async/bookmarked_statuses.js index 7621abf44..45e9d1417 100644 Binary files a/priv/static/packs/flavours/glitch/async/bookmarked_statuses.js and b/priv/static/packs/flavours/glitch/async/bookmarked_statuses.js differ diff --git a/priv/static/packs/flavours/glitch/async/bookmarked_statuses.js.map b/priv/static/packs/flavours/glitch/async/bookmarked_statuses.js.map index d784d0af2..050a31135 100644 Binary files a/priv/static/packs/flavours/glitch/async/bookmarked_statuses.js.map and b/priv/static/packs/flavours/glitch/async/bookmarked_statuses.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/community_timeline.js b/priv/static/packs/flavours/glitch/async/community_timeline.js index 73d1c24bc..75e21406f 100644 Binary files a/priv/static/packs/flavours/glitch/async/community_timeline.js and b/priv/static/packs/flavours/glitch/async/community_timeline.js differ diff --git a/priv/static/packs/flavours/glitch/async/community_timeline.js.map b/priv/static/packs/flavours/glitch/async/community_timeline.js.map index 690da36f0..da2a24bdf 100644 Binary files a/priv/static/packs/flavours/glitch/async/community_timeline.js.map and b/priv/static/packs/flavours/glitch/async/community_timeline.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/compose.js b/priv/static/packs/flavours/glitch/async/compose.js index 18da703a5..dbbe43090 100644 Binary files a/priv/static/packs/flavours/glitch/async/compose.js and b/priv/static/packs/flavours/glitch/async/compose.js differ diff --git a/priv/static/packs/flavours/glitch/async/compose.js.map b/priv/static/packs/flavours/glitch/async/compose.js.map index 8df71764e..5770307aa 100644 Binary files a/priv/static/packs/flavours/glitch/async/compose.js.map and b/priv/static/packs/flavours/glitch/async/compose.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/direct_timeline.js b/priv/static/packs/flavours/glitch/async/direct_timeline.js index 66e783179..4b19a1383 100644 Binary files a/priv/static/packs/flavours/glitch/async/direct_timeline.js and b/priv/static/packs/flavours/glitch/async/direct_timeline.js differ diff --git a/priv/static/packs/flavours/glitch/async/direct_timeline.js.map b/priv/static/packs/flavours/glitch/async/direct_timeline.js.map index da686195a..83b0d0c28 100644 Binary files a/priv/static/packs/flavours/glitch/async/direct_timeline.js.map and b/priv/static/packs/flavours/glitch/async/direct_timeline.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/domain_blocks.js b/priv/static/packs/flavours/glitch/async/domain_blocks.js index d78750fe9..74fac4c3e 100644 Binary files a/priv/static/packs/flavours/glitch/async/domain_blocks.js and b/priv/static/packs/flavours/glitch/async/domain_blocks.js differ diff --git a/priv/static/packs/flavours/glitch/async/domain_blocks.js.map b/priv/static/packs/flavours/glitch/async/domain_blocks.js.map index a877d0ea5..9534e788e 100644 Binary files a/priv/static/packs/flavours/glitch/async/domain_blocks.js.map and b/priv/static/packs/flavours/glitch/async/domain_blocks.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/embed_modal.js b/priv/static/packs/flavours/glitch/async/embed_modal.js index 770375048..6b2709250 100644 Binary files a/priv/static/packs/flavours/glitch/async/embed_modal.js and b/priv/static/packs/flavours/glitch/async/embed_modal.js differ diff --git a/priv/static/packs/flavours/glitch/async/embed_modal.js.map b/priv/static/packs/flavours/glitch/async/embed_modal.js.map index ea025afc1..848f507d6 100644 Binary files a/priv/static/packs/flavours/glitch/async/embed_modal.js.map and b/priv/static/packs/flavours/glitch/async/embed_modal.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/emoji_picker.js b/priv/static/packs/flavours/glitch/async/emoji_picker.js index 21db597b1..57833a531 100644 Binary files a/priv/static/packs/flavours/glitch/async/emoji_picker.js and b/priv/static/packs/flavours/glitch/async/emoji_picker.js differ diff --git a/priv/static/packs/flavours/glitch/async/favourited_statuses.js b/priv/static/packs/flavours/glitch/async/favourited_statuses.js index aaf19c371..4401228f6 100644 Binary files a/priv/static/packs/flavours/glitch/async/favourited_statuses.js and b/priv/static/packs/flavours/glitch/async/favourited_statuses.js differ diff --git a/priv/static/packs/flavours/glitch/async/favourited_statuses.js.map b/priv/static/packs/flavours/glitch/async/favourited_statuses.js.map index 148d77388..8fbbf1484 100644 Binary files a/priv/static/packs/flavours/glitch/async/favourited_statuses.js.map and b/priv/static/packs/flavours/glitch/async/favourited_statuses.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/favourites.js b/priv/static/packs/flavours/glitch/async/favourites.js index 168e30029..59b9cec75 100644 Binary files a/priv/static/packs/flavours/glitch/async/favourites.js and b/priv/static/packs/flavours/glitch/async/favourites.js differ diff --git a/priv/static/packs/flavours/glitch/async/favourites.js.map b/priv/static/packs/flavours/glitch/async/favourites.js.map index d9b11d0cb..4819f60ec 100644 Binary files a/priv/static/packs/flavours/glitch/async/favourites.js.map and b/priv/static/packs/flavours/glitch/async/favourites.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/follow_requests.js b/priv/static/packs/flavours/glitch/async/follow_requests.js index 40bde6f6f..57ed8204e 100644 Binary files a/priv/static/packs/flavours/glitch/async/follow_requests.js and b/priv/static/packs/flavours/glitch/async/follow_requests.js differ diff --git a/priv/static/packs/flavours/glitch/async/follow_requests.js.map b/priv/static/packs/flavours/glitch/async/follow_requests.js.map index 9b3fcd854..c0a2db075 100644 Binary files a/priv/static/packs/flavours/glitch/async/follow_requests.js.map and b/priv/static/packs/flavours/glitch/async/follow_requests.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/followers.js b/priv/static/packs/flavours/glitch/async/followers.js index de0905eb3..fdb647ef2 100644 Binary files a/priv/static/packs/flavours/glitch/async/followers.js and b/priv/static/packs/flavours/glitch/async/followers.js differ diff --git a/priv/static/packs/flavours/glitch/async/followers.js.map b/priv/static/packs/flavours/glitch/async/followers.js.map index 89f1588f9..cc1470d15 100644 Binary files a/priv/static/packs/flavours/glitch/async/followers.js.map and b/priv/static/packs/flavours/glitch/async/followers.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/following.js b/priv/static/packs/flavours/glitch/async/following.js index 98589dd95..60f78c45c 100644 Binary files a/priv/static/packs/flavours/glitch/async/following.js and b/priv/static/packs/flavours/glitch/async/following.js differ diff --git a/priv/static/packs/flavours/glitch/async/following.js.map b/priv/static/packs/flavours/glitch/async/following.js.map index 66ded9c53..7fff787bb 100644 Binary files a/priv/static/packs/flavours/glitch/async/following.js.map and b/priv/static/packs/flavours/glitch/async/following.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/generic_not_found.js b/priv/static/packs/flavours/glitch/async/generic_not_found.js index 4546a62ef..dca1026b6 100644 Binary files a/priv/static/packs/flavours/glitch/async/generic_not_found.js and b/priv/static/packs/flavours/glitch/async/generic_not_found.js differ diff --git a/priv/static/packs/flavours/glitch/async/getting_started.js b/priv/static/packs/flavours/glitch/async/getting_started.js index cf8a8c738..b1e5d2309 100644 Binary files a/priv/static/packs/flavours/glitch/async/getting_started.js and b/priv/static/packs/flavours/glitch/async/getting_started.js differ diff --git a/priv/static/packs/flavours/glitch/async/getting_started.js.map b/priv/static/packs/flavours/glitch/async/getting_started.js.map index e63299ca7..5c9294fff 100644 Binary files a/priv/static/packs/flavours/glitch/async/getting_started.js.map and b/priv/static/packs/flavours/glitch/async/getting_started.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/getting_started_misc.js b/priv/static/packs/flavours/glitch/async/getting_started_misc.js index 1efef99bf..2b17ff3bc 100644 Binary files a/priv/static/packs/flavours/glitch/async/getting_started_misc.js and b/priv/static/packs/flavours/glitch/async/getting_started_misc.js differ diff --git a/priv/static/packs/flavours/glitch/async/getting_started_misc.js.map b/priv/static/packs/flavours/glitch/async/getting_started_misc.js.map index 6917180c4..ba253da51 100644 Binary files a/priv/static/packs/flavours/glitch/async/getting_started_misc.js.map and b/priv/static/packs/flavours/glitch/async/getting_started_misc.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/hashtag_timeline.js b/priv/static/packs/flavours/glitch/async/hashtag_timeline.js index b997808d8..70c5b1c02 100644 Binary files a/priv/static/packs/flavours/glitch/async/hashtag_timeline.js and b/priv/static/packs/flavours/glitch/async/hashtag_timeline.js differ diff --git a/priv/static/packs/flavours/glitch/async/hashtag_timeline.js.map b/priv/static/packs/flavours/glitch/async/hashtag_timeline.js.map index 602538af9..f495dd459 100644 Binary files a/priv/static/packs/flavours/glitch/async/hashtag_timeline.js.map and b/priv/static/packs/flavours/glitch/async/hashtag_timeline.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/home_timeline.js b/priv/static/packs/flavours/glitch/async/home_timeline.js index 63d338bb1..778f336ed 100644 Binary files a/priv/static/packs/flavours/glitch/async/home_timeline.js and b/priv/static/packs/flavours/glitch/async/home_timeline.js differ diff --git a/priv/static/packs/flavours/glitch/async/home_timeline.js.map b/priv/static/packs/flavours/glitch/async/home_timeline.js.map index c063eebe2..37db6a195 100644 Binary files a/priv/static/packs/flavours/glitch/async/home_timeline.js.map and b/priv/static/packs/flavours/glitch/async/home_timeline.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/keyboard_shortcuts.js b/priv/static/packs/flavours/glitch/async/keyboard_shortcuts.js index 0d59ee5ec..b6037c53e 100644 Binary files a/priv/static/packs/flavours/glitch/async/keyboard_shortcuts.js and b/priv/static/packs/flavours/glitch/async/keyboard_shortcuts.js differ diff --git a/priv/static/packs/flavours/glitch/async/keyboard_shortcuts.js.map b/priv/static/packs/flavours/glitch/async/keyboard_shortcuts.js.map index 18b367cfd..2db9f69d1 100644 Binary files a/priv/static/packs/flavours/glitch/async/keyboard_shortcuts.js.map and b/priv/static/packs/flavours/glitch/async/keyboard_shortcuts.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/list_editor.js b/priv/static/packs/flavours/glitch/async/list_editor.js index 59bcc86a6..d80cb005a 100644 Binary files a/priv/static/packs/flavours/glitch/async/list_editor.js and b/priv/static/packs/flavours/glitch/async/list_editor.js differ diff --git a/priv/static/packs/flavours/glitch/async/list_editor.js.map b/priv/static/packs/flavours/glitch/async/list_editor.js.map index c0b2041fd..32db1fab1 100644 Binary files a/priv/static/packs/flavours/glitch/async/list_editor.js.map and b/priv/static/packs/flavours/glitch/async/list_editor.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/list_timeline.js b/priv/static/packs/flavours/glitch/async/list_timeline.js index 8f1d12946..7be347902 100644 Binary files a/priv/static/packs/flavours/glitch/async/list_timeline.js and b/priv/static/packs/flavours/glitch/async/list_timeline.js differ diff --git a/priv/static/packs/flavours/glitch/async/list_timeline.js.map b/priv/static/packs/flavours/glitch/async/list_timeline.js.map index 109de2301..82e887f76 100644 Binary files a/priv/static/packs/flavours/glitch/async/list_timeline.js.map and b/priv/static/packs/flavours/glitch/async/list_timeline.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/lists.js b/priv/static/packs/flavours/glitch/async/lists.js index 09e9c2090..01359b617 100644 Binary files a/priv/static/packs/flavours/glitch/async/lists.js and b/priv/static/packs/flavours/glitch/async/lists.js differ diff --git a/priv/static/packs/flavours/glitch/async/lists.js.map b/priv/static/packs/flavours/glitch/async/lists.js.map index 6d0e57545..94a638597 100644 Binary files a/priv/static/packs/flavours/glitch/async/lists.js.map and b/priv/static/packs/flavours/glitch/async/lists.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/mute_modal.js b/priv/static/packs/flavours/glitch/async/mute_modal.js index 8799086c4..4563b7c03 100644 Binary files a/priv/static/packs/flavours/glitch/async/mute_modal.js and b/priv/static/packs/flavours/glitch/async/mute_modal.js differ diff --git a/priv/static/packs/flavours/glitch/async/mute_modal.js.map b/priv/static/packs/flavours/glitch/async/mute_modal.js.map index 2cef662e9..b8a427cc5 100644 Binary files a/priv/static/packs/flavours/glitch/async/mute_modal.js.map and b/priv/static/packs/flavours/glitch/async/mute_modal.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/mutes.js b/priv/static/packs/flavours/glitch/async/mutes.js index bff20ce26..561bff711 100644 Binary files a/priv/static/packs/flavours/glitch/async/mutes.js and b/priv/static/packs/flavours/glitch/async/mutes.js differ diff --git a/priv/static/packs/flavours/glitch/async/mutes.js.map b/priv/static/packs/flavours/glitch/async/mutes.js.map index 63d70481c..288221494 100644 Binary files a/priv/static/packs/flavours/glitch/async/mutes.js.map and b/priv/static/packs/flavours/glitch/async/mutes.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/notifications.js b/priv/static/packs/flavours/glitch/async/notifications.js index d894ca4d3..775819241 100644 Binary files a/priv/static/packs/flavours/glitch/async/notifications.js and b/priv/static/packs/flavours/glitch/async/notifications.js differ diff --git a/priv/static/packs/flavours/glitch/async/notifications.js.map b/priv/static/packs/flavours/glitch/async/notifications.js.map index 340227645..7a3ae0be5 100644 Binary files a/priv/static/packs/flavours/glitch/async/notifications.js.map and b/priv/static/packs/flavours/glitch/async/notifications.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/onboarding_modal.js b/priv/static/packs/flavours/glitch/async/onboarding_modal.js index fbe875eed..4e5acb0c0 100644 Binary files a/priv/static/packs/flavours/glitch/async/onboarding_modal.js and b/priv/static/packs/flavours/glitch/async/onboarding_modal.js differ diff --git a/priv/static/packs/flavours/glitch/async/onboarding_modal.js.map b/priv/static/packs/flavours/glitch/async/onboarding_modal.js.map index 9e11b9f3a..4b7124f38 100644 Binary files a/priv/static/packs/flavours/glitch/async/onboarding_modal.js.map and b/priv/static/packs/flavours/glitch/async/onboarding_modal.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/pinned_accounts_editor.js b/priv/static/packs/flavours/glitch/async/pinned_accounts_editor.js index a8dbe836b..799270f5b 100644 Binary files a/priv/static/packs/flavours/glitch/async/pinned_accounts_editor.js and b/priv/static/packs/flavours/glitch/async/pinned_accounts_editor.js differ diff --git a/priv/static/packs/flavours/glitch/async/pinned_accounts_editor.js.map b/priv/static/packs/flavours/glitch/async/pinned_accounts_editor.js.map index a620906cd..c0677599f 100644 Binary files a/priv/static/packs/flavours/glitch/async/pinned_accounts_editor.js.map and b/priv/static/packs/flavours/glitch/async/pinned_accounts_editor.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/pinned_statuses.js b/priv/static/packs/flavours/glitch/async/pinned_statuses.js index 58de4fa48..f2f32ada7 100644 Binary files a/priv/static/packs/flavours/glitch/async/pinned_statuses.js and b/priv/static/packs/flavours/glitch/async/pinned_statuses.js differ diff --git a/priv/static/packs/flavours/glitch/async/pinned_statuses.js.map b/priv/static/packs/flavours/glitch/async/pinned_statuses.js.map index 01838825d..20582528c 100644 Binary files a/priv/static/packs/flavours/glitch/async/pinned_statuses.js.map and b/priv/static/packs/flavours/glitch/async/pinned_statuses.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/public_timeline.js b/priv/static/packs/flavours/glitch/async/public_timeline.js index 8a9678a53..d48e77f7e 100644 Binary files a/priv/static/packs/flavours/glitch/async/public_timeline.js and b/priv/static/packs/flavours/glitch/async/public_timeline.js differ diff --git a/priv/static/packs/flavours/glitch/async/public_timeline.js.map b/priv/static/packs/flavours/glitch/async/public_timeline.js.map index c8fa69daa..77fa4cf1f 100644 Binary files a/priv/static/packs/flavours/glitch/async/public_timeline.js.map and b/priv/static/packs/flavours/glitch/async/public_timeline.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/reblogs.js b/priv/static/packs/flavours/glitch/async/reblogs.js index 3e6c806f4..59ca6d0af 100644 Binary files a/priv/static/packs/flavours/glitch/async/reblogs.js and b/priv/static/packs/flavours/glitch/async/reblogs.js differ diff --git a/priv/static/packs/flavours/glitch/async/reblogs.js.map b/priv/static/packs/flavours/glitch/async/reblogs.js.map index 696da7f09..150c0e1ab 100644 Binary files a/priv/static/packs/flavours/glitch/async/reblogs.js.map and b/priv/static/packs/flavours/glitch/async/reblogs.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/report_modal.js b/priv/static/packs/flavours/glitch/async/report_modal.js index 92601ff8c..d4d94eda1 100644 Binary files a/priv/static/packs/flavours/glitch/async/report_modal.js and b/priv/static/packs/flavours/glitch/async/report_modal.js differ diff --git a/priv/static/packs/flavours/glitch/async/report_modal.js.map b/priv/static/packs/flavours/glitch/async/report_modal.js.map index 40cd55a9c..50065b0ba 100644 Binary files a/priv/static/packs/flavours/glitch/async/report_modal.js.map and b/priv/static/packs/flavours/glitch/async/report_modal.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/settings_modal.js b/priv/static/packs/flavours/glitch/async/settings_modal.js index de55ebceb..7aa1fb5a8 100644 Binary files a/priv/static/packs/flavours/glitch/async/settings_modal.js and b/priv/static/packs/flavours/glitch/async/settings_modal.js differ diff --git a/priv/static/packs/flavours/glitch/async/settings_modal.js.map b/priv/static/packs/flavours/glitch/async/settings_modal.js.map index 70ebb8ebe..eec31e79a 100644 Binary files a/priv/static/packs/flavours/glitch/async/settings_modal.js.map and b/priv/static/packs/flavours/glitch/async/settings_modal.js.map differ diff --git a/priv/static/packs/flavours/glitch/async/status.js b/priv/static/packs/flavours/glitch/async/status.js index f82c91fd6..bfb80c63d 100644 Binary files a/priv/static/packs/flavours/glitch/async/status.js and b/priv/static/packs/flavours/glitch/async/status.js differ diff --git a/priv/static/packs/flavours/glitch/async/status.js.map b/priv/static/packs/flavours/glitch/async/status.js.map index 012698efb..a8c110f98 100644 Binary files a/priv/static/packs/flavours/glitch/async/status.js.map and b/priv/static/packs/flavours/glitch/async/status.js.map differ diff --git a/priv/static/packs/flavours/glitch/common.css b/priv/static/packs/flavours/glitch/common.css index 98f5564e2..f25155ee5 100644 Binary files a/priv/static/packs/flavours/glitch/common.css and b/priv/static/packs/flavours/glitch/common.css differ diff --git a/priv/static/packs/flavours/glitch/common.css.map b/priv/static/packs/flavours/glitch/common.css.map index a44590ee3..2d608b89f 100644 --- a/priv/static/packs/flavours/glitch/common.css.map +++ b/priv/static/packs/flavours/glitch/common.css.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///index.scss","webpack:///./app/javascript/flavours/glitch/styles/reset.scss","webpack:///./app/javascript/flavours/glitch/styles/variables.scss","webpack:///./app/javascript/flavours/glitch/styles/basics.scss","webpack:///./app/javascript/flavours/glitch/styles/containers.scss","webpack:///./app/javascript/flavours/glitch/styles/_mixins.scss","webpack:///./app/javascript/flavours/glitch/styles/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/footer.scss","webpack:///./app/javascript/flavours/glitch/styles/compact_header.scss","webpack:///./app/javascript/flavours/glitch/styles/widgets.scss","webpack:///./app/javascript/flavours/glitch/styles/forms.scss","webpack:///./app/javascript/flavours/glitch/styles/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/statuses.scss","webpack:///./app/javascript/flavours/glitch/styles/components/index.scss","webpack:///./app/javascript/flavours/glitch/styles/components/boost.scss","webpack:///./app/javascript/flavours/glitch/styles/components/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/components/domains.scss","webpack:///./app/javascript/flavours/glitch/styles/components/status.scss","webpack:///./app/javascript/flavours/glitch/styles/components/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/components/composer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/columns.scss","webpack:///./app/javascript/flavours/glitch/styles/components/regeneration_indicator.scss","webpack:///./app/javascript/flavours/glitch/styles/components/directory.scss","webpack:///./app/javascript/flavours/glitch/styles/components/search.scss","webpack:///","webpack:///./app/javascript/flavours/glitch/styles/components/emoji.scss","webpack:///./app/javascript/flavours/glitch/styles/components/doodle.scss","webpack:///./app/javascript/flavours/glitch/styles/components/drawer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/media.scss","webpack:///./app/javascript/flavours/glitch/styles/components/sensitive.scss","webpack:///./app/javascript/flavours/glitch/styles/components/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/components/emoji_picker.scss","webpack:///./app/javascript/flavours/glitch/styles/components/local_settings.scss","webpack:///./app/javascript/flavours/glitch/styles/components/error_boundary.scss","webpack:///./app/javascript/flavours/glitch/styles/components/single_column.scss","webpack:///./app/javascript/flavours/glitch/styles/polls.scss","webpack:///./app/javascript/flavours/glitch/styles/about.scss","webpack:///./app/javascript/flavours/glitch/styles/tables.scss","webpack:///./app/javascript/flavours/glitch/styles/admin.scss","webpack:///./app/javascript/flavours/glitch/styles/accessibility.scss","webpack:///./app/javascript/flavours/glitch/styles/rtl.scss","webpack:///./app/javascript/flavours/glitch/styles/dashboard.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,sCACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,0BACA,CCtEW,iED6Eb,kBC7Ea,4BDiFb,sBACE,MEtFF,sBACE,mBACA,eACA,iBACA,gBACA,WDVM,kCCYN,6BACA,8BACA,CADA,0BACA,CADA,yBACA,CADA,qBACA,0CACA,wCACA,kBAEA,sIAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBD5CW,kBCgDX,iBACE,kBACA,0BAEA,iBACE,YAIJ,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cDtEoB,mBAPX,WCgFT,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,wBAEA,aACE,gBACA,WACA,YACA,kBACA,uBAGF,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,6BAKF,YAEE,WACA,mBACA,uBACA,oBACA,yEAKF,gBAEE,+EAKF,WAEE,gBCrJJ,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SFrBI,YEuBF,kBACA,sBAGF,YACE,uBACA,mBACA,WF9BE,qBEgCF,UACA,kBACA,iBACA,uBACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAKA,UACqB,sCC3EvB,iBD4EE,6BAEA,UACE,YACA,cACA,SACA,kBACA,iBF5BkB,wBG9DtB,4BACA,uBD8FA,aACE,cF/EsB,wBEiFtB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UF1UA,qCE6UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cF/UkB,mBEiVlB,kBACA,uHAEA,yBAGE,WFvWA,qCE2WF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBFxaoB,8CE6atB,yBACE,gBACA,aACA,kBACA,gBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,CAEA,WACqB,yCCzgB3B,kBD0gBM,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,iBF7dc,wBG9DtB,4BACA,qCD+hBI,2CAvCF,YAwCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAKA,UACqB,sCCtiB7B,CDuiBQ,sBACA,wDAEA,QACE,kBACA,iBFrfY,wBG9DtB,4BACA,2DDsjBQ,mDAbF,YAcI,sCAKN,2CApEF,eAqEI,sCAGF,2CAxEF,cAyEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WFhlBF,gBEklBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WF1lBJ,gBE4lBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aFlmBY,oDEymBlB,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cF9nBc,aEgoBd,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BF/pBc,wEEqqBd,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WFzsBJ,uBE2sBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cF/tBgB,uDEkuBhB,oBACE,cFnuBc,qBEquBd,aACA,gBACA,8DAEA,eACE,WF1vBJ,qCEgwBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aF3yBU,8DEizBV,mBACA,WFnzBE,qFEuzBJ,YAEE,eACA,cF1yBkB,2CE8yBpB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBFj3BK,+IEo3BH,kBAGE,WEl4BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,eChBJ,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,yBCrBF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cNhFkB,6BMmFlB,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cPeoB,gBObpB,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cPFoB,wBOMtB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBRPI,uBQUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBRVW,aQYT,0BACA,eACA,cRPoB,iBQSpB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aRtCsB,qBQwCpB,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cR9DoB,+BQkEtB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aR3FsB,aQgGxB,YACE,kBACA,mBRzGW,mCQ2GX,qBAGF,YACE,kBACA,0BACA,kBACA,cR3GsB,mBQ6GtB,iBAGF,eACE,eACA,cRlHsB,iBQoHtB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cR7HoB,0BQiItB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cR1IoB,qBQ4IpB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBRnKW,mCQqKX,cR7JwB,gBQ+JxB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cRzMkB,8DQ+MpB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eRlPM,CQoPN,cACA,cRpOsB,mBQsOtB,+BANA,iBACA,CRlPM,kCQgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,URjQM,eQmQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cR1PoB,qCQ8PtB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBR/Qa,kBQiRX,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBR5RO,kBQ8RP,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBRpSsB,eQsSpB,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WRnUE,mBQqUF,gBACA,uBACA,wBAEA,aRzTkB,0BQ6TlB,aACE,gBACA,eACA,eACA,cRjUgB,yFQuUlB,URvVE,+BQ8VJ,aACE,YACA,uDAGF,oBRjVsB,eQuV1B,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cRnYoB,gBQqYpB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WR3aI,8BQ8aJ,aACE,cR/ZkB,gBQialB,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aRhgBsB,iCQ+fxB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cRnhBsB,4JQshBtB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WR9jBI,gCQgkBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MC/kBJ,+BACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WThDA,cSkDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aTnDoB,0BSqDlB,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aTpFsB,sBSuFpB,aTrFsB,yBSyFtB,iBACE,kBACA,gBACA,wBAIJ,aACE,eACA,eACA,qBAGF,kBACE,cTzGoB,iCS4GpB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WTzJA,gBS2JA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WT/KE,cSiLF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WTrME,cSuMF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,6BAIJ,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WTnRI,cSqRJ,WACA,2CAKE,mBACE,eACA,WT7RA,qBS+RA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WT7TI,cS+TJ,WACA,UACA,oBACA,gBACA,mBACA,sBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,wQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBTpVY,oLSwVZ,iBACE,4WAGF,oBT3UsB,mBS8UpB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBT5XsB,WAlBlB,eSiZJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBT5ZoB,gGSgapB,kBT9aQ,kHSibN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WTjcI,cSmcJ,WACA,UACA,oBACA,gBACA,wXACA,sBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cTjckB,oBSmclB,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,8DACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,8BACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UT/gBF,aSyhBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cTjhBsB,kBSmhBtB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cTziBY,sBS6iBd,mCACE,+BACA,cT9iBQ,kBSkjBV,oBACE,cTriBoB,qBSuiBpB,wBAEA,UTzjBI,0BS2jBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gCACA,mBTjkBS,WATL,eS6kBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aTlmBsB,qBSomBpB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aTpnBwB,yBSsnBtB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cTtoBsB,oCSyoBtB,cACE,mBACA,kBACA,4CAGF,aT9oBwB,gBSgpBtB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBTtrBM,YSwrBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cTnrBwB,WSqrBxB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WTluBI,qCSouBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UT1uBI,0BS4uBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cTzwBsB,0BS4wBtB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WTtyBI,kBSwyBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aThzBc,0SS0zBZ,+BACE,aAIJ,kBACE,sBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gCACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBTp2Bc,gBSs2BZ,2BAEA,kBTx2BY,gBS02BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SC36BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,gBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,CAEA,UACqB,sCPpDzB,gBOqDI,wBAEA,UACE,YACA,cACA,SACA,kBACA,iBVLgB,wBG9DtB,4BACA,mBOoEM,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WV/EA,gBUiFA,gBACA,uBACA,+BAGF,aACE,eACA,cVxEgB,gBU0EhB,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WV7GI,gBU+GJ,qBACA,iBACA,qBACA,sBAGF,eVrHM,oBUuHJ,cV9GS,eUgHT,cACA,kBAGF,cACE,uCAGF,wBAEE,cVlHsB,oBUsHxB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,cACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBVrKa,mCUuKX,cVhKsB,eUkKtB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cV9LwB,sCUgMxB,sCACA,6DAEA,aVnNc,sCUqNZ,kCACA,qDAGF,aACE,sCACA,kCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cV7OsB,0BU+OtB,6BAGF,aACE,cVpPoB,4BUwPtB,aVtPwB,qBUwPtB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aVtRY,gBUwRV,0CAGF,aV3RY,wCUgSd,eACE,wCAIJ,UACE,0BAIA,aV3RsB,4BU8RpB,aV7RsB,qBU+RpB,qGAEA,yBAGE,iCAIJ,UVzTI,gBU2TF,wBAIJ,eACE,kBClUJ,kCACE,kBACA,gBACA,mBACA,qCAEA,iBANF,eAOI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBXhBW,6GWmBT,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBXzDwB,WAlBlB,oBW8EN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UXxFI,gFW4FN,kBAGE,qNAKA,kBXpFoB,4IW4FpB,kBX1GQ,qCWiHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAKA,cACA,iBACA,mBACA,mFAGF,iBACE,eACA,WACA,WACA,WACA,qMAGF,eAGE,mEASF,cACE,gBACA,qFAGF,aXhJoB,YWkJlB,eACA,WACA,eACA,gBACA,+GAGF,aACE,eACA,CACA,sBACA,eACA,yJAEA,cACE,uEAIJ,WACE,kBACA,WACA,eACA,iDAQF,iBACE,mBACA,yHAEA,iBACE,gBACA,+FAGF,UACE,WC3NR,gCACE,4CACA,cAGF,aACE,eACA,iBACA,cZYwB,SYVxB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,aZFsB,eYIpB,SAIJ,wBACE,YACA,kBACA,sBACA,WZ5BM,eY8BN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,qCACA,mBACA,WACA,4CAEA,wBAGE,4BACA,qCACA,sBAGF,eACE,mFAEA,wBZ3DQ,gBY+DN,kBAIJ,wBZrDsB,eYuDpB,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,aZ5EW,mBAOW,qGYyEpB,wBAGE,8BAIJ,kBZlEsB,2GYqEpB,wBAGE,0BAIJ,cACE,iBACA,YACA,cZ7FoB,oBY+FpB,uBACA,iBACA,kBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,cAIJ,oBACE,UACA,cZ3GsB,SY6GtB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,qCACA,4BACA,2CACA,oBAGF,mCACE,uBAGF,aACE,6BACA,eACA,qBAGF,aZnJwB,gCYuJxB,QACE,uEAGF,mBAGE,uBAGF,aZrJsB,sFYwJpB,aAGE,qCACA,6BAGF,mCACE,gCAGF,aACE,6BACA,8BAGF,aZpLsB,uCYuLpB,aACE,wBAKN,sBACE,0BACA,yBACA,kBACA,YACA,8BAEA,yBACE,mBAKN,aZ9LwB,SYgMtB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,qCACA,4BACA,2CACA,yBAGF,mCACE,4BAGF,aACE,6BACA,eACA,0BAGF,aZ3OwB,qCY+OxB,QACE,sFAGF,mBAGE,gBAIJ,iBACE,uBACA,YAGF,WACE,cACA,qBACA,QACA,SACA,kBACA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,uCAIJ,MACE,kBACA,CZvSU,sEY8SZ,aZ9SY,uBYkTZ,aZnTc,4DYyTV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UZ7UM,0BY+UJ,eAIJ,aACE,eACA,gBACA,uBACA,mBACA,iBAEA,aACE,wBACA,sBAIA,cACA,gBAKA,yCAPF,WACE,CAEA,gBACA,uBACA,gBACA,mBAWA,CAVA,mBAGF,aACE,CACA,cAKA,8BAIA,yBACE,sBAIJ,SACE,YACA,eACA,iBACA,uBACA,mBACA,gBACA,CAME,sDAGF,cACE,YACA,kBACA,oBACA,qBAKN,eACE,wBAGF,cACE,eAGF,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cZhX4B,eAEC,0DYiX3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cZxY4B,eAEC,WYyY3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,WAIJ,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBZlc0B,cYocxB,kBACA,uCACA,mBAEA,eACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BZtdsB,2BY0dxB,WACE,iBACA,uBACA,yBZ7dsB,8BYiexB,QACE,iBACA,uBACA,4BZpesB,6BYwexB,SACE,gBACA,2BACA,2BZ3esB,wBYifxB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZvfsB,cARb,gBYkgBT,uBACA,mBACA,yFAEA,kBZ7fsB,cADA,UYmgBpB,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBZjhBsB,cYmhBtB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZ1iBsB,cARb,gBYqjBT,uBACA,mBACA,oDAEA,SACE,oDAGF,kBZpjBsB,cADA,iBY4jB1B,qBACE,iBAIA,sBACA,cZrjBsB,oBYwjBtB,cACE,gBACA,mBACA,kBACA,mBAGF,cACE,mBACA,iBAIJ,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WZnpBM,qBYqpBN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCThoBA,6GADF,kBSwoBI,4BACA,kHTpoBJ,kBSmoBI,4BACA,wBAIJ,+BACE,cZ1pBsB,sBY8pBxB,eACE,aACA,2BAGF,aACE,eACA,kBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBZ/qBsB,yBYirBtB,gBACA,kBACA,eACA,gBACA,iBACA,WZxsBI,mDY6sBR,oBACE,aAGF,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,gBAIJ,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,0CACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBZzwBW,qCY2wBX,sEAGF,wBACE,4CAGF,wBZzwB0B,+EY6wB1B,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,yBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBZr0BwB,yDYy0B1B,kBZl1Ba,2BYw1Bb,iBACE,gBACA,cAGF,aACE,kBAGF,kBZj2Ba,cYm2BX,oBAEA,aZ71BwB,oBYi2BxB,aZp1BsB,yBYw1BtB,0BACE,CADF,uBACE,CADF,kBACE,kDAKA,sBACA,cACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,aZ12BoB,eY42BlB,0DAEA,aZ92BkB,0BYg3BhB,sDAIJ,oBACE,cZn4BkB,sMYs4BlB,yBAGE,0BAKN,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cZt5BkB,aYw5BlB,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,aZj7BkB,qBYw7BxB,oBACE,kBACA,eACA,iBACA,gBACA,mBZp8BW,gBYs8BX,iBACA,qBAGF,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,aZx9BwB,uBY09BtB,CACA,WACA,CADA,+BACA,sBACA,cACA,oBACA,mBACA,cACA,WACA,0CAEA,UZp/BM,4BAkBkB,qCGKtB,yDADF,cSq+BE,sBAGF,aZr/BW,gCYu/BT,sDAEA,aZz/BS,4BASa,mDYw/B1B,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAIJ,uBACE,2BACA,gDAGF,aZ9/BwB,6BYggCtB,uDAGF,aZ/gC0B,yDYmhC1B,aACE,YAGF,aACE,cZ5gCsB,6BY8gCtB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,oBAGF,gBACE,qEAGF,4BACE,gCAGF,eACE,kBACA,MACA,QACA,YACA,kBACA,YAEA,mBACA,yBACA,eACA,aAEA,wCAEA,UZvhCsB,mBYyhCpB,aACA,sBACA,mBACA,uBACA,mBACA,8BACA,wBACA,gCACA,uCAGF,wBACE,kBACA,WACA,YACA,eACA,cZ1lCoB,yBY4lCpB,aACA,uBACA,mBACA,sCAGF,mBACE,6CAEA,8BACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,oBAGF,aZxmCwB,eY0mCtB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,6BAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,YACE,SACA,QACA,WACA,YACA,mBACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,0BACA,kBACA,iBACA,WZnyCE,gBYqyCF,eACA,+LAMA,yBACE,mEAKF,yBACE,iBAMR,aACE,iBACA,mEAGF,aZ9yCwB,qBYkzCtB,mBACA,gBACA,sBACA,gBAGF,aACE,iBACA,uBAGF,eACE,8BAGF,aZj0CwB,eYm0CtB,cACA,gBACA,gBACA,uBAGF,qBACE,sBAGF,WACE,8BAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA3BF,qBAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,iBAIJ,0DACE,CADF,kDACE,cAGF,kBACE,0BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBZ35CW,kCY65CX,uBAGF,MACE,aACA,mBACA,uBACA,cZ55CwB,eY85CxB,gBACA,0BACA,kBACA,qCAGF,SACE,oBACA,CADA,WACA,cAGF,wBZx6C0B,WY06CxB,kBACA,MACA,OACA,aACA,qBAGF,iBACE,aAGF,iBACE,cACA,aACA,WACA,yBZz7CwB,kBY27CxB,cACA,UACA,WACA,eAGF,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,uBAGF,oBACE,mBZp9CsB,kBYs9CtB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cZ5+CkB,kBY8+ClB,+BAGF,aZj/CoB,eYm/ClB,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UZ3gDE,qBY6gDA,oHAEA,yBAGE,yCAKN,QACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UZviDI,oBYgjDN,kBACA,cACA,2BAGF,eACE,UAGF,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cZnjDsB,gBYqjDtB,gBAEA,aZtjDsB,0BYwjDpB,sBAEA,oBACE,gBAIJ,qBACE,4BAKN,GACE,cACA,eACA,WARI,mBAKN,GACE,cACA,eACA,2CC5lDF,u+KACE,uCAEA,u+KACE,CAOA,8MAMF,okBACE,UClBJ,YACE,gCACA,cACA,qBACA,iCAEA,aACE,cACA,cdUoB,gBcRpB,qBACA,eACA,gBAGF,WACE,UACA,yCAEA,8CAEA,WACE,iBACA,mBAKN,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,gBd0BwB,wBG9DtB,4BACA,kBWqCA,eACA,yBAEA,oBACE,sBACA,iBACA,4BX3CF,eWgDE,CACA,cACA,2DAJF,gBdesB,wBG9DtB,4BACA,CWgDE,iBAQE,CANF,+BXlDF,UWsDI,CACA,qBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WdjEE,6BcmEF,gBACA,eACA,0BAKN,iBACE,WACqB,sCXrErB,+BANA,UW+EuB,sCXzEvB,gEWuEA,gBdhBsB,wBG9DtB,4BW0FE,CXnFF,iCANA,UWoFuB,sCX9EvB,kBWgFE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,2BAGF,aACE,mBACA,sBAGF,YACE,cd5EsB,6Bc+EtB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,4BAGF,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,8BACA,eACA,oCACA,uCAEA,aACE,kCAGF,+BACE,gCAGF,aACE,yBACA,eACA,cdvJoB,kCc2JtB,aACE,eACA,gBACA,Wd9KI,CcmLA,2NADF,eACE,gCAKN,adtKwB,oBc2K1B,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,wBAGF,gBACE,qBACA,eACA,cd/LsB,eciMtB,kBACA,4BAEA,adlMwB,6BcsMxB,aACE,gBACA,uBACA,iBAIJ,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,adnOwB,ecqOtB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SX7MF,sBACA,WACA,YACA,gBACA,oBACA,mBHhDW,cAOW,eG4CtB,SACA,+EWuMI,aACE,CXxMN,qEWuMI,aACE,CXxMN,yEWuMI,aACE,CXxMN,0EWuMI,aACE,CXxMN,gEWuMI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,ad7PoB,iBc+PlB,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,adpSoB,0HcySpB,cAEE,gBACA,cd9RkB,kZciSlB,aAGE,gEAIJ,wBACE,iDAGF,ed1UI,kBGkEN,CAEA,eACA,cHrDsB,uCGuDtB,UWqQI,mBd3ToB,oDGwDxB,wBACE,cH1DoB,eG4DpB,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,cHjFS,sDcuUT,WACE,mDAGF,ad3US,kBc6UP,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UdvWQ,kBcyWN,cACA,mBACA,sBd5WM,yBc8WN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,6BAIJ,YACE,eACA,gBACA,wBAGF,WACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cdlZoB,ecoZpB,eACA,gBACA,kBACA,qBACA,kBACA,yJAEA,ad1ZsB,qWc6ZpB,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,sBAQR,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cdlcoB,CcqcpB,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,2BAIJ,ad5ewB,ec8etB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WdhnBA,gBcknBA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cdzmBc,gBc2mBd,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,Wd7oBE,gDcipBJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,ad5pBU,yBckqBd,cACE,gCAEA,cACE,cdvpBkB,ecypBlB,kCAEA,oBACE,cd5pBgB,qBc8pBhB,iBACA,gBACA,yCAEA,eACE,WdnrBF,SeFR,YACE,gCACA,8BAEA,aACE,cACA,WfJI,qBeMJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,mCCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,EDGF,0BCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,qCAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,EAtBA,2BAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,gCAIJ,cACE,kBAGF,iBACE,cACA,eACA,iBACA,qBACA,gBACA,iBACA,gBACA,wBAEA,SACE,4BAGF,UACE,YACA,gBACA,sBAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,qEAGF,kBACE,qBACA,sGAEA,eACE,qEAIJ,eAEE,qJAEA,kBAEE,mXAGF,eACE,mBACA,qJAGF,eACE,gBACA,2EAGF,eACE,+NAGF,eACE,2FAGF,iBACE,8BACA,chB9FkB,mBgBgGlB,qHAEA,eACE,2JAIJ,eACE,mJAGF,iBACE,6EAGF,iBACE,eACA,6EAGF,iBACE,qBACA,qJAGF,eACE,6JAEA,QACE,2EAIJ,oBACE,2EAGF,uBACE,oBAIJ,ahB9Ic,qBgBgJZ,0BAEA,yBACE,8BAEA,aACE,kCAKF,oBACE,uCAEA,yBACE,wBAKN,ahBlJoB,4CgBuJtB,YACE,8EAEA,aACE,mCAIJ,aACE,oDAEA,ahB5LQ,egB8LN,iDAIJ,kBACE,uDAEA,kBACE,qBACA,gCAKN,oBACE,kBACA,mBACA,YACA,chB3MW,gBgB6MX,eACA,cACA,yBACA,oBACA,eACA,sBACA,sCAEA,kBACE,qBACA,+DAGF,oBACE,iBACA,sBACA,kBACA,eACA,oBACA,2GAKF,oBAGE,4BAIJ,ahBvNwB,SgByNtB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,mDAGF,iBAEE,gCAGA,qEAEA,eACE,kBAKF,SACE,mBACA,kDAEA,kBACE,wDAEA,sBACE,iFAIJ,kBAEE,SAKN,iBACE,kBACA,YACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QAPF,kBAUI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,ahB1SoB,CArBX,uEgBwUP,ahBxUO,kCgB4UP,ahBvTkB,gCgB4TpB,ahBjVS,kCgBoVP,ahB3UoB,gEgB+UpB,UhBjWE,mBAgBgB,sEgBqVhB,kBACE,mBAMR,uBACE,sBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,yCAEA,aACE,kBACA,OACA,QACA,MACA,SACA,6FACA,oBACA,WACA,2DAGF,oBACE,oCAGF,WACE,gBACA,uBACA,cACA,0CAEA,UACE,kBACA,MACA,gBACA,6DACA,oBACA,4CAGF,oBACE,gDAGJ,oDACE,mEAEF,oDACE,0CAGF,eACE,6DAGF,kBACE,gCAIJ,mBACE,+CAKF,sBACE,qEAEA,aACE,wBAKN,oBACE,YACA,ChBvZsB,cgByZtB,iBACA,mBACA,CACA,sBACA,8CANA,ahBvZsB,CgB2ZtB,eAOA,8CAGF,aACE,eACA,eAGF,YACE,8BACA,eACA,oBAEA,sBACE,gBACA,2CAGF,oBACE,sBAIJ,YACE,mBACA,WACA,chB5bsB,iIgB+btB,gBAGE,kBACA,0EAGF,yBACE,yEAMA,0CACE,CADF,kCACE,2EAKF,2CACE,CADF,mCACE,wBAKN,YACE,mBACA,2BACA,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,mBACA,iBACA,chBvgBsB,CgBygBtB,iBACA,eACA,kBACA,+CAEA,ahB9gBsB,uBgBkhBtB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,chB3iBkB,4BgBijBxB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,+DAIJ,cAEE,wBAIJ,eACE,chBpmBsB,egBsmBtB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,6JAGF,oBAME,4DAKA,UhBzqBM,kBgB+qBN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,ahB3rB0B,cgB6rBxB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WhB3tBI,kCgBguBR,UACE,kBACA,iBAGF,SACE,kBACA,YACA,WACA,ChB3sBsB,8IgBstBtB,ahBttBsB,wBgB0tBtB,UACE,wCAGF,kBhB9tBsB,cArBX,8CgBuvBT,kBACE,qBACA,+DAOJ,yBACE,cAIJ,YACE,eACA,yBACA,kBACA,chBpvBsB,gBgBsvBtB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,chB7xBoB,uBgB+xBpB,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UhBvzBE,yBgB8zBJ,cACE,kBACA,YACA,+DAGF,aACE,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACE,YACA,SACA,2BAIF,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,chBr1BsB,gBgBu1BtB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,ahBn2BwB,oBgBu2BxB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,kBAGF,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,chB96BoB,iBgBg7BpB,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,chB58BkB,gBgB88BlB,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,ahB/9BoB,oCgBq+BxB,cACE,cACA,SACA,uBACA,UACA,kBACA,oBACA,oFAEA,yBAEE,6BChhCJ,kBACE,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,0BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,6CAGF,kBjBvB0B,cARb,kBiBoCX,gBACA,aACA,sBACA,0BAGF,WACE,WACA,gBACA,iBACA,8DAEA,UACE,YACA,sBACA,aACA,sBACA,mBACA,uBACA,aACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAIJ,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,qCAGF,kBACE,UACE,YACA,gBACA,0BAGF,UACE,YACA,eACA,gBACA,cACA,oDAIJ,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,ajBpGsB,SiBuGpB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,qiBAGF,ajB7IS,qwDiBiJP,aAGE,sBAMR,sBACE,yBAGF,aACE,aACA,mBACA,uBACA,wBAGF,UACE,YACA,mBACA,mBACA,aACA,eACA,8BAEA,kBACE,+BAGF,cACE,mBACA,kCAIJ,mBACE,CACA,mBACA,0EAEA,mBACE,yBAIJ,cACE,iBACA,4BAEA,cACE,gBACA,cjBvMS,mBiByMT,2BAGF,ajBnMwB,kGiBsMtB,aAGE,2CAIJ,aACE,2BAGF,cACE,cjBtMoB,gBiBwMpB,mBACA,sCAEA,eACE,kCAGF,eACE,mBjBrOO,cAQa,kBiBgOpB,eACA,gBACA,CAII,2NADF,eACE,oCAOV,WACE,UACA,mCAME,mBACA,mBACA,sCAEA,cACE,iBACA,kBACA,qCAGF,eACE,oCAIJ,kBACE,mBACA,kBACA,eAIJ,iBACE,eACA,mBACA,sBAEA,eACE,cjBzRS,kBiB2RT,yBACA,eACA,qBAGF,kBjBhSW,cAQa,gBiB2RtB,aACA,kBACA,6HAQF,eACE,qJAGF,kBACE,cjB1SsB,mBiB4StB,kBACA,aACA,kBACA,eACA,sCACA,yPAEA,iBACE,mBACA,qNAGF,mBACE,gBACA,4CAMJ,YACE,mBACA,gDAEA,UACE,cACA,4DAEA,aACE,2DAGF,cACE,kDAGF,iBACE,uDAIJ,eACE,sDAIJ,UjB3WM,2DiBgXR,0BACE,cACE,iBACA,qJAGF,cAIE,mBACA,4CAGF,kBACE,sDAGF,WACE,eACA,mBAIJ,oBACE,eACA,gBACA,iBACA,uHAGF,kBAOE,cjB7YW,kBiB+YX,gBACA,eACA,YACA,kBACA,sBACA,+SAEA,ajBjYsB,YiBmYpB,eACA,WACA,eACA,gBACA,uSAGF,YACE,uPAGF,WACE,WACA,+WAGF,aACE,wBAKF,ejBvbM,CAiBkB,gBiByatB,oBACA,iEjB3bI,2BAiBkB,qDiBkb1B,iBAEE,aACA,qEAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,kKAIJ,YAKE,8BACA,mBjBncwB,aiBqcxB,iBACA,0LAEA,aACE,iBACA,cjB7boB,mBiB+bpB,kNAGF,aACE,6DAIJ,cAEE,yDAGF,WAEE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,ajBzgBwB,qCiB6gBxB,oDAZF,eAaI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,ajBhjBS,gBATL,aiB4jBJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,ejB5kBI,yBiB8kBF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,ajBnlBO,oBiBqlBL,eACA,gBjB/lBA,+CiBomBJ,YACE,8BACA,mBACA,4CAIJ,aACE,cjBnmBS,eiBqmBT,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,ajB9mBS,eiBgnBP,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eAWE,eACA,wBAXA,eACE,iBACA,uBAGF,aACE,gBACA,2CAMF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,ajB/pBO,aiBiqBL,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBjBvqBgB,WAlBlB,iJiBgsBA,iBAGE,oMAUR,aACE,iIAIJ,4BAIE,cjBxrBsB,eiB0rBtB,gBACA,6cAEA,aAGE,6BACA,uCAIJ,iBACE,mBACA,oBACA,eAEA,yFAEA,qBACE,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,ajBzwBS,CiB2wBP,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gDACA,mBjBpzBO,WATL,eiBg0BF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,cAKN,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBjB12BM,yDiB62BN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBjBr3BI,uBiBy3BN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UjBt5BI,eiBw5BF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,wBAKN,gBACE,sCAEA,eACE,gCAGF,eACE,qDAGF,ajBl7BW,iDiBs7BX,YACE,0DAEA,YACE,0BAIJ,YACE,iBACA,uBACA,kDAGF,ajB/6BsB,qBiBi7BpB,wDAEA,yBACE,WCp9BN,YACE,oBAGF,cACE,uBACA,eACA,gBACA,clBwBsB,4CkBrBtB,alBNY,sCkBWd,2CACE,oBAGF,QACE,wBACA,UACA,+CAEA,WACE,mBACA,UACA,0BAGF,aACE,sBACA,SACA,YACA,kBACA,aACA,WACA,UACA,clB5BS,gBATL,ekBwCJ,oBACA,gBACA,qDAEA,alBdoB,CkBYpB,2CAEA,alBdoB,CkBYpB,+CAEA,alBdoB,CkBYpB,gDAEA,alBdoB,CkBYpB,sCAEA,alBdoB,gCkBkBpB,8CfpCA,uCADF,cesC4D,0CfjC5D,ceiC4D,oBAI9D,alB5Ca,mBkB8CX,mBlBvCsB,oCkByCtB,iBACA,kBACA,eACA,gBACA,sBAEA,alBjCsB,gBkBmCpB,0BACA,mFAEA,oBAEU,iCAKZ,mBACA,eAEA,gBACA,wCAEA,alB/DwB,sDkBmExB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,gBACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBlBrFsB,qCkB4F1B,eACE,kBACA,aACA,mBlBjGsB,gBkBmGtB,gBACA,cACA,yBAEA,iBACE,gBACA,wCAEA,alBlHS,iCkBoHT,WACE,iBACA,2BAIJ,iBACE,cACA,CACA,cACA,iBACA,clB/HS,qBkBiIT,gBACA,iBACA,qBACA,mBACA,gBACA,gGAEA,kBACE,qBACA,iIAEA,eACE,kJAIJ,eACE,mBACA,2DAGF,eACE,eACA,8BAGF,cACE,wFAGF,eACE,sCAGF,iBACE,8BACA,clBrKO,mBkBuKP,mDAEA,eACE,8DAIJ,eACE,0DAGF,iBACE,+BAGF,iBACE,eACA,2DAGF,eACE,+DAEA,QACE,8BAIJ,oBACE,8BAGF,uBACE,6BAGF,alBtLoB,qBkBwLlB,mCAEA,oEAGE,oBACE,gDAEA,qDAMR,UACE,YACA,gBACA,wBAIJ,iBACE,UACA,QACA,gHAEA,+BAEE,uDAIJ,iBAEE,WACA,mIAGE,aACE,sBACA,SACA,YACA,0BACA,yBACA,WACA,iBACA,UACA,clB5PO,gBATL,ekBwQF,oBACA,YACA,qBACA,yLAEA,alB/OkB,CkB6OlB,sKAEA,alB/OkB,CkB6OlB,8KAEA,alB/OkB,CkB6OlB,gLAEA,alB/OkB,CkB6OlB,4JAEA,alB/OkB,yKkBmPlB,SACE,qJAGF,kBlBpQoB,+IkBqQpB,8Cf1QF,8JADF,ce4Q8D,kKfvQ9D,ceuQ8D,qCfhQ5D,8TADF,sBeoQM,gBACA,6BAMR,aACE,kBACA,SACA,UACA,WACA,gBACA,2CAEA,aACE,mBACA,WACA,YACA,clB/QoB,ekBiRpB,iBACA,kBACA,WACA,4CAIJ,iBACE,SACA,oCAGF,aACE,kBACA,sBACA,SACA,0BACA,YACA,WACA,clBzTW,mBAQa,sCkBoTxB,eACA,WACA,aACA,6CAGF,aACE,0CAGF,YACE,eACA,kBACA,iMAEA,kBAGa,iKAEb,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,+DAGF,6BACE,qEAEA,aACE,gBACA,uBACA,mBACA,sEAGF,eACE,qEAGF,aACE,iBACA,gBACA,uBACA,mBACA,4EAMA,alB/VkB,wBkBoWxB,eACE,iCAEA,YACE,mBACA,eACA,oBACA,YACA,gBACA,8BAIJ,UACE,WACA,cACA,kCAEA,iBACE,kBACA,aACA,WACA,sBlBzZI,wBkB2ZJ,sBACA,4BACA,gBACA,2CAEA,aACE,kBACA,sBACA,SACA,OACA,SACA,SACA,aACA,WACA,clBvZoB,gFkByZpB,eACA,oBACA,gBACA,UACA,UACA,4BACA,iDAEA,UlBlbE,sEkBobF,WACE,clBpakB,CAjBlB,4DkBobF,WACE,clBpakB,CAjBlB,gEkBobF,WACE,clBpakB,CAjBlB,iEkBobF,WACE,clBpakB,CAjBlB,uDkBobF,WACE,clBpakB,yCkByatB,2EAKE,0CAKN,iFACE,aACA,uBACA,8BACA,UACA,4BACA,8CAEA,aACE,clB5bsB,ekB8btB,gBACA,aACA,oBACA,2JAEA,aAGE,wCAIJ,SACE,kCAIJ,YACE,aACA,clBldsB,gBkBodtB,sCAEA,cACE,kBACA,2CAGF,aACE,gDAEA,aACE,eACA,gBACA,yBACA,qDAGF,iBACE,eACA,kBACA,WACA,WACA,mBlB5dkB,8DkB+dlB,iBACE,MACA,OACA,WACA,kBACA,mBlBhfkB,0BkBuf1B,alBhgBa,oBkBkgBX,eACA,gBlB5gBM,4BkBghBR,YACE,mBACA,0BACA,YACA,aACA,8BACA,cACA,oBAGF,YACE,cACA,sBAEA,oBACE,uBACA,cACA,YACA,iBACA,sBACA,uBAGF,oBACE,aACA,CAEA,oBACA,CADA,6BACA,UACA,QACA,YACA,uBACA,2BAIJ,iBACE,iBACA,0CAKE,yBACE,qCACA,WlB7jBE,mBAkBkB,gBkB8iBpB,8CAGA,yBACE,oCACA,uCAMR,iBACE,kBACA,uCACA,gBlB9kBM,gBkBglBN,uBACA,6CAGF,YACE,mBACA,aACA,clB9kBW,ekBglBX,sDAEA,aACE,clB9jBoB,wEkBikBpB,6EAEA,aACE,clBzlBO,gBkB2lBP,sGAIJ,kBlBtlBwB,WAlBlB,6PkBgnBF,UlBhnBE,0DkBonBN,wCAGF,gBACE,iBACA,mBACA,gBACA,yBACA,cACA,+BAEA,oBACE,SACA,eACA,kBACA,gCAGF,oBACE,aACA,UACA,WACA,kBACA,kCAIA,alB5oBU,CmBFZ,+BAHF,YACE,cACA,kBAUA,CATA,cAKA,kBACA,2BACA,gBAEA,uBAEA,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,wHAMJ,WAGE,mCAIJ,YACE,mBACA,uBACA,YACA,CnB7EW,ImB4Fb,aACE,aACA,sBACA,WACA,YACA,CAIA,oBAGF,qBACE,WACA,mBACA,cnBlGwB,emBoGxB,cACA,eACA,SACA,iBACA,aACA,SACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cnBrHwB,emBuHxB,cACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,cAGF,kBACE,WnB5KM,cmB8KN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cnB7KsB,kGmBgLtB,sBAGE,WnBpME,kCmBwMJ,anBtLsB,oBmB4L1B,oBACE,iBACA,oBAGF,kBnB1Ma,cAqBW,iBmBwLtB,eACA,gBACA,yBACA,eACA,yBAGF,iBACE,cACA,uCAGE,aACE,WACA,kBACA,SACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,oFACA,gBAKN,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,uBAEA,QACE,YACA,aACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,anB1PwB,uBmB8PxB,uCACE,4CAEA,anBjQsB,0CmBmQpB,4CAIJ,SAEE,SAIJ,WACE,kBACA,sBACA,aACA,sBACA,gBACA,wDAEA,SACE,gBACA,gBACA,qBAGF,kBnBpSW,yBmBySb,WACE,aACA,cACA,uBAGF,kBACE,iCAGF,iBACE,sEAGF,kBACE,SACA,cnBlTsB,emBoTtB,eACA,eACA,kFAEA,aACE,CAKA,kLAEA,UnBhVI,mBmBkVF,kFAKJ,2BACE,wCAIJ,YACE,oBACA,6BACA,+CAEA,sBAEE,kBACA,eACA,qBACA,0CAGF,eACE,gDAKJ,SACE,6BAGF,eACE,gBACA,gBACA,cnBtWsB,0DmBwWtB,UACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,iCAIF,eACE,2CACA,YACE,WACA,mCAKN,kBACE,aACA,mCAIA,anB5YsB,0BmB8YpB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,uBAKN,oBACE,uBACA,gBACA,mBACA,OACA,sBAGF,oBACE,iBACA,uCAGF,anB7ZwB,mBArBX,kBmBsbX,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBACA,sCAbF,cAcI,kDAGF,eACE,2CAGF,anB9bwB,qBmBgctB,uDAEA,yBACE,eAKN,qBACE,uCAKA,sBACE,6BACA,qCASF,qCAXA,sBACE,6BACA,sCAgBF,mJAFF,qBAGI,sBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,kBACA,uCAEA,SACE,kCAKN,aACE,aACA,yBChhBJ,iBACE,eACA,gBACA,cpB6BsB,mBArBX,eoBLX,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,cpBDkB,qCoBKpB,cACE,gBACA,kBCtCJ,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,gBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WrB1EF,gBqB4EE,gBACA,uBACA,0CAGF,aACE,eACA,crBnEc,gBqBqEd,gBACA,uBACA,yBAKN,kBrBnFS,aqBqFP,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,cAOV,kBrBzHa,sBqB4HX,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,CC/KJ,eAGF,SnBkDE,sBACA,WACA,YACA,gBACA,oBACA,mBHhDW,cAOW,eG4CtB,SACA,cmBxDA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,sCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,4CACA,eACA,WACA,YACA,ctBtCsB,esBwCtB,oBACA,0BAEA,mBACE,WACA,0BAIJ,sBACE,iCAEA,mBACE,WACA,gCAIJ,QACE,uBACA,ctB/CoB,esBiDpB,uCAEA,uBACE,sCAGF,aACE,yBAKN,atB7DwB,mBsB+DtB,gCACA,kBACA,eACA,gBACA,uBAGF,YACE,ctBrFsB,kBsBuFtB,iBAIA,atB7EsB,mBsB+EpB,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,ctBvGkB,gBsByGlB,uBACA,mBACA,4BAEA,eACE,uBAGF,atB/HkB,qBsBiIhB,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,ctBzJoB,0BsB6JtB,aACE,WACA,2CAEA,oCACE,yBACA,0CAGF,wBACE,WC1LR,yCCCE,qBACA,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,8BAIJ,exBXQ,kBwBaN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBxBvCM,kBwByCN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,+BAGE,2DAIJ,WACE,wBAKF,2BACE,eAIJ,aACE,eACA,iBACA,gBACA,WACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,CACA,UACA,YACA,eACA,0EAMA,SACE,oBACA,CADA,WACA,eCpGN,WAEE,0BAGF,kBANW,kBAQT,cACA,iCACA,wBACE,mCAOF,WACE,SACA,UACA,2CAGF,aACE,aAEA,sBACA,YACA,6BACA,6DAGE,oBACE,WACA,iBACA,iBACA,iJAGF,UACE,gEAEF,oBACE,gBACA,WACA,2CAKN,yBACE,sBACA,kBACA,YACA,gBACA,kDAEA,uBACE,CADF,oBACE,CADF,eACE,WACA,YACA,SACA,4BACA,WACA,yBACA,eACA,4CACA,sBACA,oBACA,6DAEA,uBACE,6DAGF,sBACE,wEAGF,sBACE,kBACA,SCjFR,WACE,sBACA,aACA,sBACA,kBACA,iBACA,UACA,qBAEA,iBACE,oBAGF,kBACE,2DvBDF,SuBI0D,yBvBC1D,SuBD0D,qCvBQxD,qLuBLA,yBAGF,eACE,gBACA,eACA,qCvBZA,4BuBgBA,SACE,WACA,YACA,eACA,UACA,+BALF,SACE,WACA,YACA,eACA,UACA,yCAIJ,4BAGF,YACE,mBACA,mBACA,UACA,mBACA,eACA,mBAEA,aACE,sBACA,oCACA,sBACA,YACA,cACA,c1BtCoB,kB0BwCpB,qBACA,eACA,mBAGF,iCACE,iDAEA,YAEE,mBACA,mCACA,SAKN,iBACE,mBACA,UACA,qCvBrDE,6CADF,euBwDkF,sCvBlEhF,sBADF,cuBoE0D,yBvB/D1D,cuB+D0D,gBAG5D,e1BlFQ,kBGkEN,CACA,sBACA,gBACA,cHrDsB,uCGuDtB,mBAEA,wBACE,cH1DoB,eG4DpB,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,cHjFS,kB0B6Eb,YACE,c1BvEsB,a0ByEtB,mBACA,oBAEA,aACE,qBACA,wBAGF,aACE,c1BjFsB,gB0BmFtB,mBACA,gBACA,uBACA,0BAIJ,aACE,gBACA,gBACA,kBAGF,kB1BxGa,kB0B0GX,gBACA,yBAEA,a1BxFsB,mB0B0FpB,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,c1BhHkB,iC0BmHlB,oBACE,iBACA,8FAIJ,eAEE,mCAGF,aACE,aACA,c1B7IoB,qB0B+IpB,0HAEA,aAGE,0BACA,gBAQN,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAgBA,CAfA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,uBAEA,kB1B1LW,0B0B+Lb,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,WACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oCAGF,aACE,WACA,YACA,YACA,eACA,sCAGF,yBAzBF,aA0BI,iBAIJ,kBACE,eACA,gBACA,mBAGF,cACE,kBACA,MACA,OACA,WACA,YACA,0BACA,oBCrPF,kBACE,gB3BAM,WACA,e2BEN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,e3BdQ,cAiBgB,oB2BCtB,YACA,iEAEA,aAGE,iCAGF,eACE,2BxBcF,iBACE,mBACA,cACA,eACA,aACA,gBACA,yBwBfJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,6BAGF,aACE,kBACA,W3B7CM,0B2B+CN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,2DAKE,YACE,wDAKF,SACE,uBAKN,WACE,aACA,sBACA,4BAEA,iBACE,c3BjEoB,a2BmEpB,YACA,mBACA,CAGE,yDAIJ,UACE,gBAIJ,qBACE,eACA,gBACA,kBACA,kBACA,WACA,aACA,2BxB/DA,iBACE,mBACA,cACA,eACA,aACA,gBACA,sBwB8DJ,WACE,sBACA,cACA,WACA,kBACA,kBACA,gBACA,kCAEA,eACE,qEAIA,cACE,MACA,gCAIJ,e3BlIM,gC2BuIR,cACE,cACA,qBACA,c3BxHwB,kB2B0HxB,UACA,mEAEA,WAEE,WACA,sBACA,CADA,gCACA,CADA,kBACA,CAIE,0HAFF,WACE,oBACA,CADA,8BACA,CADA,gB3BtJE,C2BuJF,wBAKN,UACE,CAEA,iBACA,MACA,OACA,UACA,gB3BnKM,iC2BsKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,aACA,uBACA,qCAGF,cACE,YACA,WACA,kBACA,UACA,sBACA,CADA,gCACA,CADA,kBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,qDAEA,WACE,oBACA,CADA,8BACA,CADA,gBACA,sCAIJ,0BACE,2BACA,gBACA,kBACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,c3B3K0B,eAEC,C2BqL7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,yBACE,sBACA,SACA,W3BvQM,e2ByQN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,c3BpSsB,mF2BuStB,yBAGE,wBAKN,oBACE,sBAGF,qB3BpUQ,Y2BsUN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wB3B7T0B,qB2BiU1B,iBACE,UACA,QACA,YACA,qKAKA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,qCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gB3BzZM,e2B2ZN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,gCAGF,UACE,YACA,0BxBjYF,iBACE,mBACA,cACA,eACA,aACA,gBACA,qBwBgYF,eACE,gBACA,UACA,kBACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gB3B9eI,cAiBgB,gB2BgepB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,CAGE,gUAEA,aAIE,wBAKN,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,U3BpjBE,+E2B4jBN,cAGE,gBACA,6BAGF,U3BnkBM,iB2BqkBJ,yBAGF,oBACE,aACA,mDAGF,U3B7kBM,uB2BklBN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,W3BloBE,sF2BqoBF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,iBC5sBR,YACE,mBACA,mBACA,kBACA,QACA,SACA,YACA,mBAGF,YACE,kBACA,gBACA,yBACA,0BACA,eACA,iBACA,yBACA,WACA,4BACA,wCAEA,uBCtBF,kB7BWa,sB6BTX,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kB7B3Ca,sB6B6CX,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,aC3FJ,cAOE,qBACA,c9BGW,2B8BVX,qBAEE,iBACA,+BAOF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mB9BHsB,4B8BOxB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,c9BLsB,c8BOtB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,a9BpC0B,mC8BuCxB,aACE,oDAGF,QACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBACA,uBAIA,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gB9B5FM,sB8B8FN,sGAEA,+BAEE,oBAKF,2BACA,gB9BxGM,0B8B2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,gCACA,c9BzGS,yB8B2GT,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,sCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gB9BpKI,mB8ByKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,c9BvKsB,mD8B0KtB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,wBC1MF,iBACE,aACA,mBACA,mB/BgBwB,cARb,kB+BLX,YACA,WACA,gBACA,iBACA,gBACA,4DAEA,aACE,eACA,mFAGF,iBACE,kBACA,gBACA,+FAEA,iBACE,OACA,MACA,kCAIJ,aACE,cACA,2BAGF,cACE,gBACA,iBACA,mBACA,2BAGF,cACE,gBACA,iBACA,gBACA,mBACA,0CAIJ,aACE,kBACA,cACA,mBACA,gCACA,eACA,qBACA,aACA,0BACA,4DAEA,aACE,iBACA,gDAGF,kB/BhDwB,iD+BoDxB,kB/BnDwB,WAlBlB,qG+B0EN,kB/BxEU,WAFJ,oC+BgFR,kBACE,YACA,eACA,iBACA,gBACA,8BAGF,aACE,UACA,kBACA,YACA,gBACA,oCAGF,iBACE,4FAGF,eAEE,mBACA,qCAGF,mCACE,UACE,cACA,0CAGF,YACE,4DAEA,YACE,kBCtHN,UhCEQ,gCgCCN,oBAEA,cACE,iBACA,gBACA,kBACA,mBAGF,UhCVM,0BgCYJ,oBAGF,eACE,cACA,iBACA,mDAGF,UACE,YACA,gBACA,gCACA,gBC3BJ,WACE,gBACA,aACA,sBACA,yBACA,kBACA,+BAEA,gBACE,eACA,CACA,2BACA,kCAGF,QACE,iCAGF,aACE,6BAGF,sBACE,0BAGF,MACE,kBACA,aACA,sBACA,iBACA,mDAGF,eACE,sBjClCI,0BiCoCJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,YACE,gBACA,gLAEA,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,CAIA,yFAGF,eACE,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WjCjNM,kBiCmNN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,mCAGF,kBAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,QC1QJ,eACE,eACA,8BAEA,QAEE,gBACA,UAGF,kBACE,kBACA,cAGF,iBACE,MACA,OACA,YACA,qBACA,kBACA,mBACA,sBAEA,kBlCJsB,akCSxB,iBACE,aACA,cACA,iBACA,eACA,gBACA,gEAEA,YAEE,gCAGF,aACE,8BAIA,qBACA,WACA,eACA,clCvCO,ckCyCP,UACA,oBACA,gBlCpDE,yBkCsDF,kBACA,iBACA,oCAEA,oBlCxCoB,wBkC6CtB,cACE,sBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBlC7FY,8EkCkGZ,gBAGE,gBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,CACA,oBACA,iBACA,gBACA,mBACA,cACA,mBAGF,UACE,iBACA,eAGF,eACE,mBACA,clC1GoB,akC8GtB,cACE,uBACA,UACA,SACA,SACA,clCnHoB,0BkCqHpB,kBACA,mBAEA,oBACE,sCAGF,mCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,4BACE,gCAEA,YACE,2CAGF,4BACE,aACA,aACA,mBACA,mGAEA,UAEE,aACA,+GAEA,oBlCxKoB,sDkC8KxB,cACE,gBACA,iBACA,YACA,oBACA,clCvKoB,sCkC0KpB,gCAGF,YACE,mBACA,4CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,clChNS,qBkCkNT,WACA,UACA,oBACA,qXACA,yBACA,kBACA,CACA,yBACA,mDAGF,aACE,cAIJ,alC7MwB,qBkCgNtB,+BACE,6BAEA,+BACE,YC/ON,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,sBACE,eACA,gBACA,gBACA,qBACA,cnCJsB,oBmCOtB,anCLwB,0BmCOtB,6EAEA,oBAGE,wCAIJ,anClBsB,oBmCuBtB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,cnChCsB,qBmCoCxB,iBACE,cnCrCsB,uBmCyCxB,eACE,mBACA,kBACA,kBACA,yHAGF,sBAME,mBACA,oBACA,gBACA,cnCzDsB,qBmC6DxB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,cnCrIkB,iCmCyIpB,uBACE,gBACA,gBACA,cnC9HkB,qDmCkIpB,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,uBACA,eACA,iBACA,WnCpNI,iBmCsNJ,kBACA,qEAEA,aAEE,6CAIA,anC9MoB,oCmCmNtB,sBACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,sBACE,eACA,iBACA,gBACA,cnC/OkB,mBmCiPlB,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAIE,UACqB,sChCnRzB,CgCoRI,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iBnCpOgB,wBG9DtB,4BACA,iCgCsSE,cACE,mCAEA,aACE,WnC3SA,qBmC6SA,uDAGE,yBACE,2CAKN,aACE,cnCvSgB,kCmC+StB,sBAEE,CACA,eACA,eACA,iBACA,mBACA,cnCtToB,sCmCyTpB,anCvTsB,0BmCyTpB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,sBACE,eACA,iBACA,gBACA,mBACA,cnC/UsB,wBmCkVtB,sBACE,cACA,eACA,gBACA,cACA,kBAKF,cACA,iBnC7VsB,mCmC2VxB,sBACE,CAEA,eACA,mBACA,cnChWsB,kBmCqWtB,cACA,iBnCtWsB,kBmC8WtB,cnC9WsB,mCmC6WxB,sBACE,CACA,gBACA,gBACA,mBACA,cnClXsB,kBmCuXtB,cnCvXsB,kBmC+XxB,sBACE,eACA,iBACA,gBACA,mBACA,cnCpYsB,mCmCwYxB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,2CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBnC5bW,kBmC8bT,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAMA,UACqB,sChC9hB3B,mDgCiiBI,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA9DF,iBA+DI,mFAIJ,qBAGE,mBnCtjBS,kBmCwjBT,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,anC9kBsB,qCmCklBtB,eACE,WnCpmBE,gBmCsmBF,2CAEA,anCxlBkB,gDmC2lBhB,anC1lBkB,+CmCgmBtB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SnC1rBI,YmC4rBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,cnCpsBkB,6BmCwsBpB,eACE,iBACA,+BAGF,kBnCptBS,amCstBP,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,sBACE,eACA,gBACA,cACA,qCAGF,cACE,cnCnvBgB,uFmCyvBtB,eACE,cASA,CnCnwBoB,2CmCgwBpB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,cnCh2BsB,qBmCk2BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,cnC11BoB,SoChCxB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBpChBW,UoCqBX,apCZwB,0BoCctB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBpCzDS,6BoC2DP,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+BACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,cpC5FsB,gBoC8FtB,0DAEA,UpChHM,wDoCoHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBpCvJS,sBoCyJT,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBpCtKS,gCoCyKT,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBpC9LS,uCoCiMP,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,cpC/NgB,gBoCiOhB,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,sCAEA,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBCzRN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBrCPO,YqCSP,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SrCxCA,YqC0CE,kBACA,YACA,uCAIJ,aACE,crCjCgB,qBqCmChB,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,crC3EgB,qBqC6EhB,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UrCzGA,yBqC2GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UrCjIE,yBAkBkB,gBqCkHlB,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,arCnMsB,eqCqMpB,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,arC9MsB,eqCgNpB,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,crC1NkB,mBqC4NlB,kBACA,gCACA,4BAGF,cACE,crCjOoB,iBqCmOpB,gBACA,0CAGF,UrCxPI,gBqC0PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WrCxQE,oBqC0QF,iBACA,gBACA,mBACA,2BAGF,cACE,iBACA,crCjQoB,mBqCmQpB,kCAEA,UrCtRE,gBqCwRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,2CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BrCjUoB,YqCwU1B,UACE,SACA,cACA,WACA,sDAKA,arCnVsB,0DqCsVpB,arCpVsB,4DqCyVxB,arC1Wc,gBqC4WZ,4DAGF,arC9WU,gBqCgXR,0DAGF,arCvVsB,gBqCyVpB,0DAGF,arCtXU,gBqCwXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,2BAKN,oBACE,crCnZkB,qBqCqZlB,yBACA,eACA,gBACA,gCACA,iCAEA,UrC3aE,gCqC6aA,oCAGF,arC9ZoB,gCqCgalB,iBAMR,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,crCxcsB,CqC6clB,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,arCthBwB,qBqCwhBtB,oBAEA,yBACE,SAKN,aACE,YAGF,kBACE,iBACA,oBAEA,YACE,2BACA,mBACA,aACA,mBrCrjBS,cAOW,0BqCijBpB,eACA,kBACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,arC5jBsB,oBqCgkBtB,kBACE,0BACA,aACA,crCjlBoB,gCqCmlBpB,eACA,qBACA,gBACA,kBAGF,cACE,kBACA,crC7kBoB,2BqCilBtB,iBACE,SACA,WACA,WACA,YACA,kBACA,oCAEA,kBrCtnBY,oCqC0nBZ,kBACE,mCAGF,kBrC7mBsB,sDqCknBxB,arCnnBwB,qBqCunBtB,gBACA,sBAGF,aACE,0BAGF,arC/nBwB,sBqCmoBxB,arCnpBc,yDqCwpBhB,oBAIE,crC5oBwB,iGqC+oBxB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBrCxsBc,yBqC4sBd,yBACE,wBAGF,yBrC7sBU,wBqCktBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,arC9sBoB,uBqCotBpB,wBACA,qBAGF,arC1sBsB,cqC+sBxB,kBrCpuBa,kBqCsuBX,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,crCnvBkB,yBqCqvBlB,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,arCjxBM,6BqCwxBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,crCxxBgB,mLqC2xBhB,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,arCzxBgB,iBqC2xBd,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,crCnzBgB,WqC0zBxB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,arCv3BY,8CqC43Bd,qBACE,aACA,WrC/3BI,cqCo4BR,iBACE,kkECr4BF,kIACE,CADF,sIACE,uIAYA,aAEE,yIAGF,aAEE,qIAGF,aAEE,6IAGF,aAEE,UChCJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,+BAGF,eACE,2EAGF,UAEE,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,+BAGF,UACE,0BAGF,gBACE,eACA,UAGA,WACA,yCAGF,iBACE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,gBACA,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,+DACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,sBChbJ,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WxCrCI,uBwCuCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,cxCjCoB,kBwCmCpB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,axCrDwB,gBwCuDtB,qBACA,0D","file":"flavours/glitch/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#192432 rgba(0,0,0,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#192432;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#1c2938}::-webkit-scrollbar-thumb:active{background:#192432}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(0,0,0,.1)}::-webkit-scrollbar-track:hover{background:#121a24}::-webkit-scrollbar-track:active{background:#121a24}::-webkit-scrollbar-corner{background:transparent}body{font-family:sans-serif,sans-serif;background:#06090c;font-size:13px;line-height:18px;font-weight:400;color:#fff;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif,sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#121a24}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.embed{background:#192432;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#0b1016;padding:0}body.error{position:absolute;text-align:center;color:#9baec8;background:#121a24;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#fff;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#fff;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:sans-serif,sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;width:40px;height:40px;background-size:40px 40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}.account-header .name{flex:1 1 auto;color:#d9e1e8;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#fff}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#26374d}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#9baec8;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#fff}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#2d415a;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#344b68}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#d9e1e8}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#000}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#192432;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;width:120px;height:120px;background-size:120px 120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #192432;background:#040609;border-radius:8%;background-position:50%;background-clip:padding-box}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#192432;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#fff;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#9baec8}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#9baec8;padding:10px;border-right:1px solid #192432;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #d8a070;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#d9e1e8}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#fff;font-family:sans-serif,sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #26374d}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#9baec8}.public-layout .public-account-header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#e1b590}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#fff}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#9baec8}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #202e3f}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #202e3f}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#121a24}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#192432}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.modal-layout{background:#121a24 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#4c6d98}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#4c6d98}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#9baec8}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#4c6d98}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#4c6d98}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#5377a5}.compact-header h1{font-size:24px;line-height:28px;color:#9baec8;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#d9e1e8}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#121a24;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.hero-widget__text a{color:#d9e1e8;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#9baec8}.box-widget{padding:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #3e5a7c;text-align:center;color:#9baec8;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#9baec8;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#d9e1e8;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#9baec8}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#9baec8;margin-bottom:10px}.page-header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#fff;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#9baec8}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#192432}.page-header h1{font-size:24px}}.directory{background:#121a24;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#121a24;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#202e3f}.directory__tag.active>a{background:#d8a070;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#9baec8}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#9baec8}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small{color:#fff}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#d8a070}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#040609;border:2px solid #121a24}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#9baec8;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #202e3f}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#fff}.accounts-table__count small{display:block;color:#9baec8;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #2d415a}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#9baec8}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#d8a070}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#0b1016;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#fff;border-bottom:1px solid #192432}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #192432}code{font-family:monospace,monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#fff;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#d8a070;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#9baec8}.simple_form .hint a{color:#d8a070}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#000}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#9baec8}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#fff;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .required abbr{text-decoration:none;color:#e87487}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#fff;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#fff;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #3e5a7c;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102;border:1px solid #000;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#a8b9cf}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#e87487}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#000}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#d8a070;background:#040609}.simple_form .input.field_with_errors label{color:#e87487}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#e87487}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#e87487;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#d8a070;color:#fff;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#ddad84}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#d3935c}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#e3566d}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#db2a47}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #000;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#3e5a7c;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(1, 1, 2, 0), #010102)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(18,26,36,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#fff}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#202e3f;color:#9baec8;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#9baec8;text-decoration:none}.flash-message a:hover{color:#fff;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:monospace,monospace;background:#121a24;color:#fff;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#192432}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#9baec8;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#d8a070;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#e1b590}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#9baec8}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#d9e1e8;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#d9e1e8;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#fff;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#9baec8}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#fff;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:monospace,monospace}.input-copy{background:#010102;border:1px solid #000;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:monospace,monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#0b1016;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#0b1016;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#202e3f}.card__img{height:130px;position:relative;background:#000;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#192432;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box;background:#040609;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#fff;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#121a24;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#d9e1e8}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#233346}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#9baec8;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#d9e1e8;background-color:rgba(217,225,232,.1);border:1px solid rgba(217,225,232,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#e87487;background-color:rgba(232,116,135,.1);border-color:rgba(232,116,135,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #26374d;border-bottom:1px solid #26374d;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #26374d}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#d9e1e8;background:rgba(4,6,9,.5)}.account__header__fields dd{flex:1 1 auto;color:#9baec8}.account__header__fields a{color:#d8a070;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#9baec8}.pending-account__header a{color:#d9e1e8;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#fff;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#121a24}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#202e3f}.button.logo-button{flex:0 auto;font-size:14px;background:#d8a070;color:#fff;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#fff}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#e3bb98}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{padding:8px 0;padding-bottom:2px;margin:initial;margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{position:absolute;margin:initial;float:initial;width:auto;left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}.embed .status .status__info,.public-layout .status .status__info{font-size:15px;display:initial}.embed .status .status__relative-time,.public-layout .status .status__relative-time{color:#3e5a7c;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.embed .status .status__info .status__display-name,.public-layout .status .status__info .status__display-name{display:block;max-width:100%;padding:6px 0;padding-right:25px;margin:initial}.embed .status .status__info .status__display-name .display-name strong,.public-layout .status .status__info .status__display-name .display-name strong{display:inline}.embed .status .status__avatar,.public-layout .status .status__avatar{height:48px;position:absolute;width:48px;margin:initial}.rtl .embed .status,.rtl .public-layout .status{padding-left:10px;padding-right:68px}.rtl .embed .status .status__info .status__display-name,.rtl .public-layout .status .status__info .status__display-name{padding-left:25px;padding-right:0}.rtl .embed .status .status__relative-time,.rtl .public-layout .status .status__relative-time{float:left}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.link-button{display:block;font-size:15px;line-height:20px;color:#d8a070;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#d59864;border:10px none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;transition-property:background-color;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#e0b38c;transition:all 200ms ease-out;transition-property:background-color}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled{background-color:#9baec8;cursor:default}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#121a24;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#a8b9cf}.button.button-alternative-2{background:#3e5a7c}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#45648a}.button.button-secondary{font-size:16px;line-height:36px;height:auto;color:#9baec8;text-transform:none;background:transparent;padding:3px 15px;border-radius:4px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#a8b9cf;color:#a8b9cf}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.icon-button{display:inline-block;padding:0;color:#3e5a7c;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#4a6b94;background-color:rgba(62,90,124,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(62,90,124,.3)}.icon-button.disabled{color:#283a50;background-color:transparent;cursor:default}.icon-button.active{color:#d8a070}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#3e5a7c}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#324965;background-color:rgba(62,90,124,.15)}.icon-button.inverted:focus{background-color:rgba(62,90,124,.3)}.icon-button.inverted.disabled{color:#4a6b94;background-color:transparent}.icon-button.inverted.active{color:#d8a070}.icon-button.inverted.active.disabled{color:#e6c3a4}.icon-button.overlayed{box-sizing:content-box;background:rgba(0,0,0,.6);color:rgba(255,255,255,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(0,0,0,.9)}.text-icon-button{color:#3e5a7c;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#324965;background-color:rgba(62,90,124,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(62,90,124,.3)}.text-icon-button.disabled{color:#6b8cb5;background-color:transparent;cursor:default}.text-icon-button.active{color:#d8a070}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute;transform-origin:50% 0}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.notification__favourite-icon-wrapper{left:0;position:absolute}.notification__favourite-icon-wrapper .fa.star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#fff;text-decoration:underline}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name a{color:inherit;text-decoration:inherit}.display-name strong{height:18px;font-size:16px;font-weight:500;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name span{display:block;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name>a:hover strong{text-decoration:underline}.display-name.inline{padding:0;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.display-name.inline strong{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name.inline span{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #c0cdd9;margin:5px 7px 6px;height:0}.dropdown-menu{background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.dropdown-menu ul{list-style:none}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#d9e1e8}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#d9e1e8}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#d8a070;color:#d9e1e8;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#d8a070;color:#d9e1e8}.dropdown__icon{vertical-align:middle}.static-content{padding:10px;padding-top:20px;color:#3e5a7c}.static-content h1{font-size:16px;font-weight:500;margin-bottom:40px;text-align:center}.static-content p{font-size:13px;margin-bottom:20px}.column,.drawer{flex:1 1 100%;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#202e3f;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#fff;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #202e3f;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.auto-columns .tabs-bar__link:hover,.auto-columns .tabs-bar__link:focus,.auto-columns .tabs-bar__link:active{background:#2a3c54;border-bottom-color:#2a3c54}}.multi-columns .tabs-bar__link:hover,.multi-columns .tabs-bar__link:focus,.multi-columns .tabs-bar__link:active{background:#2a3c54;border-bottom-color:#2a3c54}.tabs-bar__link.active{border-bottom:2px solid #d8a070;color:#d8a070}.tabs-bar__link span{margin-left:5px;display:none}.tabs-bar__link span.icon{margin-left:0;display:inline}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#d8a070;border:2px solid #202e3f;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#fff}.column-link--transparent .icon-with-badge__badge{border-color:#040609}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#121a24;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#010102}.react-toggle--checked .react-toggle-track{background-color:#d8a070}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#e3bb98}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #121a24;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#d8a070}.getting-started__wrapper,.getting_started,.flex-spacer{background:#121a24}.getting-started__wrapper{position:relative;overflow-y:auto}.flex-spacer{flex:1 1 auto}.getting-started{background:#121a24;flex:1 0 auto}.getting-started p{color:#d9e1e8}.getting-started a{color:#3e5a7c}.getting-started__panel{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex:0 1 auto}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{color:#3e5a7c;font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#3e5a7c;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#9baec8}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#9baec8;padding:10px;font-weight:500;border-bottom:1px solid #202e3f}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#9baec8}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#121a24;padding:4px 8px;margin:-6px 10px}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#202e3f;border:1px solid #0b1016}.setting-text{color:#9baec8;background:transparent;border:none;border-bottom:2px solid #9baec8;box-sizing:border-box;display:block;font-family:inherit;margin-bottom:10px;padding:7px 0;width:100%}.setting-text:focus,.setting-text:active{color:#fff;border-bottom-color:#d8a070}@media screen and (max-width: 600px){.auto-columns .setting-text,.single-column .setting-text{font-size:16px}}.setting-text.light{color:#121a24;border-bottom:2px solid #405c80}.setting-text.light:focus,.setting-text.light:active{color:#121a24;border-bottom-color:#d8a070}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#3e5a7c;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#d8a070}.reduce-motion button.icon-button.disabled i.fa-retweet{color:#283a50}.load-more{display:block;color:#3e5a7c;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#151f2b}.load-gap{border-bottom:1px solid #202e3f}.missing-indicator{padding-top:68px}.scrollable>div>:first-child .notification__dismiss-overlay>.wrappy{border-top:1px solid #121a24}.notification__dismiss-overlay{overflow:hidden;position:absolute;top:0;right:0;bottom:-1px;padding-left:15px;z-index:999;align-items:center;justify-content:flex-end;cursor:pointer;display:flex}.notification__dismiss-overlay .wrappy{width:4rem;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#202e3f;border-left:1px solid #344b68;box-shadow:0 0 5px #000;border-bottom:1px solid #121a24}.notification__dismiss-overlay .ckbox{border:2px solid #9baec8;border-radius:2px;width:30px;height:30px;font-size:20px;color:#9baec8;text-shadow:0 0 5px #000;display:flex;justify-content:center;align-items:center}.notification__dismiss-overlay:focus{outline:0 !important}.notification__dismiss-overlay:focus .ckbox{box-shadow:0 0 1px 1px #d8a070}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.loading-indicator{color:#3e5a7c;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #3e5a7c;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#3e5a7c}29%{background-color:#3e5a7c}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:flex;left:4px;top:4px;width:auto;height:auto;align-items:center}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(0,0,0,.5);border-radius:8px;padding:8px 12px;color:#fff;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(0,0,0,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(0,0,0,.5)}.setting-toggle{display:block;line-height:24px}.setting-toggle__label,.setting-radio__label,.setting-meta__label{color:#9baec8;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.setting-radio{display:block;line-height:18px}.setting-radio__label{margin-bottom:0}.column-settings__row legend{color:#9baec8;cursor:default;display:block;font-weight:500;margin-top:10px}.setting-radio__input{vertical-align:middle}.setting-meta__label{float:right}@keyframes heartbeat{from{transform:scale(1);transform-origin:center center;animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.pulse-loading{animation:heartbeat 1.5s ease-in-out infinite both}.upload-area{align-items:center;background:rgba(0,0,0,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#121a24;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#d9e1e8;font-size:18px;font-weight:500;border:2px dashed #3e5a7c;border-radius:4px}.dropdown--active .emoji-button img{opacity:1;filter:none}.loading-bar{background-color:#d8a070;height:3px;position:absolute;top:0;left:0;z-index:9999}.icon-badge-wrapper{position:relative}.icon-badge{position:absolute;display:block;right:-0.25em;top:-0.25em;background-color:#d8a070;border-radius:50%;font-size:75%;width:1em;height:1em}.conversation{display:flex;border-bottom:1px solid #202e3f;padding:5px;padding-bottom:0}.conversation:focus{background:#151f2b;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative}.conversation__unread{display:inline-block;background:#d8a070;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#9baec8;padding-left:15px}.conversation__content__names{color:#9baec8;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#fff;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content .status__content{margin:0}.conversation--unread{background:#151f2b}.conversation--unread:focus{background:#192432}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#fff}.ui .flash-message{margin-top:10px;margin-left:auto;margin-right:auto;margin-bottom:0;min-width:75%}::-webkit-scrollbar-thumb{border-radius:0}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#d9e1e8;max-width:400px}noscript div a{color:#d8a070;text-decoration:underline}noscript div a:hover{text-decoration:none}noscript div a{word-break:break-word}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet,button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.status-direct button.icon-button.disabled i.fa-retweet,.status-direct button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.account{padding:10px;border-bottom:1px solid #202e3f;color:inherit;text-decoration:none}.account .account__display-name{flex:1 1 auto;display:block;color:#9baec8;overflow:hidden;text-decoration:none;font-size:14px}.account.small{border:none;padding:0}.account.small>.account__avatar-wrapper{margin:0 8px 0 0}.account.small>.display-name{height:24px;line-height:24px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:8%;background-position:50%;background-clip:padding-box;position:relative;cursor:pointer}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:8%;background-position:50%;background-clip:padding-box;overflow:hidden;position:relative;cursor:default}.account__avatar-composite div{border-radius:8%;background-position:50%;background-clip:padding-box;float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}.account__avatar-overlay{position:relative;width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:8%;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:8%;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__header__wrapper{flex:0 0 auto;background:#192432}.account__disclaimer{padding:10px;color:#3e5a7c}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-left:1px solid #202e3f;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab:first-child{border-left:0}.account__action-bar__tab.active{border-bottom:4px solid #d8a070}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#9baec8}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#fff}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account__action-bar__tab abbr{color:#d8a070}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.notification__message{margin-left:42px;padding:8px 0 0 26px;cursor:default;color:#9baec8;font-size:15px;position:relative}.notification__message .fa{color:#d8a070}.notification__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account--panel{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#202e3f;padding:15px}.column-settings__section{color:#9baec8;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#a8b9cf}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#192432}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#3e5a7c;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#202e3f}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#26374d;color:#a8b9cf}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#9baec8}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#3e5a7c}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#45648a}.column-settings__hashtags .column-select__indicator-separator{background-color:#202e3f}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#d9e1e8}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#9baec8;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#121a24}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#121a24;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#b9c8d5}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#fff;margin-bottom:4px;display:block;vertical-align:top;background-color:#000;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:none;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#0b1016;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#9baec8;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#d9e1e8}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #202e3f}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #121a24}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#0f151d;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #06090c}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f}.account__moved-note__message{position:relative;margin-left:58px;color:#3e5a7c;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.account__header__content{color:#9baec8;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#0b1016}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#192432;padding:5px;border-bottom:1px solid #26374d}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#040609;border:2px solid #192432}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #26374d;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#fff}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #26374d}.account__header__bio .account__header__fields a{color:#e1b590}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#9baec8;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#fff}.domain{padding:10px;border-bottom:1px solid #202e3f}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#fff;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}@keyframes spring-flip-in{0%{transform:rotate(0deg)}30%{transform:rotate(-242.4deg)}60%{transform:rotate(-158.35deg)}90%{transform:rotate(-187.5deg)}100%{transform:rotate(-180deg)}}@keyframes spring-flip-out{0%{transform:rotate(-180deg)}30%{transform:rotate(62.4deg)}60%{transform:rotate(-21.635deg)}90%{transform:rotate(7.5deg)}100%{transform:rotate(0deg)}}.status__content--with-action{cursor:pointer}.status__content{position:relative;margin:10px 0;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:visible;padding-top:5px}.status__content:focus{outline:0}.status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.status__content pre,.status__content blockquote{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.status__content pre:last-child,.status__content blockquote:last-child{margin-bottom:0}.status__content .status__content__text,.status__content .e-content{overflow:hidden}.status__content .status__content__text>ul,.status__content .status__content__text>ol,.status__content .e-content>ul,.status__content .e-content>ol{margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h1,.status__content .e-content h2,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{margin-top:20px;margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .e-content h1,.status__content .e-content h2{font-weight:700;font-size:1.2em}.status__content .status__content__text h2,.status__content .e-content h2{font-size:1.1em}.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{font-weight:500}.status__content .status__content__text blockquote,.status__content .e-content blockquote{padding-left:10px;border-left:3px solid #9baec8;color:#9baec8;white-space:normal}.status__content .status__content__text blockquote p:last-child,.status__content .e-content blockquote p:last-child{margin-bottom:0}.status__content .status__content__text b,.status__content .status__content__text strong,.status__content .e-content b,.status__content .e-content strong{font-weight:700}.status__content .status__content__text em,.status__content .status__content__text i,.status__content .e-content em,.status__content .e-content i{font-style:italic}.status__content .status__content__text sub,.status__content .e-content sub{font-size:smaller;text-align:sub}.status__content .status__content__text sup,.status__content .e-content sup{font-size:smaller;vertical-align:super}.status__content .status__content__text ul,.status__content .status__content__text ol,.status__content .e-content ul,.status__content .e-content ol{margin-left:1em}.status__content .status__content__text ul p,.status__content .status__content__text ol p,.status__content .e-content ul p,.status__content .e-content ol p{margin:0}.status__content .status__content__text ul,.status__content .e-content ul{list-style-type:disc}.status__content .status__content__text ol,.status__content .e-content ol{list-style-type:decimal}.status__content a{color:#d8a070;text-decoration:none}.status__content a:hover{text-decoration:underline}.status__content a:hover .fa{color:#4a6b94}.status__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span{text-decoration:underline}.status__content a .fa{color:#3e5a7c}.status__content .status__content__spoiler{display:none}.status__content .status__content__spoiler.status__content__spoiler--visible{display:block}.status__content a.unhandled-link{color:#e1b590}.status__content a.unhandled-link .link-origin-tag{color:#ca8f04;font-size:.8em}.status__content .status__content__spoiler-link{background:#45648a}.status__content .status__content__spoiler-link:hover{background:#4a6b94;text-decoration:none}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:#45648a;border:none;color:#121a24;font-weight:500;font-size:11px;padding:0 5px;text-transform:uppercase;line-height:inherit;cursor:pointer;vertical-align:bottom}.status__content__spoiler-link:hover{background:#4a6b94;text-decoration:none}.status__content__spoiler-link .status__content__spoiler-icon{display:inline-block;margin:0 0 0 5px;border-left:1px solid currentColor;padding:0 0 0 4px;font-size:16px;vertical-align:-2px}.notif-cleaning .status,.notif-cleaning .notification-follow,.notif-cleaning .notification-follow-request{padding-right:4.5rem}.status__wrapper--filtered{color:#3e5a7c;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #202e3f}.status__prepend-icon-wrapper{left:-26px;position:absolute}.notification-follow,.notification-follow-request{position:relative;border-bottom:1px solid #202e3f}.notification-follow .account,.notification-follow-request .account{border-bottom:0 none}.focusable:focus{outline:0;background:#192432}.focusable:focus.status.status-direct:not(.read){background:#26374d}.focusable:focus.status.status-direct:not(.read).muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#202e3f}.status{padding:10px 14px;position:relative;height:auto;border-bottom:1px solid #202e3f;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:28px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#202e3f;border-bottom-color:#26374d}.status.light .status__relative-time{color:#3e5a7c}.status.light .status__display-name{color:#121a24}.status.light .display-name strong{color:#121a24}.status.light .display-name span{color:#3e5a7c}.status.light .status__content{color:#121a24}.status.light .status__content a{color:#d8a070}.status.light .status__content a.status__content__spoiler-link{color:#fff;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#b5c3d6}.status.collapsed{background-position:center;background-size:cover;user-select:none}.status.collapsed.has-background::before{display:block;position:absolute;left:0;right:0;top:0;bottom:0;background-image:linear-gradient(to bottom, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.65) 24px, rgba(0, 0, 0, 0.8));pointer-events:none;content:\"\"}.status.collapsed .display-name:hover .display-name__html{text-decoration:none}.status.collapsed .status__content{height:20px;overflow:hidden;text-overflow:ellipsis;padding-top:0}.status.collapsed .status__content:after{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background:linear-gradient(rgba(18, 26, 36, 0), #121a24);pointer-events:none}.status.collapsed .status__content a:hover{text-decoration:none}.status.collapsed:focus>.status__content:after{background:linear-gradient(rgba(25, 36, 50, 0), #192432)}.status.collapsed.status-direct:not(.read)>.status__content:after{background:linear-gradient(rgba(32, 46, 63, 0), #202e3f)}.status.collapsed .notification__message{margin-bottom:0}.status.collapsed .status__info .notification__message>span{white-space:nowrap}.status .notification__message{margin:-10px 0px 10px 0}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#547aa9}.status__relative-time{display:inline-block;flex-grow:1;color:#3e5a7c;font-size:14px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status__display-name{color:#3e5a7c;overflow:hidden}.status__info__account .status__display-name{display:block;max-width:100%}.status__info{display:flex;justify-content:space-between;font-size:15px}.status__info>span{text-overflow:ellipsis;overflow:hidden}.status__info .notification__message>span{word-wrap:break-word}.status__info__icons{display:flex;align-items:center;height:1em;color:#3e5a7c}.status__info__icons .status__media-icon,.status__info__icons .status__visibility-icon,.status__info__icons .status__reply-icon{padding-left:2px;padding-right:2px}.status__info__icons .status__collapse-button.active>.fa-angle-double-up{transform:rotate(-180deg)}.no-reduce-motion .status__collapse-button.activate>.fa-angle-double-up{animation:spring-flip-in 1s linear}.no-reduce-motion .status__collapse-button.deactivate>.fa-angle-double-up{animation:spring-flip-out 1s linear}.status__info__account{display:flex;align-items:center;justify-content:flex-start}.status-check-box{border-bottom:1px solid #d9e1e8;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-top:-10px;margin-bottom:10px;margin-left:58px;color:#3e5a7c;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#3e5a7c}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#3e5a7c}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#192432;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#3e5a7c;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#fff}.muted .emojione{opacity:.5}a.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#d9e1e8;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#fff}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{flex:none;margin:0 10px 0 0;height:48px;width:48px}.muted .status__content,.muted .status__content p,.muted .status__content a,.muted .status__content__text{color:#3e5a7c}.muted .status__display-name strong{color:#3e5a7c}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#3e5a7c;color:#121a24}.muted a.status__content__spoiler-link:hover{background:#436187;text-decoration:none}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.status-card{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;color:#3e5a7c;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#d9e1e8;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}.status-card__actions a .fa,.status-card__actions a:hover .fa{color:inherit}a.status-card{cursor:pointer}a.status-card:hover{background:#202e3f}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#9baec8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#9baec8}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#202e3f;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#192432}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#192432}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.attachment-list{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#3e5a7c;padding:8px 18px;cursor:default;border-right:1px solid #202e3f;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#3e5a7c;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#3e5a7c}.status__wrapper--filtered__button{display:inline;color:#e1b590;border:0;background:transparent;padding:0;font-size:inherit;line-height:inherit}.status__wrapper--filtered__button:hover,.status__wrapper--filtered__button:active{text-decoration:underline}.modal-container--preloader{background:#202e3f}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.onboarding-modal,.error-modal,.embed-modal{background:#d9e1e8;color:#121a24;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.onboarding-modal__pager{height:80vh;width:80vw;max-width:520px;max-height:470px}.onboarding-modal__pager .react-swipeable-view-container>div{width:100%;height:100%;box-sizing:border-box;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;user-select:text}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}@media screen and (max-width: 550px){.onboarding-modal{width:100%;height:100%;border-radius:0}.onboarding-modal__pager{width:100%;height:auto;max-width:none;max-height:none;flex:1 1 auto}}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#c0cdd9;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#3e5a7c;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#37506f;background-color:#a6b9c9}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#121a24}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#192432}.error-modal__footer{justify-content:center}.onboarding-modal__dots{flex:1 1 auto;display:flex;align-items:center;justify-content:center}.onboarding-modal__dot{width:14px;height:14px;border-radius:14px;background:#a6b9c9;margin:0 3px;cursor:pointer}.onboarding-modal__dot:hover{background:#a0b4c5}.onboarding-modal__dot.active{cursor:default;background:#8da5ba}.onboarding-modal__page__wrapper{pointer-events:none;padding:25px;padding-bottom:0}.onboarding-modal__page__wrapper.onboarding-modal__page__wrapper--active{pointer-events:auto}.onboarding-modal__page{cursor:default;line-height:21px}.onboarding-modal__page h1{font-size:18px;font-weight:500;color:#121a24;margin-bottom:20px}.onboarding-modal__page a{color:#d8a070}.onboarding-modal__page a:hover,.onboarding-modal__page a:focus,.onboarding-modal__page a:active{color:#dcab80}.onboarding-modal__page .navigation-bar a{color:inherit}.onboarding-modal__page p{font-size:16px;color:#3e5a7c;margin-top:10px;margin-bottom:10px}.onboarding-modal__page p:last-child{margin-bottom:0}.onboarding-modal__page p strong{font-weight:500;background:#121a24;color:#d9e1e8;border-radius:4px;font-size:14px;padding:3px 6px}.onboarding-modal__page p strong:lang(ja){font-weight:700}.onboarding-modal__page p strong:lang(ko){font-weight:700}.onboarding-modal__page p strong:lang(zh-CN){font-weight:700}.onboarding-modal__page p strong:lang(zh-HK){font-weight:700}.onboarding-modal__page p strong:lang(zh-TW){font-weight:700}.onboarding-modal__page__wrapper-0{height:100%;padding:0}.onboarding-modal__page-one__lead{padding:65px;padding-top:45px;padding-bottom:0;margin-bottom:10px}.onboarding-modal__page-one__lead h1{font-size:26px;line-height:36px;margin-bottom:8px}.onboarding-modal__page-one__lead p{margin-bottom:0}.onboarding-modal__page-one__extra{padding-right:65px;padding-left:185px;text-align:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#121a24;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#121a24;color:#d9e1e8;font-weight:500;padding:10px;border-radius:4px}.onboarding-modal__page-two p,.onboarding-modal__page-three p,.onboarding-modal__page-four p,.onboarding-modal__page-five p{text-align:left}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{background:#040609;color:#d9e1e8;margin-bottom:20px;border-radius:4px;padding:10px;text-align:center;font-size:14px;box-shadow:1px 2px 6px rgba(0,0,0,.3)}.onboarding-modal__page-two .figure .onboarding-modal__image,.onboarding-modal__page-three .figure .onboarding-modal__image,.onboarding-modal__page-four .figure .onboarding-modal__image,.onboarding-modal__page-five .figure .onboarding-modal__image{border-radius:4px;margin-bottom:10px}.onboarding-modal__page-two .figure.non-interactive,.onboarding-modal__page-three .figure.non-interactive,.onboarding-modal__page-four .figure.non-interactive,.onboarding-modal__page-five .figure.non-interactive{pointer-events:none;text-align:left}.onboarding-modal__page-four__columns .row{display:flex;margin-bottom:20px}.onboarding-modal__page-four__columns .row>div{flex:1 1 0;margin:0 10px}.onboarding-modal__page-four__columns .row>div:first-child{margin-left:0}.onboarding-modal__page-four__columns .row>div:last-child{margin-right:0}.onboarding-modal__page-four__columns .row>div p{text-align:center}.onboarding-modal__page-four__columns .row:last-child{margin-bottom:0}.onboarding-modal__page-four__columns .column-header{color:#fff}@media screen and (max-width: 320px)and (max-height: 600px){.onboarding-modal__page p{font-size:14px;line-height:20px}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{font-size:12px;margin-bottom:10px}.onboarding-modal__page-four__columns .row{margin-bottom:10px}.onboarding-modal__page-four__columns .column-header{padding:5px;font-size:12px}}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.doodle-modal,.favourite-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#f2f5f7;color:#121a24;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__relative-time,.doodle-modal .status__relative-time,.favourite-modal .status__relative-time,.confirmation-modal .status__relative-time,.report-modal .status__relative-time,.actions-modal .status__relative-time,.mute-modal .status__relative-time,.block-modal .status__relative-time{color:#3e5a7c;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.boost-modal .status__display-name,.doodle-modal .status__display-name,.favourite-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:flex}.boost-modal .status__avatar,.doodle-modal .status__avatar,.favourite-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:48px;width:48px}.boost-modal .status__content__spoiler-link,.doodle-modal .status__content__spoiler-link,.favourite-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#f2f5f7}.actions-modal .status{background:#fff;border-bottom-color:#d9e1e8;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#d9e1e8}.boost-modal__container,.favourite-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status,.favourite-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.doodle-modal__action-bar,.favourite-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#d9e1e8;padding:10px;line-height:36px}.boost-modal__action-bar>div,.doodle-modal__action-bar>div,.favourite-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#3e5a7c;padding-right:10px}.boost-modal__action-bar .button,.doodle-modal__action-bar .button,.favourite-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header,.favourite-modal__status-header{font-size:15px}.boost-modal__status-time,.favourite-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #d9e1e8}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#d8a070}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #d9e1e8;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #d9e1e8;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #c0cdd9}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #d9e1e8;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#121a24;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#121a24;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal strong{display:block;font-weight:500}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#121a24;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#d8a070;color:#fff}.actions-modal ul li:not(:empty) a>.react-toggle,.actions-modal ul li:not(:empty) a>.icon,.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#3e5a7c;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#37506f;background-color:transparent}.confirmation-modal__do_not_ask_again{padding-left:20px;padding-right:20px;padding-bottom:10px;font-size:14px}.confirmation-modal__do_not_ask_again label,.confirmation-modal__do_not_ask_again input{vertical-align:middle}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#121a24;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#121a24;color:#fff;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#192432}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#fff;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.filtered-status-info{text-align:start}.filtered-status-info .spoiler__text{margin-top:20px}.filtered-status-info .account{border-bottom:0}.filtered-status-info .account__display-name strong{color:#121a24}.filtered-status-info .status__content__spoiler{display:none}.filtered-status-info .status__content__spoiler--visible{display:flex}.filtered-status-info ul{padding:10px;margin-left:12px;list-style:disc inside}.filtered-status-info .filtered-status-edit-link{color:#3e5a7c;text-decoration:none}.filtered-status-info .filtered-status-edit-link:hover{text-decoration:underline}.composer{padding:10px}.character-counter{cursor:default;font-family:sans-serif,sans-serif;font-size:14px;font-weight:600;color:#3e5a7c}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .composer--spoiler{transition:height .4s ease,opacity .4s ease}.composer--spoiler{height:0;transform-origin:bottom;opacity:0}.composer--spoiler.composer--spoiler--visible{height:36px;margin-bottom:11px;opacity:1}.composer--spoiler input{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px;padding:10px;width:100%;outline:0;color:#121a24;background:#fff;font-size:14px;font-family:inherit;resize:vertical}.composer--spoiler input::placeholder{color:#3e5a7c}.composer--spoiler input:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .composer--spoiler input{font-size:16px}}.single-column .composer--spoiler input{font-size:16px}.composer--warning{color:#121a24;margin-bottom:15px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.composer--warning a{color:#3e5a7c;font-weight:500;text-decoration:underline}.composer--warning a:active,.composer--warning a:focus,.composer--warning a:hover{text-decoration:none}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#d8a070}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-left:5px;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#d8a070;background:#d8a070}.composer--reply{margin:0 0 10px;border-radius:4px;padding:10px;background:#9baec8;min-height:23px;overflow-y:auto;flex:0 2 auto}.composer--reply>header{margin-bottom:5px;overflow:hidden}.composer--reply>header>.account.small{color:#121a24}.composer--reply>header>.cancel{float:right;line-height:24px}.composer--reply>.content{position:relative;margin:10px 0;padding:0 12px;font-size:14px;line-height:20px;color:#121a24;word-wrap:break-word;font-weight:400;overflow:visible;white-space:pre-wrap;padding-top:5px;overflow:hidden}.composer--reply>.content p,.composer--reply>.content pre,.composer--reply>.content blockquote{margin-bottom:20px;white-space:pre-wrap}.composer--reply>.content p:last-child,.composer--reply>.content pre:last-child,.composer--reply>.content blockquote:last-child{margin-bottom:0}.composer--reply>.content h1,.composer--reply>.content h2,.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{margin-top:20px;margin-bottom:20px}.composer--reply>.content h1,.composer--reply>.content h2{font-weight:700;font-size:18px}.composer--reply>.content h2{font-size:16px}.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{font-weight:500}.composer--reply>.content blockquote{padding-left:10px;border-left:3px solid #121a24;color:#121a24;white-space:normal}.composer--reply>.content blockquote p:last-child{margin-bottom:0}.composer--reply>.content b,.composer--reply>.content strong{font-weight:700}.composer--reply>.content em,.composer--reply>.content i{font-style:italic}.composer--reply>.content sub{font-size:smaller;text-align:sub}.composer--reply>.content ul,.composer--reply>.content ol{margin-left:1em}.composer--reply>.content ul p,.composer--reply>.content ol p{margin:0}.composer--reply>.content ul{list-style-type:disc}.composer--reply>.content ol{list-style-type:decimal}.composer--reply>.content a{color:#3e5a7c;text-decoration:none}.composer--reply>.content a:hover{text-decoration:underline}.composer--reply>.content a.mention:hover{text-decoration:none}.composer--reply>.content a.mention:hover span{text-decoration:underline}.composer--reply .emojione{width:20px;height:20px;margin:-5px 0 0}.emoji-picker-dropdown{position:absolute;right:5px;top:5px}.emoji-picker-dropdown ::-webkit-scrollbar-track:hover,.emoji-picker-dropdown ::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.compose-form__autosuggest-wrapper,.autosuggest-input{position:relative;width:100%}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.autosuggest-input label .autosuggest-textarea__textarea{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px 4px 0 0;padding:10px 32px 0 10px;width:100%;min-height:100px;outline:0;color:#121a24;background:#fff;font-size:14px;font-family:inherit;resize:none;scrollbar-color:initial}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::placeholder,.autosuggest-input label .autosuggest-textarea__textarea::placeholder{color:#3e5a7c}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::-webkit-scrollbar,.autosuggest-input label .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:disabled,.autosuggest-input label .autosuggest-textarea__textarea:disabled{background:#d9e1e8}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:focus,.autosuggest-input label .autosuggest-textarea__textarea:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}}.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}@media screen and (max-width: 600px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.composer--textarea--icons{display:block;position:absolute;top:29px;right:5px;bottom:5px;overflow:hidden}.composer--textarea--icons>.textarea_icon{display:block;margin:2px 0 0 2px;width:24px;height:24px;color:#3e5a7c;font-size:18px;line-height:24px;text-align:center;opacity:.8}.autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.autosuggest-textarea__suggestions{display:block;position:absolute;box-sizing:border-box;top:100%;border-radius:0 0 4px 4px;padding:6px;width:100%;color:#121a24;background:#d9e1e8;box-shadow:4px 4px 6px rgba(0,0,0,.4);font-size:14px;z-index:99;display:none}.autosuggest-textarea__suggestions--visible{display:block}.autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.autosuggest-textarea__suggestions__item:hover,.autosuggest-textarea__suggestions__item:focus,.autosuggest-textarea__suggestions__item:active,.autosuggest-textarea__suggestions__item.selected{background:#b9c8d5}.autosuggest-textarea__suggestions__item>.account,.autosuggest-textarea__suggestions__item>.emoji,.autosuggest-textarea__suggestions__item>.autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.autosuggest-textarea__suggestions__item .autosuggest-hashtag{justify-content:space-between}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item .autosuggest-hashtag strong{font-weight:500}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item>.account.small .display-name>span{color:#3e5a7c}.composer--upload_form{overflow:hidden}.composer--upload_form>.content{display:flex;flex-direction:row;flex-wrap:wrap;font-family:inherit;padding:5px;overflow:hidden}.composer--upload_form--item{flex:1 1 0;margin:5px;min-width:40%}.composer--upload_form--item>div{position:relative;border-radius:4px;height:140px;width:100%;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;overflow:hidden}.composer--upload_form--item>div textarea{display:block;position:absolute;box-sizing:border-box;bottom:0;left:0;margin:0;border:0;padding:10px;width:100%;color:#d9e1e8;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);font-size:14px;font-family:inherit;font-weight:500;opacity:0;z-index:2;transition:opacity .1s ease}.composer--upload_form--item>div textarea:focus{color:#fff}.composer--upload_form--item>div textarea::placeholder{opacity:.54;color:#d9e1e8}.composer--upload_form--item>div>.close{mix-blend-mode:difference}.composer--upload_form--item.active>div textarea{opacity:1}.composer--upload_form--actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.composer--upload_form--actions .icon-button{flex:0 1 auto;color:#d9e1e8;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.composer--upload_form--actions .icon-button:hover,.composer--upload_form--actions .icon-button:focus,.composer--upload_form--actions .icon-button:active{color:#e6ebf0}.composer--upload_form--actions.active{opacity:1}.composer--upload_form--progress{display:flex;padding:10px;color:#9baec8;overflow:hidden}.composer--upload_form--progress>.fa{font-size:34px;margin-right:10px}.composer--upload_form--progress>.message{flex:1 1 auto}.composer--upload_form--progress>.message>span{display:block;font-size:12px;font-weight:500;text-transform:uppercase}.composer--upload_form--progress>.message>.backdrop{position:relative;margin-top:5px;border-radius:6px;width:100%;height:6px;background:#3e5a7c}.composer--upload_form--progress>.message>.backdrop>.tracker{position:absolute;top:0;left:0;height:6px;border-radius:6px;background:#d8a070}.compose-form__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.composer--options-wrapper{padding:10px;background:#ebebeb;border-radius:0 0 4px 4px;height:27px;display:flex;justify-content:space-between;flex:0 0 auto}.composer--options{display:flex;flex:0 0 auto}.composer--options>*{display:inline-block;box-sizing:content-box;padding:0 3px;height:27px;line-height:27px;vertical-align:bottom}.composer--options>hr{display:inline-block;margin:0 3px;border-width:0 0 0 1px;border-style:none none none solid;border-color:transparent transparent transparent #c2c2c2;padding:0;width:0;height:27px;background:transparent}.compose--counter-wrapper{align-self:center;margin-right:4px}.composer--options--dropdown.open>.value{border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1);color:#fff;background:#d8a070;transition:none}.composer--options--dropdown.open.top>.value{border-radius:0 0 4px 4px;box-shadow:0 4px 4px rgba(0,0,0,.1)}.composer--options--dropdown--content{position:absolute;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);background:#fff;overflow:hidden;transform-origin:50% 0}.composer--options--dropdown--content--item{display:flex;align-items:center;padding:10px;color:#121a24;cursor:pointer}.composer--options--dropdown--content--item>.content{flex:1 1 auto;color:#3e5a7c}.composer--options--dropdown--content--item>.content:not(:first-child){margin-left:10px}.composer--options--dropdown--content--item>.content strong{display:block;color:#121a24;font-weight:500}.composer--options--dropdown--content--item:hover,.composer--options--dropdown--content--item.active{background:#d8a070;color:#fff}.composer--options--dropdown--content--item:hover>.content,.composer--options--dropdown--content--item.active>.content{color:#fff}.composer--options--dropdown--content--item:hover>.content strong,.composer--options--dropdown--content--item.active>.content strong{color:#fff}.composer--options--dropdown--content--item.active:hover{background:#dcab80}.composer--publisher{padding-top:10px;text-align:right;white-space:nowrap;overflow:hidden;justify-content:flex-end;flex:0 0 auto}.composer--publisher>.primary{display:inline-block;margin:0;padding:0 10px;text-align:center}.composer--publisher>.side_arm{display:inline-block;margin:0 2px;padding:0;width:36px;text-align:center}.composer--publisher.over>.count{color:#ff5050}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#040609;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#121a24}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.column{overflow:hidden}.column-back-button{box-sizing:border-box;width:100%;background:#192432;color:#d8a070;cursor:pointer;flex:0 0 auto;font-size:16px;border:0;text-align:unset;padding:15px;margin:0;z-index:3}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#192432;border:0;font-family:inherit;color:#d8a070;cursor:pointer;flex:0 0 auto;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.column-link{background:#202e3f;color:#fff;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#253549}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#d9e1e8}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#fff}.column-link--transparent.active{color:#d8a070}.column-link__icon{display:inline-block;margin-right:5px}.column-subheading{background:#121a24;color:#3e5a7c;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.column-header__wrapper{position:relative;flex:0 0 auto}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;top:35px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(216, 160, 112, 0.23) 0%, rgba(216, 160, 112, 0) 60%)}.column-header{display:flex;font-size:16px;background:#192432;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden}.column-header>button{margin:0;border:none;padding:15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#d8a070}.column-header.active{box-shadow:0 1px 0 rgba(216,160,112,.3)}.column-header.active .column-header__icon{color:#d8a070;text-shadow:0 0 10px rgba(216,160,112,.4)}.column-header:focus,.column-header:active{outline:0}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.wide .columns-area:not(.columns-area--mobile) .column{flex:auto;min-width:330px;max-width:400px}.column>.scrollable{background:#121a24}.column-header__buttons{height:48px;display:flex;margin-left:0}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button,.column-header__notif-cleaning-buttons button{background:#192432;border:0;color:#9baec8;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover,.column-header__notif-cleaning-buttons button:hover{color:#b2c1d5}.column-header__button.active,.column-header__notif-cleaning-buttons button.active{color:#fff;background:#202e3f}.column-header__button.active:hover,.column-header__notif-cleaning-buttons button.active:hover{color:#fff;background:#202e3f}.column-header__button:focus,.column-header__notif-cleaning-buttons button:focus{text-shadow:0 0 4px #d3935c}.column-header__notif-cleaning-buttons{display:flex;align-items:stretch;justify-content:space-around}.column-header__notif-cleaning-buttons button{background:transparent;text-align:center;padding:10px 0;white-space:pre-wrap}.column-header__notif-cleaning-buttons b{font-weight:bold}.column-header__collapsible-inner.nopad-drawer{padding:0}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#9baec8;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #26374d;margin:10px 0}.column-header__collapsible.ncd{transition:none}.column-header__collapsible.ncd.collapsed{max-height:0;opacity:.7}.column-header__collapsible-inner{background:#202e3f;padding:15px}.column-header__setting-btn:hover{color:#9baec8;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.column-header__title{display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header__icon{display:inline-block;margin-right:5px}.empty-column-indicator,.error-column{color:#3e5a7c;background:#121a24;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column{contain:strict}}.empty-column-indicator>span,.error-column>span{max-width:400px}.empty-column-indicator a,.error-column a{color:#d8a070;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover{text-decoration:underline}.error-column{flex-direction:column}.single-column.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}@media screen and (max-width: 415px){.auto-columns.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}}@media screen and (max-width: 415px){.auto-columns.navbar-under .react-swipeable-view-container .columns-area,.single-column.navbar-under .react-swipeable-view-container .columns-area{height:100% !important}}.column-inline-form{padding:7px 15px;padding-right:5px;display:flex;justify-content:flex-start;align-items:center;background:#192432}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%;margin-bottom:6px}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 5px}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#3e5a7c;background:#121a24;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#3e5a7c}.regeneration-indicator__label span{font-size:15px;font-weight:400}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#000;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#192432;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#040609;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#121a24;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #202e3f;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.filter-form{background:#121a24}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#e1b590;background:#e1b590}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#a8b9cf}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#192432}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:color,transform,opacity;font-size:18px;width:18px;height:18px;color:#d9e1e8;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(0deg)}.search__icon .fa-search.active{pointer-events:auto;opacity:.3}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#3e5a7c;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#4a6b94}.search-results__header{color:#3e5a7c;background:#151f2b;border-bottom:1px solid #0b1016;padding:15px 10px;font-size:14px;font-weight:500}.search-results__info{padding:20px;color:#9baec8;text-align:center}.trends__header{color:#3e5a7c;background:#151f2b;border-bottom:1px solid #0b1016;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #202e3f}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#3e5a7c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#9baec8;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#d9e1e8}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(216,160,112,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#dfb088 !important}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(217,225,232,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.emoji-button{display:block;font-size:24px;line-height:24px;margin-left:2px;width:24px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px;margin-top:2px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.doodle-modal{width:unset}.doodle-modal__container{background:#d9e1e8;text-align:center;line-height:0}.doodle-modal__container canvas{border:5px solid #d9e1e8}.doodle-modal__action-bar .filler{flex-grow:1;margin:0;padding:0}.doodle-modal__action-bar .doodle-toolbar{line-height:1;display:flex;flex-direction:column;flex-grow:0;justify-content:space-around}.doodle-modal__action-bar .doodle-toolbar.with-inputs label{display:inline-block;width:70px;text-align:right;margin-right:2px}.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=number],.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=text]{width:40px}.doodle-modal__action-bar .doodle-toolbar.with-inputs span.val{display:inline-block;text-align:left;width:50px}.doodle-modal__action-bar .doodle-palette{padding-right:0 !important;border:1px solid #000;line-height:.2rem;flex-grow:0;background:#fff}.doodle-modal__action-bar .doodle-palette button{appearance:none;width:1rem;height:1rem;margin:0;padding:0;text-align:center;color:#000;text-shadow:0 0 1px #fff;cursor:pointer;box-shadow:inset 0 0 1px rgba(255,255,255,.5);border:1px solid #000;outline-offset:-1px}.doodle-modal__action-bar .doodle-palette button.foreground{outline:1px dashed #fff}.doodle-modal__action-bar .doodle-palette button.background{outline:1px dashed red}.doodle-modal__action-bar .doodle-palette button.foreground.background{outline:1px dashed red;border-color:#fff}.drawer{width:300px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden;padding:10px 5px;flex:none}.drawer:first-child{padding-left:10px}.drawer:last-child{padding-right:10px}@media screen and (max-width: 630px){.auto-columns .drawer{flex:auto}}.single-column .drawer{flex:auto}@media screen and (max-width: 630px){.auto-columns .drawer,.auto-columns .drawer:first-child,.auto-columns .drawer:last-child,.single-column .drawer,.single-column .drawer:first-child,.single-column .drawer:last-child{padding:0}}.wide .drawer{min-width:300px;max-width:400px;flex:1 1 200px}@media screen and (max-width: 630px){:root .auto-columns .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}}:root .single-column .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}.react-swipeable-view-container .drawer{height:100%}.drawer--header{display:flex;flex-direction:row;margin-bottom:10px;flex:none;background:#202e3f;font-size:16px}.drawer--header>*{display:block;box-sizing:border-box;border-bottom:2px solid transparent;padding:15px 5px 13px;height:48px;flex:1 1 auto;color:#9baec8;text-align:center;text-decoration:none;cursor:pointer}.drawer--header a{transition:background 100ms ease-in}.drawer--header a:focus,.drawer--header a:hover{outline:none;background:#17212e;transition:background 200ms ease-out}.search{position:relative;margin-bottom:10px;flex:none}@media screen and (max-width: 415px){.auto-columns .search,.single-column .search{margin-bottom:0}}@media screen and (max-width: 630px){.auto-columns .search{font-size:16px}}.single-column .search{font-size:16px}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#9baec8;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#121a24}.drawer--account{padding:10px;color:#9baec8;display:flex;align-items:center}.drawer--account a{color:inherit;text-decoration:none}.drawer--account .acct{display:block;color:#d9e1e8;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;overflow:hidden}.drawer--results{background:#121a24;overflow-x:hidden;overflow-y:auto}.drawer--results>header{color:#3e5a7c;background:#151f2b;padding:15px;font-weight:500;font-size:16px;cursor:default}.drawer--results>header .fa{display:inline-block;margin-right:5px}.drawer--results>section{margin-bottom:5px}.drawer--results>section h5{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#3e5a7c}.drawer--results>section h5 .fa{display:inline-block;margin-right:5px}.drawer--results>section .account:last-child,.drawer--results>section>div:last-child .status{border-bottom:0}.drawer--results>section>.hashtag{display:block;padding:10px;color:#d9e1e8;text-decoration:none}.drawer--results>section>.hashtag:hover,.drawer--results>section>.hashtag:active,.drawer--results>section>.hashtag:focus{color:#e6ebf0;text-decoration:underline}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#283a50;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%}.drawer__inner.darker{background:#121a24}.drawer__inner__mastodon{background:#283a50 url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:100%;height:100%;pointer-events:none;user-drag:none;user-select:none}.drawer__inner__mastodon>.mastodon{display:block;width:100%;height:100%;border:none;cursor:inherit}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#283a50;font-size:13px;text-align:left}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.video-error-cover{align-items:center;background:#000;color:#fff;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#000;color:#9baec8;border:0;width:100%;height:100%}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{color:#b5c3d6}.status__content>.media-spoiler{margin-top:15px}.media-spoiler.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:500}.media-gallery__gifv__label{display:block;position:absolute;color:#fff;background:rgba(0,0,0,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv.autoplay .media-gallery__gifv__label{display:none}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{height:100%;display:flex;flex-direction:column}.media-gallery__audio span{text-align:center;color:#9baec8;display:flex;height:100%;align-items:center}.media-gallery__audio span p{width:100%}.media-gallery__audio audio{width:100%}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%;height:110px}.media-gallery.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-gallery__item{border:none;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.full-width .media-gallery__item{border-radius:0}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item.letterbox{background:#000}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#d9e1e8;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%;object-fit:contain}.media-gallery__item-thumbnail:not(.letterbox),.media-gallery__item-thumbnail img:not(.letterbox){height:100%;object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#000}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%;display:flex;justify-content:center}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;width:100%;position:relative;z-index:1;object-fit:contain;user-select:none}.media-gallery__item-gifv-thumbnail:not(.letterbox){height:100%;object-fit:cover}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(0,0,0,.5);box-sizing:border-box;border:0;color:#fff;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#d9e1e8}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#d8a070}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#040609;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #192432;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(225,181,144,.5)}.audio-player__wave-placeholder{background-color:#2d415a}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#040609;border-top:1px solid #192432;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.detailed-status .video-player{width:100%;height:100%}.video-player.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.video-player video{max-width:100vw;max-height:80vh;z-index:1;position:relative}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#9baec8;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#b2c1d5}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons-bar .video-player__download__icon .fa,.video-player__buttons-bar .video-player__download__icon:active .fa,.video-player__buttons-bar .video-player__download__icon:hover .fa,.video-player__buttons-bar .video-player__download__icon:focus .fa{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#e1b590}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#e1b590;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#e1b590}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#e1b590;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.sensitive-info{display:flex;flex-direction:row;align-items:center;position:absolute;top:4px;left:4px;z-index:100}.sensitive-marker{margin:0 3px;border-radius:2px;padding:2px 6px;color:rgba(255,255,255,.8);background:rgba(0,0,0,.5);font-size:12px;line-height:18px;text-transform:uppercase;opacity:.9;transition:opacity .1s ease}.media-gallery:hover .sensitive-marker{opacity:1}.list-editor{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#283a50;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#283a50}.list-adder__lists{background:#283a50;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #202e3f}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.emoji-mart{font-size:13px;display:inline-block;color:#121a24}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #c0cdd9}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#d9e1e8}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#3e5a7c;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#37506f}.emoji-mart-anchor-selected{color:#d8a070}.emoji-mart-anchor-selected:hover{color:#d49560}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:0}.emoji-mart-anchor-bar{position:absolute;bottom:-3px;left:0;width:100%;height:3px;background-color:#d59864}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(217,225,232,.3);color:#121a24;border:1px solid #d9e1e8;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(217,225,232,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#9baec8}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.glitch.local-settings{position:relative;display:flex;flex-direction:row;background:#d9e1e8;color:#121a24;border-radius:8px;height:80vh;width:80vw;max-width:740px;max-height:450px;overflow:hidden}.glitch.local-settings label,.glitch.local-settings legend{display:block;font-size:14px}.glitch.local-settings .boolean label,.glitch.local-settings .radio_buttons label{position:relative;padding-left:28px;padding-top:3px}.glitch.local-settings .boolean label input,.glitch.local-settings .radio_buttons label input{position:absolute;left:0;top:0}.glitch.local-settings span.hint{display:block;color:#3e5a7c}.glitch.local-settings h1{font-size:18px;font-weight:500;line-height:24px;margin-bottom:20px}.glitch.local-settings h2{font-size:15px;font-weight:500;line-height:20px;margin-top:20px;margin-bottom:10px}.glitch.local-settings__navigation__item{display:block;padding:15px 20px;color:inherit;background:#f2f5f7;border-bottom:1px #d9e1e8 solid;cursor:pointer;text-decoration:none;outline:none;transition:background .3s}.glitch.local-settings__navigation__item .text-icon-button{color:inherit;transition:unset}.glitch.local-settings__navigation__item:hover{background:#d9e1e8}.glitch.local-settings__navigation__item.active{background:#d8a070;color:#fff}.glitch.local-settings__navigation__item.close,.glitch.local-settings__navigation__item.close:hover{background:#df405a;color:#fff}.glitch.local-settings__navigation{background:#f2f5f7;width:212px;font-size:15px;line-height:20px;overflow-y:auto}.glitch.local-settings__page{display:block;flex:auto;padding:15px 20px 15px 20px;width:360px;overflow-y:auto}.glitch.local-settings__page__item{margin-bottom:2px}.glitch.local-settings__page__item.string,.glitch.local-settings__page__item.radio_buttons{margin-top:10px;margin-bottom:10px}@media screen and (max-width: 630px){.glitch.local-settings__navigation{width:40px;flex-shrink:0}.glitch.local-settings__navigation__item{padding:10px}.glitch.local-settings__navigation__item span:last-of-type{display:none}}.error-boundary{color:#fff;font-size:15px;line-height:20px}.error-boundary h1{font-size:26px;line-height:36px;font-weight:400;margin-bottom:8px}.error-boundary a{color:#fff;text-decoration:underline}.error-boundary ul{list-style:disc;margin-left:0;padding-left:1em}.error-boundary textarea.web_app_crash-stacktrace{width:100%;resize:none;white-space:pre;font-family:monospace,monospace}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.compose-panel .search__icon .fa{top:15px}.compose-panel .drawer--account{flex:0 1 48px}.compose-panel .flex-spacer{background:transparent}.compose-panel .composer{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #192432;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px;min-height:50px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{padding-top:15px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#d59864;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#e0b38c}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.search{margin-bottom:10px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.poll{margin-top:16px;font-size:14px}.poll ul,.e-content .poll ul{margin:0;list-style:none}.poll li{margin-bottom:10px;position:relative}.poll__chart{position:absolute;top:0;left:0;height:100%;display:inline-block;border-radius:4px;background:#6d89af}.poll__chart.leading{background:#d8a070}.poll__text{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__text input[type=radio],.poll__text input[type=checkbox]{display:none}.poll__text .autossugest-input{flex:1 1 auto}.poll__text input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#121a24;display:block;outline:0;font-family:inherit;background:#fff;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px}.poll__text input[type=text]:focus{border-color:#d8a070}.poll__text.selectable{cursor:pointer}.poll__text.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-width:4px;background:none}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:52px;font-weight:700;padding:0 10px;padding-left:8px;text-align:right;margin-top:auto;margin-bottom:auto;flex:0 0 52px}.poll__vote__mark{float:left;line-height:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#3e5a7c}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#3e5a7c;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(62,90,124,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #ebebeb}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #ebebeb;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{width:100%;flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#d8a070}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#3e5a7c;border-color:#3e5a7c;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__text{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#121a24;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#dbdbdb}.muted .poll{color:#3e5a7c}.muted .poll__chart{background:rgba(109,137,175,.2)}.muted .poll__chart.leading{background:rgba(216,160,112,.2)}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:sans-serif,sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#9baec8}.rich-formatting a{color:#d8a070;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#9baec8}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#d9e1e8}.rich-formatting em{font-style:italic;color:#d9e1e8}.rich-formatting code{font-size:.85em;background:#040609;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:sans-serif,sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#d9e1e8}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #192432;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #192432;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#9baec8}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#3e5a7c}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#0b1016;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:sans-serif,sans-serif;font-size:16px;line-height:28px;color:#fff;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#d9e1e8}.information-board__section strong{font-family:sans-serif,sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#040609;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#9baec8;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #192432;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#7a93b6}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;width:80px;height:80px;background-size:80px 80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px;border-radius:8%;background-position:50%;background-clip:padding-box}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#fff;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#9baec8}.landing-page p,.landing-page li{font-family:sans-serif,sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#9baec8}.landing-page p a,.landing-page li a{color:#d8a070;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.landing-page h1{font-family:sans-serif,sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h1 small{font-family:sans-serif,sans-serif;display:block;font-size:18px;font-weight:400;color:#bcc9da}.landing-page h2{font-family:sans-serif,sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h3{font-family:sans-serif,sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h4{font-family:sans-serif,sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h5{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h6{font-family:sans-serif,sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(62,90,124,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#121a24;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#bcc9da}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px;width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#121a24;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#d9e1e8}.landing-page__short-description h1{font-weight:500;color:#fff;margin-bottom:0}.landing-page__short-description h1 small{color:#9baec8}.landing-page__short-description h1 small span{color:#d9e1e8}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#fff;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#121a24;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:sans-serif,sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#9baec8}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#9baec8}.landing .simple_form p.lead{color:#9baec8;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #202e3f}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#3e5a7c}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #121a24;text-align:left;background:#0b1016}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #121a24;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#121a24}.table a{color:#d8a070;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#121a24;border-top:1px solid #040609;border-bottom:1px solid #040609}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #040609}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #040609}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:monospace,monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#9baec8;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#fff}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #040609;background:#121a24;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #040609;border-top:0;background:#121a24}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #040609;border-top:0;background:#0b1016}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #040609}}.batch-table__row:hover{background:#0f151d}.batch-table__row:nth-child(even){background:#121a24}.batch-table__row:nth-child(even):hover{background:#151f2b}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#9baec8;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #040609;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #040609}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#121a24;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#202e3f;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#fff;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#9baec8;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#26374d}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#9baec8;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#fff;background-color:#0a0e13;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#0f151d;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#0b1016;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#fff;background-color:#d8a070;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#ddad84}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #202e3f;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#d9e1e8;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#d9e1e8;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#9baec8;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #202e3f}.admin-wrapper .content h6{font-size:16px;color:#d9e1e8;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#fff;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#fff;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:none}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#d9e1e8;margin-bottom:20px}.admin-wrapper .content>p strong{color:#fff;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(62,90,124,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #192432;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#d8a070}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#9baec8}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#d8a070}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#3e5a7c;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset a{display:inline-block;color:#9baec8;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #121a24}.filters .filter-subset a:hover{color:#fff;border-bottom:2px solid #1b2635}.filters .filter-subset a.selected{color:#d8a070;border-bottom:2px solid #d8a070}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#d9e1e8}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#d8a070;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{margin-bottom:20px;line-height:20px}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;padding:10px;background:#121a24;color:#9baec8;border-radius:4px 4px 0 0;font-size:14px;position:relative}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#3e5a7c}.log-entry__extras{background:#1c2938;border-radius:0 0 4px 4px;padding:10px;color:#9baec8;font-family:monospace,monospace;font-size:12px;word-wrap:break-word;min-height:20px}.log-entry__icon{font-size:28px;margin-right:10px;color:#3e5a7c}.log-entry__icon__overlay{position:absolute;top:10px;right:10px;width:10px;height:10px;border-radius:50%}.log-entry__icon__overlay.positive{background:#79bd9a}.log-entry__icon__overlay.negative{background:#e87487}.log-entry__icon__overlay.neutral{background:#d8a070}.log-entry a,.log-entry .username,.log-entry .target{color:#d9e1e8;text-decoration:none;font-weight:500}.log-entry .diff-old{color:#e87487}.log-entry .diff-neutral{color:#d9e1e8}.log-entry .diff-new{color:#79bd9a}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#d9e1e8}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#e87487}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #d8a070}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#e87487}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#9baec8}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#3e5a7c}.report-card{background:#121a24;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#9baec8;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#b5c3d6}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #0b1016}.report-card__summary__item:hover{background:#151f2b}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#9baec8}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#3e5a7c;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#9baec8}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#202e3f;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#e1b590}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#fff}.center-text{text-align:center}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff)}.hicolor-privacy-icons .status__visibility-icon.fa-globe,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-globe{color:#1976d2}.hicolor-privacy-icons .status__visibility-icon.fa-unlock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-unlock{color:#388e3c}.hicolor-privacy-icons .status__visibility-icon.fa-lock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-lock{color:#ffa000}.hicolor-privacy-icons .status__visibility-icon.fa-envelope,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-envelope{color:#d32f2f}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .composer--publisher{text-align:left}body.rtl .boost-modal__status-time,body.rtl .favourite-modal__status-time{float:left}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .setting-meta__label{float:left}body.rtl .status__avatar{margin-left:10px;margin-right:0;left:auto;right:10px}body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:58px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left;text-align:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(1, 1, 2, 0), #010102)}body.rtl .simple_form select{background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#192432;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#202e3f}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#fff;font-family:sans-serif,sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#9baec8;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#d9e1e8;font-weight:500;text-decoration:none}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a; // Padua\n$error-red: #df405a; // Cerise\n$warning-red: #ff5050; // Sunset Orange\n$gold-star: #ca8f04; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: sans-serif !default;\n$font-display: sans-serif !default;\n$font-monospace: monospace !default;\n\n// Avatar border size (8% default, 100% for rounded avatars)\n$ui-avatar-border-size: 8%;\n\n// More variables\n$dismiss-overlay-width: 4rem;\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n @return '%23' + unquote($color)\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n @include avatar-size(40px);\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1/3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1/3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n @include avatar-size(120px);\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n @include avatar-radius();\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n","@mixin avatar-radius() {\n border-radius: $ui-avatar-border-size;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size:48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin single-column($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .single-column #{$parent} {\n @content;\n }\n}\n\n@mixin limited-single-column($media, $parent: '&') {\n .auto-columns #{$parent}, .single-column #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n}\n\n@mixin multi-columns($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .multi-columns #{$parent} {\n @content;\n }\n}\n\n@mixin fullwidth-gallery {\n &.full-width {\n margin-left: -14px;\n margin-right: -14px;\n width: inherit;\n max-width: none;\n height: 250px;\n border-radius: 0px;\n }\n}\n\n@mixin search-input() {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: none;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout() {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n padding: 8px 0;\n padding-bottom: 2px;\n margin: initial;\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n position: absolute;\n margin: initial;\n float: initial;\n width: auto;\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n\n// Styling from upstream's WebUI, as public pages use the same layout\n.embed,\n.public-layout {\n .status {\n .status__info {\n font-size: 15px;\n display: initial;\n }\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding: 6px 0;\n padding-right: 25px;\n margin: initial;\n\n .display-name strong {\n display: inline;\n }\n }\n\n .status__avatar {\n height: 48px;\n position: absolute;\n width: 48px;\n margin: initial;\n }\n }\n}\n\n.rtl {\n .embed,\n .public-layout {\n .status {\n padding-left: 10px;\n padding-right: 68px;\n\n .status__info .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .status__relative-time {\n float: left;\n }\n }\n }\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: darken($ui-highlight-color, 3%);\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n transition-property: background-color;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 7%);\n transition: all 200ms ease-out;\n transition-property: background-color;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n color: $darker-text-color;\n text-transform: none;\n background: transparent;\n padding: 3px 15px;\n border-radius: 4px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n transform-origin: 50% 0;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: 0;\n position: absolute;\n\n .fa.star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n a {\n color: inherit;\n text-decoration: inherit;\n }\n\n strong {\n height: 18px;\n font-size: 16px;\n font-weight: 500;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n span {\n display: block;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n > a:hover {\n strong {\n text-decoration: underline;\n }\n }\n\n &.inline {\n padding: 0;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n strong {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n\n span {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n }\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n ul {\n list-style: none;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.static-content {\n padding: 10px;\n padding-top: 20px;\n color: $dark-text-color;\n\n h1 {\n font-size: 16px;\n font-weight: 500;\n margin-bottom: 40px;\n text-align: center;\n }\n\n p {\n font-size: 13px;\n margin-bottom: 20px;\n }\n}\n\n.column,\n.drawer {\n flex: 1 1 100%;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @include multi-columns('screen and (min-width: 631px)') {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $ui-highlight-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n\n span.icon {\n margin-left: 0;\n display: inline;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.getting-started__wrapper,\n.getting_started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.getting-started__wrapper {\n position: relative;\n overflow-y: auto;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n background: $ui-base-color;\n flex: 1 0 auto;\n\n p {\n color: $secondary-text-color;\n }\n\n a {\n color: $dark-text-color;\n }\n\n &__panel {\n height: min-content;\n }\n\n &__panel,\n &__footer {\n padding: 10px;\n padding-top: 20px;\n flex: 0 1 auto;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n color: $darker-text-color;\n background: transparent;\n border: none;\n border-bottom: 2px solid $ui-primary-color;\n box-sizing: border-box;\n display: block;\n font-family: inherit;\n margin-bottom: 10px;\n padding: 7px 0;\n width: 100%;\n\n &:focus,\n &:active {\n color: $primary-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n font-size: 16px;\n }\n\n &.light {\n color: $inverted-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 27%);\n\n &:focus,\n &:active {\n color: $inverted-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.reduce-motion button.icon-button.disabled i.fa-retweet {\n color: darken($action-button-color, 13%);\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.missing-indicator {\n padding-top: 20px + 48px;\n}\n\n.scrollable > div > :first-child .notification__dismiss-overlay > .wrappy {\n border-top: 1px solid $ui-base-color;\n}\n\n.notification__dismiss-overlay {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: -1px;\n padding-left: 15px; // space for the box shadow to be visible\n\n z-index: 999;\n align-items: center;\n justify-content: flex-end;\n cursor: pointer;\n\n display: flex;\n\n .wrappy {\n width: $dismiss-overlay-width;\n align-self: stretch;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: lighten($ui-base-color, 8%);\n border-left: 1px solid lighten($ui-base-color, 20%);\n box-shadow: 0 0 5px black;\n border-bottom: 1px solid $ui-base-color;\n }\n\n .ckbox {\n border: 2px solid $ui-primary-color;\n border-radius: 2px;\n width: 30px;\n height: 30px;\n font-size: 20px;\n color: $darker-text-color;\n text-shadow: 0 0 5px black;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n &:focus {\n outline: 0 !important;\n\n .ckbox {\n box-shadow: 0 0 1px 1px $ui-highlight-color;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: flex;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n align-items: center;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label,\n.setting-radio__label,\n.setting-meta__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.setting-radio {\n display: block;\n line-height: 18px;\n}\n\n.setting-radio__label {\n margin-bottom: 0;\n}\n\n.column-settings__row legend {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-top: 10px;\n}\n\n.setting-radio__input {\n vertical-align: middle;\n}\n\n.setting-meta__label {\n float: right;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n transform-origin: center center;\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.pulse-loading {\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.loading-bar {\n background-color: $ui-highlight-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.icon-badge-wrapper {\n position: relative;\n}\n\n.icon-badge {\n position: absolute;\n display: block;\n right: -.25em;\n top: -.25em;\n background-color: $ui-highlight-color;\n border-radius: 50%;\n font-size: 75%;\n width: 1em;\n height: 1em;\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n .status__content {\n margin: 0;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.ui .flash-message {\n margin-top: 10px;\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 0;\n min-width: 75%;\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@import 'boost';\n@import 'accounts';\n@import 'domains';\n@import 'status';\n@import 'modal';\n@import 'composer';\n@import 'columns';\n@import 'regeneration_indicator';\n@import 'directory';\n@import 'search';\n@import 'emoji';\n@import 'doodle';\n@import 'drawer';\n@import 'media';\n@import 'sensitive';\n@import 'lists';\n@import 'emoji_picker';\n@import 'local_settings';\n@import 'error_boundary';\n@import 'single_column';\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant\nbutton.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant for use with DMs\n.status-direct button.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n",".account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n color: inherit;\n text-decoration: none;\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n\n &.small {\n border: none;\n padding: 0;\n\n & > .account__avatar-wrapper { margin: 0 8px 0 0 }\n\n & > .display-name {\n height: 24px;\n line-height: 24px;\n }\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius();\n position: relative;\n cursor: pointer;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n overflow: hidden;\n position: relative;\n cursor: default;\n\n & div {\n @include avatar-radius;\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\n.account__avatar-overlay {\n position: relative;\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius();\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius();\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__header__wrapper {\n flex: 0 0 auto;\n background: lighten($ui-base-color, 4%);\n}\n\n.account__disclaimer {\n padding: 10px;\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-left: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &:first-child {\n border-left: 0;\n }\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n abbr {\n color: $highlight-text-color;\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.notification__message {\n margin-left: 42px;\n padding: 8px 0 0 26px;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input();\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout();\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n",".domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n","@keyframes spring-flip-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-242.4deg);\n }\n\n 60% {\n transform: rotate(-158.35deg);\n }\n\n 90% {\n transform: rotate(-187.5deg);\n }\n\n 100% {\n transform: rotate(-180deg);\n }\n}\n\n@keyframes spring-flip-out {\n 0% {\n transform: rotate(-180deg);\n }\n\n 30% {\n transform: rotate(62.4deg);\n }\n\n 60% {\n transform: rotate(-21.635deg);\n }\n\n 90% {\n transform: rotate(7.5deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content {\n position: relative;\n margin: 10px 0;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n padding-top: 5px;\n\n &:focus {\n outline: 0;\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .status__content__text,\n .e-content {\n overflow: hidden;\n\n & > ul,\n & > ol {\n margin-bottom: 20px;\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 1.2em;\n }\n\n h2 {\n font-size: 1.1em;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $darker-text-color;\n color: $darker-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n sup {\n font-size: smaller;\n vertical-align: super;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n .status__content__spoiler {\n display: none;\n\n &.status__content__spoiler--visible {\n display: block;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n\n .link-origin-tag {\n color: $gold-star;\n font-size: 0.8em;\n }\n }\n\n .status__content__spoiler-link {\n background: lighten($ui-base-color, 30%);\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: lighten($ui-base-color, 30%);\n border: none;\n color: $inverted-text-color;\n font-weight: 500;\n font-size: 11px;\n padding: 0 5px;\n text-transform: uppercase;\n line-height: inherit;\n cursor: pointer;\n vertical-align: bottom;\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n\n .status__content__spoiler-icon {\n display: inline-block;\n margin: 0 0 0 5px;\n border-left: 1px solid currentColor;\n padding: 0 0 0 4px;\n font-size: 16px;\n vertical-align: -2px;\n }\n}\n\n.notif-cleaning {\n .status,\n .notification-follow,\n .notification-follow-request {\n padding-right: ($dismiss-overlay-width + 0.5rem);\n }\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.notification-follow,\n.notification-follow-request {\n position: relative;\n\n // same like Status\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .account {\n border-bottom: 0 none;\n }\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n &.status.status-direct:not(.read) {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 10px 14px;\n position: relative;\n height: auto;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 28px; // 12px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $lighter-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n strong {\n color: $inverted-text-color;\n }\n\n span {\n color: $lighter-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n\n &.collapsed {\n background-position: center;\n background-size: cover;\n user-select: none;\n\n &.has-background::before {\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-image: linear-gradient(to bottom, rgba($base-shadow-color, .75), rgba($base-shadow-color, .65) 24px, rgba($base-shadow-color, .8));\n pointer-events: none;\n content: \"\";\n }\n\n .display-name:hover .display-name__html {\n text-decoration: none;\n }\n\n .status__content {\n height: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 0;\n\n &:after {\n content: \"\";\n position: absolute;\n top: 0; bottom: 0;\n left: 0; right: 0;\n background: linear-gradient(rgba($ui-base-color, 0), rgba($ui-base-color, 1));\n pointer-events: none;\n }\n \n a:hover {\n text-decoration: none;\n }\n }\n &:focus > .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 4%), 0), rgba(lighten($ui-base-color, 4%), 1));\n }\n &.status-direct:not(.read)> .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 8%), 0), rgba(lighten($ui-base-color, 8%), 1));\n }\n\n .notification__message {\n margin-bottom: 0;\n }\n\n .status__info .notification__message > span {\n white-space: nowrap;\n }\n }\n\n .notification__message {\n margin: -10px 0px 10px 0;\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time {\n display: inline-block;\n flex-grow: 1;\n color: $dark-text-color;\n font-size: 14px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status__display-name {\n color: $dark-text-color;\n overflow: hidden;\n}\n\n.status__info__account .status__display-name {\n display: block;\n max-width: 100%;\n}\n\n.status__info {\n display: flex;\n justify-content: space-between;\n font-size: 15px;\n\n > span {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .notification__message > span {\n word-wrap: break-word;\n }\n}\n\n.status__info__icons {\n display: flex;\n align-items: center;\n height: 1em;\n color: $action-button-color;\n\n .status__media-icon,\n .status__visibility-icon,\n .status__reply-icon {\n padding-left: 2px;\n padding-right: 2px;\n }\n\n .status__collapse-button.active > .fa-angle-double-up {\n transform: rotate(-180deg);\n }\n}\n\n.no-reduce-motion .status__collapse-button {\n &.activate {\n & > .fa-angle-double-up {\n animation: spring-flip-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-angle-double-up {\n animation: spring-flip-out 1s linear;\n }\n }\n}\n\n.status__info__account {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-top: -10px;\n margin-bottom: 10px;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\na.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\n.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n flex: none;\n margin: 0 10px 0 0;\n height: 48px;\n width: 48px;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a,\n .status__content__text {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-color, 29%);\n text-decoration: none;\n }\n }\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n\n a .fa, a:hover .fa {\n color: inherit;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n.status__wrapper--filtered__button {\n display: inline;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n font-size: inherit;\n line-height: inherit;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n",".modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.onboarding-modal__pager {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 470px;\n\n .react-swipeable-view-container > div {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n user-select: text;\n }\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n@media screen and (max-width: 550px) {\n .onboarding-modal {\n width: 100%;\n height: 100%;\n border-radius: 0;\n }\n\n .onboarding-modal__pager {\n width: 100%;\n height: auto;\n max-width: none;\n max-height: none;\n flex: 1 1 auto;\n }\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.onboarding-modal__dots {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.onboarding-modal__dot {\n width: 14px;\n height: 14px;\n border-radius: 14px;\n background: darken($ui-secondary-color, 16%);\n margin: 0 3px;\n cursor: pointer;\n\n &:hover {\n background: darken($ui-secondary-color, 18%);\n }\n\n &.active {\n cursor: default;\n background: darken($ui-secondary-color, 24%);\n }\n}\n\n.onboarding-modal__page__wrapper {\n pointer-events: none;\n padding: 25px;\n padding-bottom: 0;\n\n &.onboarding-modal__page__wrapper--active {\n pointer-events: auto;\n }\n}\n\n.onboarding-modal__page {\n cursor: default;\n line-height: 21px;\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 20px;\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 4%);\n }\n }\n\n .navigation-bar a {\n color: inherit;\n }\n\n p {\n font-size: 16px;\n color: $lighter-text-color;\n margin-top: 10px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n background: $ui-base-color;\n color: $secondary-text-color;\n border-radius: 4px;\n font-size: 14px;\n padding: 3px 6px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.onboarding-modal__page__wrapper-0 {\n height: 100%;\n padding: 0;\n}\n\n.onboarding-modal__page-one {\n &__lead {\n padding: 65px;\n padding-top: 45px;\n padding-bottom: 0;\n margin-bottom: 10px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n margin-bottom: 8px;\n }\n\n p {\n margin-bottom: 0;\n }\n }\n\n &__extra {\n padding-right: 65px;\n padding-left: 185px;\n text-align: center;\n }\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboarding-modal__page-two,\n.onboarding-modal__page-three,\n.onboarding-modal__page-four,\n.onboarding-modal__page-five {\n p {\n text-align: left;\n }\n\n .figure {\n background: darken($ui-base-color, 8%);\n color: $secondary-text-color;\n margin-bottom: 20px;\n border-radius: 4px;\n padding: 10px;\n text-align: center;\n font-size: 14px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);\n\n .onboarding-modal__image {\n border-radius: 4px;\n margin-bottom: 10px;\n }\n\n &.non-interactive {\n pointer-events: none;\n text-align: left;\n }\n }\n}\n\n.onboarding-modal__page-four__columns {\n .row {\n display: flex;\n margin-bottom: 20px;\n\n & > div {\n flex: 1 1 0;\n margin: 0 10px;\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n\n p {\n text-align: center;\n }\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .column-header {\n color: $primary-text-color;\n }\n}\n\n@media screen and (max-width: 320px) and (max-height: 600px) {\n .onboarding-modal__page p {\n font-size: 14px;\n line-height: 20px;\n }\n\n .onboarding-modal__page-two .figure,\n .onboarding-modal__page-three .figure,\n .onboarding-modal__page-four .figure,\n .onboarding-modal__page-five .figure {\n font-size: 12px;\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .row {\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .column-header {\n padding: 5px;\n font-size: 12px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.favourite-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__display-name {\n display: flex;\n }\n\n .status__avatar {\n height: 48px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container,\n.favourite-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.favourite-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header,\n.favourite-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time,\n.favourite-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n strong {\n display: block;\n font-weight: 500;\n }\n\n max-height: 80vh;\n max-width: 80vw;\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n & > .react-toggle,\n & > .icon,\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__do_not_ask_again {\n padding-left: 20px;\n padding-right: 20px;\n padding-bottom: 10px;\n\n font-size: 14px;\n\n label, input {\n vertical-align: middle;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: 'mastodon-font-monospace', monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.filtered-status-info {\n text-align: start;\n\n .spoiler__text {\n margin-top: 20px;\n }\n\n .account {\n border-bottom: 0;\n }\n\n .account__display-name strong {\n color: $inverted-text-color;\n }\n\n .status__content__spoiler {\n display: none;\n\n &--visible {\n display: flex;\n }\n }\n\n ul {\n padding: 10px;\n margin-left: 12px;\n list-style: disc inside;\n }\n\n .filtered-status-edit-link {\n color: $action-button-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline\n }\n }\n}\n",".composer {\n padding: 10px;\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .composer--spoiler {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.composer--spoiler {\n height: 0;\n transform-origin: bottom;\n opacity: 0.0;\n\n &.composer--spoiler--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1.0;\n }\n\n input {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px;\n padding: 10px;\n width: 100%;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n }\n}\n\n.composer--warning {\n color: $inverted-text-color;\n margin-bottom: 15px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:active,\n &:focus,\n &:hover { text-decoration: none }\n }\n}\n\n.compose-form__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-left: 5px;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n}\n\n.composer--reply {\n margin: 0 0 10px;\n border-radius: 4px;\n padding: 10px;\n background: $ui-primary-color;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n\n & > header {\n margin-bottom: 5px;\n overflow: hidden;\n\n & > .account.small { color: $inverted-text-color; }\n\n & > .cancel {\n float: right;\n line-height: 24px;\n }\n }\n\n & > .content {\n position: relative;\n margin: 10px 0;\n padding: 0 12px;\n font-size: 14px;\n line-height: 20px;\n color: $inverted-text-color;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n white-space: pre-wrap;\n padding-top: 5px;\n overflow: hidden;\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 18px;\n }\n\n h2 {\n font-size: 16px;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $inverted-text-color;\n color: $inverted-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n\n a {\n color: $lighter-text-color;\n text-decoration: none;\n\n &:hover { text-decoration: underline }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span { text-decoration: underline }\n }\n }\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -5px 0 0;\n }\n}\n\n.emoji-picker-dropdown {\n position: absolute;\n right: 5px;\n top: 5px;\n\n ::-webkit-scrollbar-track:hover,\n ::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.compose-form__autosuggest-wrapper,\n.autosuggest-input {\n position: relative;\n width: 100%;\n\n label {\n .autosuggest-textarea__textarea {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px 4px 0 0;\n padding: 10px 32px 0 10px;\n width: 100%;\n min-height: 100px;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: none;\n scrollbar-color: initial;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n &:disabled { background: $ui-secondary-color }\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n }\n}\n\n.composer--textarea--icons {\n display: block;\n position: absolute;\n top: 29px;\n right: 5px;\n bottom: 5px;\n overflow: hidden;\n\n & > .textarea_icon {\n display: block;\n margin: 2px 0 0 2px;\n width: 24px;\n height: 24px;\n color: $lighter-text-color;\n font-size: 18px;\n line-height: 24px;\n text-align: center;\n opacity: .8;\n }\n}\n\n.autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n}\n\n.autosuggest-textarea__suggestions {\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: 100%;\n border-radius: 0 0 4px 4px;\n padding: 6px;\n width: 100%;\n color: $inverted-text-color;\n background: $ui-secondary-color;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n font-size: 14px;\n z-index: 99;\n display: none;\n}\n\n.autosuggest-textarea__suggestions--visible {\n display: block;\n}\n\n.autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected { background: darken($ui-secondary-color, 10%) }\n\n > .account,\n > .emoji,\n > .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n & > .account.small {\n .display-name {\n & > span { color: $lighter-text-color }\n }\n }\n}\n\n.composer--upload_form {\n overflow: hidden;\n\n & > .content {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n font-family: inherit;\n padding: 5px;\n overflow: hidden;\n }\n}\n\n.composer--upload_form--item {\n flex: 1 1 0;\n margin: 5px;\n min-width: 40%;\n\n & > div {\n position: relative;\n border-radius: 4px;\n height: 140px;\n width: 100%;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n overflow: hidden;\n\n textarea {\n display: block;\n position: absolute;\n box-sizing: border-box;\n bottom: 0;\n left: 0;\n margin: 0;\n border: 0;\n padding: 10px;\n width: 100%;\n color: $secondary-text-color;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n font-size: 14px;\n font-family: inherit;\n font-weight: 500;\n opacity: 0;\n z-index: 2;\n transition: opacity .1s ease;\n\n &:focus { color: $white }\n\n &::placeholder {\n opacity: 0.54;\n color: $secondary-text-color;\n }\n }\n\n & > .close { mix-blend-mode: difference }\n }\n\n &.active {\n & > div {\n textarea { opacity: 1 }\n }\n }\n}\n\n.composer--upload_form--actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $ui-secondary-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($ui-secondary-color, 4%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n}\n\n.composer--upload_form--progress {\n display: flex;\n padding: 10px;\n color: $darker-text-color;\n overflow: hidden;\n\n & > .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n & > .message {\n flex: 1 1 auto;\n\n & > span {\n display: block;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n }\n\n & > .backdrop {\n position: relative;\n margin-top: 5px;\n border-radius: 6px;\n width: 100%;\n height: 6px;\n background: $ui-base-lighter-color;\n\n & > .tracker {\n position: absolute;\n top: 0;\n left: 0;\n height: 6px;\n border-radius: 6px;\n background: $ui-highlight-color;\n }\n }\n }\n}\n\n.compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n}\n\n.composer--options-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n height: 27px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n}\n\n.composer--options {\n display: flex;\n flex: 0 0 auto;\n\n & > * {\n display: inline-block;\n box-sizing: content-box;\n padding: 0 3px;\n height: 27px;\n line-height: 27px;\n vertical-align: bottom;\n }\n\n & > hr {\n display: inline-block;\n margin: 0 3px;\n border-width: 0 0 0 1px;\n border-style: none none none solid;\n border-color: transparent transparent transparent darken($simple-background-color, 24%);\n padding: 0;\n width: 0;\n height: 27px;\n background: transparent;\n }\n}\n\n.compose--counter-wrapper {\n align-self: center;\n margin-right: 4px;\n}\n\n.composer--options--dropdown {\n &.open {\n & > .value {\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n color: $primary-text-color;\n background: $ui-highlight-color;\n transition: none;\n }\n &.top {\n & > .value {\n border-radius: 0 0 4px 4px;\n box-shadow: 0 4px 4px rgba($base-shadow-color, 0.1);\n }\n }\n }\n}\n\n.composer--options--dropdown--content {\n position: absolute;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n background: $simple-background-color;\n overflow: hidden;\n transform-origin: 50% 0;\n}\n\n.composer--options--dropdown--content--item {\n display: flex;\n align-items: center;\n padding: 10px;\n color: $inverted-text-color;\n cursor: pointer;\n\n & > .content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n &:not(:first-child) { margin-left: 10px }\n\n strong {\n display: block;\n color: $inverted-text-color;\n font-weight: 500;\n }\n }\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n\n & > .content {\n color: $primary-text-color;\n\n strong { color: $primary-text-color }\n }\n }\n\n &.active:hover { background: lighten($ui-highlight-color, 4%) }\n}\n\n.composer--publisher {\n padding-top: 10px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n justify-content: flex-end;\n flex: 0 0 auto;\n\n & > .primary {\n display: inline-block;\n margin: 0;\n padding: 0 10px;\n text-align: center;\n }\n\n & > .side_arm {\n display: inline-block;\n margin: 0 2px;\n padding: 0;\n width: 36px;\n text-align: center;\n }\n\n &.over {\n & > .count { color: $warning-red }\n }\n}\n",".column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.column {\n overflow: hidden;\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n\n &.active {\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n top: 35px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n\n & > button {\n margin: 0;\n border: none;\n padding: 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n box-shadow: 0 1px 0 rgba($ui-highlight-color, 0.3);\n\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($ui-highlight-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n\n .wide .columns-area:not(.columns-area--mobile) & {\n flex: auto;\n min-width: 330px;\n max-width: 400px;\n }\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n margin-left: 0;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n\n // glitch - added focus ring for keyboard navigation\n &:focus {\n text-shadow: 0 0 4px darken($ui-highlight-color, 5%);\n }\n}\n\n.column-header__notif-cleaning-buttons {\n display: flex;\n align-items: stretch;\n justify-content: space-around;\n\n button {\n @extend .column-header__button;\n background: transparent;\n text-align: center;\n padding: 10px 0;\n white-space: pre-wrap;\n }\n\n b {\n font-weight: bold;\n }\n}\n\n// The notifs drawer with no padding to have more space for the buttons\n.column-header__collapsible-inner.nopad-drawer {\n padding: 0;\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n\n // notif cleaning drawer\n &.ncd {\n transition: none;\n &.collapsed {\n max-height: 0;\n opacity: 0.7;\n }\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.column-header__title {\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.empty-column-indicator,\n.error-column {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.error-column {\n flex-direction: column;\n}\n\n// more fixes for the navbar-under mode\n@mixin fix-margins-for-navbar-under {\n .tabs-bar {\n margin-top: 0 !important;\n margin-bottom: -6px !important;\n }\n}\n\n.single-column.navbar-under {\n @include fix-margins-for-navbar-under;\n}\n\n.auto-columns.navbar-under {\n @media screen and (max-width: $no-gap-breakpoint) {\n @include fix-margins-for-navbar-under;\n }\n}\n\n.auto-columns.navbar-under .react-swipeable-view-container .columns-area,\n.single-column.navbar-under .react-swipeable-view-container .columns-area {\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 100% !important;\n }\n}\n\n.column-inline-form {\n padding: 7px 15px;\n padding-right: 5px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n margin-bottom: 6px;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 5px;\n }\n}\n",".regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n",".directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n",".search {\n position: relative;\n}\n\n.search__input {\n @include search-input();\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: color, transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(0deg);\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n padding: 15px 10px;\n font-size: 14px;\n font-weight: 500;\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n",null,".emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.emoji-button {\n display: block;\n font-size: 24px;\n line-height: 24px;\n margin-left: 2px;\n width: 24px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n margin-top: 2px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n","$doodleBg: #d9e1e8;\n.doodle-modal {\n @extend .boost-modal;\n width: unset;\n}\n\n.doodle-modal__container {\n background: $doodleBg;\n text-align: center;\n line-height: 0; // remove weird gap under canvas\n canvas {\n border: 5px solid $doodleBg;\n }\n}\n\n.doodle-modal__action-bar {\n @extend .boost-modal__action-bar;\n\n .filler {\n flex-grow: 1;\n margin: 0;\n padding: 0;\n }\n\n .doodle-toolbar {\n line-height: 1;\n\n display: flex;\n flex-direction: column;\n flex-grow: 0;\n justify-content: space-around;\n\n &.with-inputs {\n label {\n display: inline-block;\n width: 70px;\n text-align: right;\n margin-right: 2px;\n }\n\n input[type=\"number\"],input[type=\"text\"] {\n width: 40px;\n }\n span.val {\n display: inline-block;\n text-align: left;\n width: 50px;\n }\n }\n }\n\n .doodle-palette {\n padding-right: 0 !important;\n border: 1px solid black;\n line-height: .2rem;\n flex-grow: 0;\n background: white;\n\n button {\n appearance: none;\n width: 1rem;\n height: 1rem;\n margin: 0; padding: 0;\n text-align: center;\n color: black;\n text-shadow: 0 0 1px white;\n cursor: pointer;\n box-shadow: inset 0 0 1px rgba(white, .5);\n border: 1px solid black;\n outline-offset:-1px;\n\n &.foreground {\n outline: 1px dashed white;\n }\n\n &.background {\n outline: 1px dashed red;\n }\n\n &.foreground.background {\n outline: 1px dashed red;\n border-color: white;\n }\n }\n }\n}\n",".drawer {\n width: 300px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n padding: 10px 5px;\n flex: none;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n\n @include single-column('screen and (max-width: 630px)') { flex: auto }\n\n @include limited-single-column('screen and (max-width: 630px)') {\n &, &:first-child, &:last-child { padding: 0 }\n }\n\n .wide & {\n min-width: 300px;\n max-width: 400px;\n flex: 1 1 200px;\n }\n\n @include single-column('screen and (max-width: 630px)') {\n :root & { // Overrides `.wide` for single-column view\n flex: auto;\n width: 100%;\n min-width: 0;\n max-width: none;\n padding: 0;\n }\n }\n\n .react-swipeable-view-container & { height: 100% }\n}\n\n.drawer--header {\n display: flex;\n flex-direction: row;\n margin-bottom: 10px;\n flex: none;\n background: lighten($ui-base-color, 8%);\n font-size: 16px;\n\n & > * {\n display: block;\n box-sizing: border-box;\n border-bottom: 2px solid transparent;\n padding: 15px 5px 13px;\n height: 48px;\n flex: 1 1 auto;\n color: $darker-text-color;\n text-align: center;\n text-decoration: none;\n cursor: pointer;\n }\n\n a {\n transition: background 100ms ease-in;\n\n &:focus,\n &:hover {\n outline: none;\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.search {\n position: relative;\n margin-bottom: 10px;\n flex: none;\n\n @include limited-single-column('screen and (max-width: #{$no-gap-breakpoint})') { margin-bottom: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n}\n\n.search-popout {\n @include search-popout();\n}\n\n.drawer--account {\n padding: 10px;\n color: $darker-text-color;\n display: flex;\n align-items: center;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n .acct {\n display: block;\n color: $secondary-text-color;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n overflow: hidden;\n}\n\n.drawer--results {\n background: $ui-base-color;\n overflow-x: hidden;\n overflow-y: auto;\n\n & > header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n & > section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n\n & > .hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n }\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 100%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n > .mastodon {\n display: block;\n width: 100%;\n height: 100%;\n border: none;\n cursor: inherit;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n",".video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n width: 100%;\n height: 100%;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 8%);\n }\n\n .status__content > & {\n margin-top: 15px; // Add margin when used bare for NSFW video player\n }\n @include fullwidth-gallery;\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 500;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &.autoplay {\n .media-gallery__gifv__label {\n display: none;\n }\n }\n\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n span {\n text-align: center;\n color: $darker-text-color;\n display: flex;\n height: 100%;\n align-items: center;\n\n p {\n width: 100%;\n }\n }\n\n audio {\n width: 100%;\n }\n}\n\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n height: 110px;\n\n @include fullwidth-gallery;\n}\n\n.media-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n .full-width & {\n border-radius: 0;\n }\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n\n &.letterbox {\n background: $base-shadow-color;\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n object-fit: contain;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n width: 100%;\n position: relative;\n z-index: 1;\n object-fit: contain;\n user-select: none;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $white;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $ui-highlight-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n .detailed-status & {\n width: 100%;\n height: 100%;\n }\n\n @include fullwidth-gallery;\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n position: relative;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-shadow-color;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n\n .fa,\n &:active .fa,\n &:hover .fa,\n &:focus .fa {\n color: inherit;\n }\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n",".sensitive-info {\n display: flex;\n flex-direction: row;\n align-items: center;\n position: absolute;\n top: 4px;\n left: 4px;\n z-index: 100;\n}\n\n.sensitive-marker {\n margin: 0 3px;\n border-radius: 2px;\n padding: 2px 6px;\n color: rgba($primary-text-color, 0.8);\n background: rgba($base-overlay-background, 0.5);\n font-size: 12px;\n line-height: 18px;\n text-transform: uppercase;\n opacity: .9;\n transition: opacity .1s ease;\n\n .media-gallery:hover & { opacity: 1 }\n}\n",".list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n",".emoji-mart {\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: 0;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -3px;\n left: 0;\n width: 100%;\n height: 3px;\n background-color: darken($ui-highlight-color, 3%);\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n",".glitch.local-settings {\n position: relative;\n display: flex;\n flex-direction: row;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n height: 80vh;\n width: 80vw;\n max-width: 740px;\n max-height: 450px;\n overflow: hidden;\n\n label, legend {\n display: block;\n font-size: 14px;\n }\n\n .boolean label, .radio_buttons label {\n position: relative;\n padding-left: 28px;\n padding-top: 3px;\n\n input {\n position: absolute;\n left: 0;\n top: 0;\n }\n }\n\n span.hint {\n display: block;\n color: $lighter-text-color;\n }\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n line-height: 24px;\n margin-bottom: 20px;\n }\n\n h2 {\n font-size: 15px;\n font-weight: 500;\n line-height: 20px;\n margin-top: 20px;\n margin-bottom: 10px;\n }\n}\n\n.glitch.local-settings__navigation__item {\n display: block;\n padding: 15px 20px;\n color: inherit;\n background: lighten($ui-secondary-color, 8%);\n border-bottom: 1px $ui-secondary-color solid;\n cursor: pointer;\n text-decoration: none;\n outline: none;\n transition: background .3s;\n\n .text-icon-button {\n color: inherit;\n transition: unset;\n }\n\n &:hover {\n background: $ui-secondary-color;\n }\n\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n\n &.close, &.close:hover {\n background: $error-value-color;\n color: $primary-text-color;\n }\n}\n\n.glitch.local-settings__navigation {\n background: lighten($ui-secondary-color, 8%);\n width: 212px;\n font-size: 15px;\n line-height: 20px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page {\n display: block;\n flex: auto;\n padding: 15px 20px 15px 20px;\n width: 360px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page__item {\n margin-bottom: 2px;\n}\n\n.glitch.local-settings__page__item.string,\n.glitch.local-settings__page__item.radio_buttons {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n@media screen and (max-width: 630px) {\n .glitch.local-settings__navigation {\n width: 40px;\n flex-shrink: 0;\n }\n\n .glitch.local-settings__navigation__item {\n padding: 10px;\n\n span:last-of-type {\n display: none;\n }\n }\n}\n",".error-boundary {\n color: $primary-text-color;\n font-size: 15px;\n line-height: 20px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n font-weight: 400;\n margin-bottom: 8px;\n }\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n }\n\n ul {\n list-style: disc;\n margin-left: 0;\n padding-left: 1em;\n }\n\n textarea.web_app_crash-stacktrace {\n width: 100%;\n resize: none;\n white-space: pre;\n font-family: $font-monospace, monospace;\n }\n}\n",".compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .drawer--account {\n flex: 0 1 48px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .composer {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px;\n min-height: 48px + 2px;\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n padding-top: 15px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .search {\n margin-bottom: 10px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n ul,\n .e-content & ul {\n margin: 0;\n list-style: none;\n }\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n display: inline-block;\n border-radius: 4px;\n background: darken($ui-primary-color, 14%);\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__text {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n display: block;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-width: 4px;\n background: none;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 52px;\n font-weight: 700;\n padding: 0 10px;\n padding-left: 8px;\n text-align: right;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 52px;\n }\n\n &__vote__mark {\n float: left;\n line-height: 18px;\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n width: 100%;\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__text {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n @include avatar-size(80px);\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n @include avatar-radius();\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n @include avatar-size(44px);\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: none;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n margin-bottom: 20px;\n line-height: 20px;\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n padding: 10px;\n background: $ui-base-color;\n color: $darker-text-color;\n border-radius: 4px 4px 0 0;\n font-size: 14px;\n position: relative;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n &__extras {\n background: lighten($ui-base-color, 6%);\n border-radius: 0 0 4px 4px;\n padding: 10px;\n color: $darker-text-color;\n font-family: $font-monospace, monospace;\n font-size: 12px;\n word-wrap: break-word;\n min-height: 20px;\n }\n\n &__icon {\n font-size: 28px;\n margin-right: 10px;\n color: $dark-text-color;\n }\n\n &__icon__overlay {\n position: absolute;\n top: 10px;\n right: 10px;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n\n &.positive {\n background: $success-green;\n }\n\n &.negative {\n background: lighten($error-red, 12%);\n }\n\n &.neutral {\n background: $ui-highlight-color;\n }\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n\n .diff-old {\n color: lighten($error-red, 12%);\n }\n\n .diff-neutral {\n color: $secondary-text-color;\n }\n\n .diff-new {\n color: $success-green;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n","$emojis-requiring-outlines: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash' !default;\n\n%emoji-outline {\n filter: drop-shadow(1px 1px 0 $primary-text-color) drop-shadow(-1px 1px 0 $primary-text-color) drop-shadow(1px -1px 0 $primary-text-color) drop-shadow(-1px -1px 0 $primary-text-color);\n}\n\n.emojione {\n @each $emoji in $emojis-requiring-outlines {\n &[title=':#{$emoji}:'] {\n @extend %emoji-outline;\n }\n }\n}\n\n.hicolor-privacy-icons {\n .status__visibility-icon.fa-globe,\n .composer--options--dropdown--content--item .fa-globe {\n color: #1976D2;\n }\n\n .status__visibility-icon.fa-unlock,\n .composer--options--dropdown--content--item .fa-unlock {\n color: #388E3C;\n }\n\n .status__visibility-icon.fa-lock,\n .composer--options--dropdown--content--item .fa-lock {\n color: #FFA000;\n }\n\n .status__visibility-icon.fa-envelope,\n .composer--options--dropdown--content--item .fa-envelope {\n color: #D32F2F;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .composer--publisher {\n text-align: left;\n }\n\n .boost-modal__status-time,\n .favourite-modal__status-time {\n float: left;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .setting-meta__label {\n float: left;\n }\n\n .status__avatar {\n margin-left: 10px;\n margin-right: 0;\n\n // Those are used for public pages\n left: auto;\n right: 10px;\n }\n\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 58px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n text-align: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///index.scss","webpack:///./app/javascript/flavours/glitch/styles/reset.scss","webpack:///./app/javascript/flavours/glitch/styles/variables.scss","webpack:///./app/javascript/flavours/glitch/styles/basics.scss","webpack:///./app/javascript/flavours/glitch/styles/containers.scss","webpack:///./app/javascript/flavours/glitch/styles/_mixins.scss","webpack:///./app/javascript/flavours/glitch/styles/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/footer.scss","webpack:///./app/javascript/flavours/glitch/styles/compact_header.scss","webpack:///./app/javascript/flavours/glitch/styles/widgets.scss","webpack:///./app/javascript/flavours/glitch/styles/forms.scss","webpack:///./app/javascript/flavours/glitch/styles/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/statuses.scss","webpack:///./app/javascript/flavours/glitch/styles/components/index.scss","webpack:///./app/javascript/flavours/glitch/styles/components/boost.scss","webpack:///./app/javascript/flavours/glitch/styles/components/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/components/domains.scss","webpack:///./app/javascript/flavours/glitch/styles/components/status.scss","webpack:///./app/javascript/flavours/glitch/styles/components/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/components/composer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/columns.scss","webpack:///./app/javascript/flavours/glitch/styles/components/regeneration_indicator.scss","webpack:///./app/javascript/flavours/glitch/styles/components/directory.scss","webpack:///./app/javascript/flavours/glitch/styles/components/search.scss","webpack:///","webpack:///./app/javascript/flavours/glitch/styles/components/emoji.scss","webpack:///./app/javascript/flavours/glitch/styles/components/doodle.scss","webpack:///./app/javascript/flavours/glitch/styles/components/drawer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/media.scss","webpack:///./app/javascript/flavours/glitch/styles/components/sensitive.scss","webpack:///./app/javascript/flavours/glitch/styles/components/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/components/emoji_picker.scss","webpack:///./app/javascript/flavours/glitch/styles/components/local_settings.scss","webpack:///./app/javascript/flavours/glitch/styles/components/error_boundary.scss","webpack:///./app/javascript/flavours/glitch/styles/components/single_column.scss","webpack:///./app/javascript/flavours/glitch/styles/components/announcements.scss","webpack:///./app/javascript/flavours/glitch/styles/polls.scss","webpack:///./app/javascript/flavours/glitch/styles/about.scss","webpack:///./app/javascript/flavours/glitch/styles/tables.scss","webpack:///./app/javascript/flavours/glitch/styles/admin.scss","webpack:///./app/javascript/flavours/glitch/styles/accessibility.scss","webpack:///./app/javascript/flavours/glitch/styles/rtl.scss","webpack:///./app/javascript/flavours/glitch/styles/dashboard.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,sCACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,0BACA,CCtEW,iED6Eb,kBC7Ea,4BDiFb,sBACE,MEtFF,sBACE,mBACA,eACA,iBACA,gBACA,WDVM,kCCYN,6BACA,8BACA,CADA,0BACA,CADA,qBACA,0CACA,wCACA,kBAEA,sIAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBD5CW,kBCgDX,iBACE,kBACA,0BAEA,iBACE,YAIJ,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cDtEoB,mBAPX,WCgFT,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,wBAEA,aACE,gBACA,WACA,YACA,kBACA,uBAGF,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,6BAKF,YAEE,WACA,mBACA,uBACA,oBACA,yEAKF,gBAEE,+EAKF,WAEE,gBCrJJ,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SFrBI,YEuBF,kBACA,sBAGF,YACE,uBACA,mBACA,WF9BE,qBEgCF,UACA,kBACA,iBACA,uBACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAKA,UACqB,sCC3EvB,iBD4EE,6BAEA,UACE,YACA,cACA,SACA,kBACA,iBF5BkB,wBG9DtB,4BACA,uBD8FA,aACE,cF/EsB,wBEiFtB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UF1UA,qCE6UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cF/UkB,mBEiVlB,kBACA,uHAEA,yBAGE,WFvWA,qCE2WF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBFxaoB,8CE6atB,yBACE,gBACA,aACA,kBACA,gBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,CAEA,WACqB,yCCzgB3B,kBD0gBM,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,iBF7dc,wBG9DtB,4BACA,qCD+hBI,2CAvCF,YAwCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAKA,UACqB,sCCtiB7B,CDuiBQ,sBACA,wDAEA,QACE,kBACA,iBFrfY,wBG9DtB,4BACA,2DDsjBQ,mDAbF,YAcI,sCAKN,2CApEF,eAqEI,sCAGF,2CAxEF,cAyEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WFhlBF,gBEklBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WF1lBJ,gBE4lBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aFlmBY,oDEymBlB,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cF9nBc,aEgoBd,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BF/pBc,wEEqqBd,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WFzsBJ,uBE2sBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cF/tBgB,uDEkuBhB,oBACE,cFnuBc,qBEquBd,aACA,gBACA,8DAEA,eACE,WF1vBJ,qCEgwBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aF3yBU,8DEizBV,mBACA,WFnzBE,qFEuzBJ,YAEE,eACA,cF1yBkB,2CE8yBpB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBFj3BK,+IEo3BH,kBAGE,WEl4BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,eChBJ,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,yBCrBF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cNhFkB,6BMmFlB,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cPeoB,gBObpB,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cPFoB,wBOMtB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBRPI,uBQUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBRVW,aQYT,0BACA,eACA,cRPoB,iBQSpB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aRtCsB,qBQwCpB,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cR9DoB,+BQkEtB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aR3FsB,aQgGxB,YACE,kBACA,mBRzGW,mCQ2GX,qBAGF,YACE,kBACA,0BACA,kBACA,cR3GsB,mBQ6GtB,iBAGF,eACE,eACA,cRlHsB,iBQoHtB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cR7HoB,0BQiItB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cR1IoB,qBQ4IpB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBRnKW,mCQqKX,cR7JwB,gBQ+JxB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cRzMkB,8DQ+MpB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eRlPM,CQoPN,cACA,cRpOsB,mBQsOtB,+BANA,iBACA,CRlPM,kCQgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,URjQM,eQmQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cR1PoB,qCQ8PtB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBR/Qa,kBQiRX,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBR5RO,kBQ8RP,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBRpSsB,eQsSpB,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WRnUE,mBQqUF,gBACA,uBACA,wBAEA,aRzTkB,0BQ6TlB,aACE,gBACA,eACA,eACA,cRjUgB,yFQuUlB,URvVE,+BQ8VJ,aACE,YACA,uDAGF,oBRjVsB,eQuV1B,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cRnYoB,gBQqYpB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WR3aI,8BQ8aJ,aACE,cR/ZkB,gBQialB,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aRhgBsB,iCQ+fxB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cRnhBsB,4JQshBtB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WR9jBI,gCQgkBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MC/kBJ,+BACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WThDA,cSkDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aTnDoB,0BSqDlB,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aTpFsB,sBSuFpB,aTrFsB,yBSyFtB,iBACE,kBACA,gBACA,wBAIJ,aACE,eACA,eACA,qBAGF,kBACE,cTzGoB,iCS4GpB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WTzJA,gBS2JA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WT/KE,cSiLF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WTrME,cSuMF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,kDAIJ,oBACE,WACA,OACA,6BAGF,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WTzRI,cS2RJ,WACA,2CAKE,mBACE,eACA,WTnSA,qBSqSA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WTnUI,cSqUJ,WACA,UACA,oBACA,gBACA,mBACA,sBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBT1VY,oLS8VZ,iBACE,4WAGF,oBTjVsB,mBSoVpB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBTlYsB,WAlBlB,eSuZJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBTlaoB,gGSsapB,kBTpbQ,kHSubN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WTvcI,cSycJ,WACA,UACA,oBACA,gBACA,wXACA,sBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cTvckB,oBSyclB,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,8DACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,8BACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UTrhBF,aS+hBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cTvhBsB,kBSyhBtB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cT/iBY,sBSmjBd,mCACE,+BACA,cTpjBQ,kBSwjBV,oBACE,cT3iBoB,qBS6iBpB,wBAEA,UT/jBI,0BSikBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gCACA,mBTvkBS,WATL,eSmlBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aTxmBsB,qBS0mBpB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aT1nBwB,yBS4nBtB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cT5oBsB,oCS+oBtB,cACE,mBACA,kBACA,4CAGF,aTppBwB,gBSspBtB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBT5rBM,YS8rBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cTzrBwB,WS2rBxB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WTxuBI,qCS0uBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UThvBI,0BSkvBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cT/wBsB,0BSkxBtB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WT5yBI,kBS8yBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aTtzBc,0SSg0BZ,+BACE,aAIJ,kBACE,sBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gCACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBT12Bc,gBS42BZ,2BAEA,kBT92BY,gBSg3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SCj7BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,gBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,CAEA,UACqB,sCPpDzB,gBOqDI,wBAEA,UACE,YACA,cACA,SACA,kBACA,iBVLgB,wBG9DtB,4BACA,mBOoEM,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WV/EA,gBUiFA,gBACA,uBACA,+BAGF,aACE,eACA,cVxEgB,gBU0EhB,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WV7GI,gBU+GJ,qBACA,iBACA,qBACA,sBAGF,eVrHM,oBUuHJ,cV9GS,eUgHT,cACA,kBAGF,cACE,uCAGF,wBAEE,cVlHsB,oBUsHxB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,cACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBVrKa,mCUuKX,cVhKsB,eUkKtB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cV9LwB,sCUgMxB,sCACA,6DAEA,aVnNc,sCUqNZ,kCACA,qDAGF,aACE,sCACA,kCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cV7OsB,0BU+OtB,6BAGF,aACE,cVpPoB,4BUwPtB,aVtPwB,qBUwPtB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aVtRY,gBUwRV,0CAGF,aV3RY,wCUgSd,eACE,wCAIJ,UACE,0BAIA,aV3RsB,4BU8RpB,aV7RsB,qBU+RpB,qGAEA,yBAGE,iCAIJ,UVzTI,gBU2TF,wBAIJ,eACE,kBClUJ,kCACE,kBACA,gBACA,mBACA,qCAEA,iBANF,eAOI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBXhBW,6GWmBT,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBXzDwB,WAlBlB,oBW8EN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UXxFI,gFW4FN,kBAGE,qNAKA,kBXpFoB,4IW4FpB,kBX1GQ,qCWiHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAKA,cACA,iBACA,mBACA,mFAGF,iBACE,eACA,WACA,WACA,WACA,qMAGF,eAGE,mEASF,cACE,gBACA,qFAGF,aXhJoB,YWkJlB,eACA,WACA,eACA,gBACA,+GAGF,aACE,eACA,CACA,sBACA,eACA,yJAEA,cACE,uEAIJ,WACE,kBACA,WACA,eACA,iDAQF,iBACE,mBACA,yHAEA,iBACE,gBACA,+FAGF,UACE,oCAMR,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,qBACA,oFAEA,yBAEE,WC9OJ,gCACE,4CACA,kBAGF,mBACE,sBACA,oBACA,gBACA,kBACA,cAGF,aACE,eACA,iBACA,cZIwB,SYFxB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,aZVsB,eYYpB,SAIJ,wBACE,YACA,kBACA,sBACA,WZpCM,eYsCN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,qCACA,mBACA,WACA,4CAEA,wBAGE,4BACA,qCACA,sBAGF,eACE,mFAEA,wBZnEQ,gBYuEN,kBAIJ,wBZ7DsB,eY+DpB,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,aZpFW,mBAOW,qGYiFpB,wBAGE,8BAIJ,kBZ1EsB,2GY6EpB,wBAGE,0BAIJ,cACE,iBACA,YACA,cZrGoB,oBYuGpB,uBACA,iBACA,kBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,cAIJ,oBACE,UACA,cZnHsB,SYqHtB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,qCACA,4BACA,2CACA,oBAGF,mCACE,uBAGF,aACE,6BACA,eACA,qBAGF,aZ3JwB,gCY+JxB,QACE,uEAGF,mBAGE,uBAGF,aZ7JsB,sFYgKpB,aAGE,qCACA,6BAGF,mCACE,gCAGF,aACE,6BACA,8BAGF,aZ5LsB,uCY+LpB,aACE,wBAKN,sBACE,0BACA,yBACA,kBACA,YACA,8BAEA,yBACE,mBAKN,aZtMwB,SYwMtB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,qCACA,4BACA,2CACA,yBAGF,mCACE,4BAGF,aACE,6BACA,eACA,0BAGF,aZnPwB,qCYuPxB,QACE,sFAGF,mBAGE,gBAIJ,iBACE,uBACA,YAGF,WACE,cACA,qBACA,QACA,SACA,kBACA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,uCAIJ,MACE,kBACA,CZ/SU,sEYsTZ,aZtTY,uBY0TZ,aZ3Tc,4DYiUV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UZrVM,0BYuVJ,eAIJ,aACE,eACA,gBACA,uBACA,mBACA,iBAEA,aACE,wBACA,sBAIA,cACA,gBAKA,yCAPF,WACE,CAEA,gBACA,uBACA,gBACA,mBAWA,CAVA,mBAGF,aACE,CACA,cAKA,8BAIA,yBACE,sBAIJ,SACE,YACA,eACA,iBACA,uBACA,mBACA,gBACA,CAME,sDAGF,cACE,YACA,kBACA,oBACA,qBAKN,eACE,wBAGF,cACE,eAGF,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cZxX4B,eAEC,0DYyX3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cZhZ4B,eAEC,WYiZ3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,WAIJ,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBZ1c0B,cY4cxB,kBACA,uCACA,mBAEA,eACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BZ9dsB,2BYkexB,WACE,iBACA,uBACA,yBZresB,8BYyexB,QACE,iBACA,uBACA,4BZ5esB,6BYgfxB,SACE,gBACA,2BACA,2BZnfsB,wBYyfxB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZ/fsB,cARb,gBY0gBT,uBACA,mBACA,yFAEA,kBZrgBsB,cADA,UY2gBpB,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBZzhBsB,cY2hBtB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZljBsB,cARb,gBY6jBT,uBACA,mBACA,oDAEA,SACE,oDAGF,kBZ5jBsB,cADA,iBYokB1B,qBACE,iBAIA,sBACA,cZ7jBsB,oBYgkBtB,cACE,gBACA,mBACA,kBACA,mBAGF,cACE,mBACA,iBAIJ,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WZ3pBM,qBY6pBN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCTxoBA,6GADF,kBSgpBI,4BACA,kHT5oBJ,kBS2oBI,4BACA,wBAIJ,+BACE,cZlqBsB,sBYsqBxB,eACE,aACA,2BAGF,aACE,eACA,kBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBZvrBsB,yBYyrBtB,gBACA,kBACA,eACA,gBACA,iBACA,WZhtBI,mDYqtBR,oBACE,aAGF,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,gBAIJ,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,0CACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBZjxBW,qCYmxBX,sEAGF,wBACE,4CAGF,wBZjxB0B,+EYqxB1B,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,yBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBZ70BwB,yDYi1B1B,kBZ11Ba,2BYg2Bb,iBACE,gBACA,cAGF,aACE,kBAGF,kBZz2Ba,cY22BX,oBAEA,aZr2BwB,oBYy2BxB,aZ51BsB,yBYg2BtB,0BACE,CADF,uBACE,CADF,kBACE,kDAKA,sBACA,cACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,aZl3BoB,eYo3BlB,0DAEA,aZt3BkB,0BYw3BhB,sDAIJ,oBACE,cZ34BkB,sMY84BlB,yBAGE,0BAKN,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cZ95BkB,aYg6BlB,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,aZz7BkB,qBYg8BxB,oBACE,kBACA,eACA,iBACA,gBACA,mBZ58BW,gBY88BX,iBACA,qBAGF,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,aZh+BwB,uBYk+BtB,CACA,WACA,CADA,+BACA,sBACA,cACA,oBACA,mBACA,cACA,WACA,0CAEA,UZ5/BM,4BAkBkB,qCGKtB,yDADF,cS6+BE,sBAGF,aZ7/BW,gCY+/BT,sDAEA,aZjgCS,4BASa,mDYggC1B,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAIJ,uBACE,2BACA,gDAGF,aZtgCwB,6BYwgCtB,uDAGF,aZvhC0B,yDY2hC1B,aACE,YAGF,aACE,cZphCsB,6BYshCtB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,oBAGF,gBACE,qEAGF,4BACE,gCAGF,eACE,kBACA,MACA,QACA,YACA,kBACA,YAEA,mBACA,yBACA,eACA,aAEA,wCAEA,UZ/hCsB,mBYiiCpB,aACA,sBACA,mBACA,uBACA,mBACA,8BACA,wBACA,gCACA,uCAGF,wBACE,kBACA,WACA,YACA,eACA,cZlmCoB,yBYomCpB,aACA,uBACA,mBACA,sCAGF,mBACE,6CAEA,8BACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,oBAGF,aZhnCwB,eYknCtB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,6BAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,YACE,SACA,QACA,WACA,YACA,mBACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,0BACA,kBACA,iBACA,WZ3yCE,gBY6yCF,eACA,+LAMA,yBACE,mEAKF,yBACE,iBAMR,aACE,iBACA,mEAGF,aZtzCwB,qBY0zCtB,mBACA,gBACA,sBACA,gBAGF,aACE,iBACA,uBAGF,eACE,8BAGF,aZz0CwB,eY20CtB,cACA,gBACA,gBACA,uBAGF,qBACE,sBAGF,WACE,8BAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA3BF,qBAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,iBAIJ,0DACE,CADF,kDACE,cAGF,kBACE,0BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBZn6CW,kCYq6CX,uBAGF,MACE,aACA,mBACA,uBACA,cZp6CwB,eYs6CxB,gBACA,0BACA,kBACA,qCAGF,SACE,oBACA,CADA,WACA,cAGF,wBZh7C0B,WYk7CxB,kBACA,MACA,OACA,aACA,qBAGF,iBACE,aAGF,iBACE,cACA,aACA,WACA,yBZj8CwB,kBYm8CxB,cACA,UACA,WACA,eAGF,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,eACA,uBAGF,oBACE,mBZ79CsB,kBY+9CtB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cZr/CkB,kBYu/ClB,+BAGF,aZ1/CoB,eY4/ClB,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UZphDE,qBYshDA,oHAEA,yBAGE,yCAKN,QACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UZhjDI,oBYyjDN,kBACA,cACA,2BAGF,eACE,UAGF,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cZ5jDsB,gBY8jDtB,gBAEA,aZ/jDsB,0BYikDpB,sBAEA,oBACE,gBAIJ,qBACE,4BAKN,GACE,cACA,eACA,WARI,mBAKN,GACE,cACA,eACA,2CCrmDF,u+KACE,uCAEA,u+KACE,CAOA,8MAMF,okBACE,UClBJ,YACE,gCACA,cACA,qBACA,iCAEA,aACE,cACA,cdUoB,gBcRpB,qBACA,eACA,gBAGF,WACE,UACA,yCAEA,8CAEA,WACE,iBACA,mBAKN,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,gBd0BwB,wBG9DtB,4BACA,kBWqCA,eACA,yBAEA,oBACE,sBACA,iBACA,4BX3CF,eWiDE,2DAHF,gBdesB,wBG9DtB,4BACA,CWgDE,iBAOE,CANF,+BXjDF,UWqDI,CACA,qBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WdhEE,6BckEF,gBACA,eACA,0BAKN,iBACE,WACqB,sCXpErB,+BANA,UW8EuB,sCXxEvB,gEWsEA,gBdfsB,wBG9DtB,4BWyFE,CXlFF,iCANA,UWmFuB,sCX7EvB,kBW+EE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,2BAGF,aACE,mBACA,sBAGF,YACE,cd3EsB,6Bc8EtB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,4BAGF,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,8BACA,eACA,oCACA,uCAEA,aACE,kCAGF,+BACE,gCAGF,aACE,yBACA,eACA,cdtJoB,kCc0JtB,aACE,eACA,gBACA,Wd7KI,CckLA,2NADF,eACE,gCAKN,adrKwB,oBc0K1B,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,wBAGF,gBACE,qBACA,eACA,cd9LsB,ecgMtB,kBACA,4BAEA,adjMwB,6BcqMxB,aACE,gBACA,uBACA,iBAIJ,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,adlOwB,ecoOtB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SX5MF,sBACA,WACA,YACA,gBACA,oBACA,mBHhDW,cAOW,eG4CtB,SACA,+EWsMI,aACE,CXvMN,qEWsMI,aACE,CXvMN,yEWsMI,aACE,CXvMN,gEWsMI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,ad5PoB,iBc8PlB,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,adnSoB,0HcwSpB,cAEE,gBACA,cd7RkB,kZcgSlB,aAGE,gEAIJ,wBACE,iDAGF,edzUI,kBGkEN,CAEA,eACA,cHrDsB,uCGuDtB,UWoQI,mBd1ToB,oDGwDxB,wBACE,cH1DoB,eG4DpB,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,cHjFS,sDcsUT,WACE,mDAGF,ad1US,kBc4UP,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UdtWQ,kBcwWN,cACA,mBACA,sBd3WM,yBc6WN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,6BAIJ,YACE,eACA,gBACA,wBAGF,WACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cdjZoB,ecmZpB,eACA,gBACA,kBACA,qBACA,kBACA,yJAEA,adzZsB,qWc4ZpB,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,sBAQR,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cdjcoB,CcocpB,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,2BAIJ,ad3ewB,ec6etB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,Wd/mBA,gBcinBA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cdxmBc,gBc0mBd,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,Wd5oBE,gDcgpBJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,ad3pBU,yBciqBd,cACE,gCAEA,cACE,cdtpBkB,ecwpBlB,kCAEA,oBACE,cd3pBgB,qBc6pBhB,iBACA,gBACA,yCAEA,eACE,WdlrBF,SeFR,YACE,gCACA,8BAEA,aACE,cACA,WfJI,qBeMJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,mCCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,EDGF,0BCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,qCAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,EAtBA,2BAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,gCAIJ,cACE,kBAGF,iBACE,cACA,eACA,iBACA,qBACA,gBACA,iBACA,gBACA,wBAEA,SACE,4BAGF,UACE,YACA,gBACA,sBAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,qEAGF,kBACE,qBACA,sGAEA,eACE,qEAIJ,eAEE,qJAEA,kBAEE,mXAGF,eACE,mBACA,qJAGF,eACE,gBACA,2EAGF,eACE,+NAGF,eACE,2FAGF,iBACE,8BACA,chB9FkB,mBgBgGlB,qHAEA,eACE,2JAIJ,eACE,mJAGF,iBACE,6EAGF,iBACE,eACA,6EAGF,iBACE,qBACA,qJAGF,eACE,6JAEA,QACE,2EAIJ,oBACE,2EAGF,uBACE,oBAIJ,ahB9Ic,qBgBgJZ,0BAEA,yBACE,8BAEA,aACE,kCAKF,oBACE,uCAEA,yBACE,wBAKN,ahBlJoB,4CgBuJtB,YACE,8EAEA,aACE,mCAIJ,aACE,oDAEA,ahB5LQ,egB8LN,iDAIJ,kBACE,uDAEA,kBACE,qBACA,gCAKN,oBACE,kBACA,mBACA,YACA,chB3MW,gBgB6MX,eACA,cACA,yBACA,oBACA,eACA,sBACA,sCAEA,kBACE,qBACA,+DAGF,oBACE,iBACA,sBACA,kBACA,eACA,oBACA,2GAKF,oBAGE,4BAIJ,ahBvNwB,SgByNtB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,mDAGF,iBAEE,gCAGA,qEAEA,eACE,kBAKF,SACE,mBACA,kDAEA,kBACE,wDAEA,sBACE,iFAIJ,kBAEE,SAKN,iBACE,kBACA,YACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QAPF,kBAUI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,ahB1SoB,qCgB8SpB,ahBnUS,6BgBuUT,ahBhUoB,CAPX,kEgB+UT,ahB/US,kCgBkVP,ahBzUoB,gEgB6UpB,UhB/VE,mBAgBgB,sEgBmVhB,kBACE,mBAMR,uBACE,sBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,yCAEA,aACE,kBACA,OACA,QACA,MACA,SACA,6FACA,oBACA,WACA,2DAGF,oBACE,oCAGF,WACE,gBACA,uBACA,cACA,0CAEA,UACE,kBACA,MACA,gBACA,6DACA,oBACA,4CAGF,oBACE,gDAGJ,oDACE,mEAEF,oDACE,0CAGF,eACE,6DAGF,kBACE,gCAIJ,mBACE,+CAKF,sBACE,qEAEA,aACE,wBAKN,oBACE,YACA,ChBrZsB,cgBuZtB,iBACA,mBACA,CACA,sBACA,8CANA,ahBrZsB,CgByZtB,eAOA,8CAGF,aACE,eACA,eAGF,YACE,8BACA,eACA,oBAEA,sBACE,gBACA,2CAGF,oBACE,sBAIJ,YACE,mBACA,WACA,chB1bsB,iIgB6btB,gBAGE,kBACA,0EAGF,yBACE,yEAMA,0CACE,CADF,kCACE,2EAKF,2CACE,CADF,mCACE,wBAKN,YACE,mBACA,2BACA,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,gBACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,mBACA,iBACA,chBtgBsB,CgBwgBtB,iBACA,eACA,kBACA,+CAEA,ahB7gBsB,uBgBihBtB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,chB1iBkB,4BgBgjBxB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,+DAIJ,cAEE,wBAIJ,eACE,chBnmBsB,egBqmBtB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,6JAGF,oBAME,4DAKA,UhBxqBM,kBgB8qBN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,ahB1rB0B,cgB4rBxB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WhB1tBI,kCgB+tBR,UACE,kBACA,iBAGF,SACE,kBACA,YACA,WACA,ChB1sBsB,8IgBqtBtB,ahBrtBsB,wBgBytBtB,UACE,wCAGF,kBhB7tBsB,cArBX,8CgBsvBT,kBACE,qBACA,+DAOJ,yBACE,cAIJ,YACE,eACA,yBACA,kBACA,chBnvBsB,gBgBqvBtB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,chB5xBoB,uBgB8xBpB,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UhBtzBE,yBgB6zBJ,cACE,kBACA,YACA,+DAGF,aACE,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACE,YACA,SACA,2BAIF,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,chBp1BsB,gBgBs1BtB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,ahBl2BwB,oBgBs2BxB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,kBAGF,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,chB76BoB,iBgB+6BpB,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,chB38BkB,gBgB68BlB,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,ahB99BoB,oCgBo+BxB,cACE,cACA,SACA,uBACA,UACA,kBACA,oBACA,oFAEA,yBAEE,6BC/gCJ,kBACE,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,0BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,6CAGF,kBjBvB0B,cARb,kBiBoCX,gBACA,aACA,sBACA,0BAGF,WACE,WACA,gBACA,iBACA,8DAEA,UACE,YACA,sBACA,aACA,sBACA,mBACA,uBACA,aACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAIJ,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,qCAGF,kBACE,UACE,YACA,gBACA,0BAGF,UACE,YACA,eACA,gBACA,cACA,oDAIJ,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,ajBpGsB,SiBuGpB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,qiBAGF,ajB7IS,qwDiBiJP,aAGE,sBAMR,sBACE,yBAGF,aACE,aACA,mBACA,uBACA,wBAGF,UACE,YACA,mBACA,mBACA,aACA,eACA,8BAEA,kBACE,+BAGF,cACE,mBACA,kCAIJ,mBACE,CACA,mBACA,0EAEA,mBACE,yBAIJ,cACE,iBACA,4BAEA,cACE,gBACA,cjBvMS,mBiByMT,2BAGF,ajBnMwB,kGiBsMtB,aAGE,2CAIJ,aACE,2BAGF,cACE,cjBtMoB,gBiBwMpB,mBACA,sCAEA,eACE,kCAGF,eACE,mBjBrOO,cAQa,kBiBgOpB,eACA,gBACA,CAII,2NADF,eACE,oCAOV,WACE,UACA,mCAME,mBACA,mBACA,sCAEA,cACE,iBACA,kBACA,qCAGF,eACE,oCAIJ,kBACE,mBACA,kBACA,eAIJ,iBACE,eACA,mBACA,sBAEA,eACE,cjBzRS,kBiB2RT,yBACA,eACA,qBAGF,kBjBhSW,cAQa,gBiB2RtB,aACA,kBACA,6HAQF,eACE,qJAGF,kBACE,cjB1SsB,mBiB4StB,kBACA,aACA,kBACA,eACA,sCACA,yPAEA,iBACE,mBACA,qNAGF,mBACE,gBACA,4CAMJ,YACE,mBACA,gDAEA,UACE,cACA,4DAEA,aACE,2DAGF,cACE,kDAGF,iBACE,uDAIJ,eACE,sDAIJ,UjB3WM,2DiBgXR,0BACE,cACE,iBACA,qJAGF,cAIE,mBACA,4CAGF,kBACE,sDAGF,WACE,eACA,mBAIJ,oBACE,eACA,gBACA,iBACA,uHAGF,kBAOE,cjB7YW,kBiB+YX,gBACA,eACA,YACA,kBACA,sBACA,+SAEA,ajBjYsB,YiBmYpB,eACA,WACA,eACA,gBACA,uSAGF,YACE,uPAGF,WACE,WACA,+WAGF,aACE,wBAKF,ejBvbM,CAiBkB,gBiByatB,oBACA,iEjB3bI,2BAiBkB,qDiBkb1B,iBAEE,aACA,qEAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,kKAIJ,YAKE,8BACA,mBjBncwB,aiBqcxB,iBACA,0LAEA,aACE,iBACA,cjB7boB,mBiB+bpB,kNAGF,aACE,6DAIJ,cAEE,yDAGF,WAEE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,ajBzgBwB,qCiB6gBxB,oDAZF,eAaI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,ajBhjBS,gBATL,aiB4jBJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,ejB5kBI,yBiB8kBF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,ajBnlBO,oBiBqlBL,eACA,gBjB/lBA,+CiBomBJ,YACE,8BACA,mBACA,4CAIJ,aACE,cjBnmBS,eiBqmBT,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,ajB9mBS,eiBgnBP,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eAWE,eACA,wBAXA,eACE,iBACA,uBAGF,aACE,gBACA,2CAMF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,ajB/pBO,aiBiqBL,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBjBvqBgB,WAlBlB,iJiBgsBA,iBAGE,oMAUR,aACE,iIAIJ,4BAIE,cjBxrBsB,eiB0rBtB,gBACA,6cAEA,aAGE,6BACA,uCAIJ,iBACE,mBACA,oBACA,eAEA,yFAEA,qBACE,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,ajBzwBS,CiB2wBP,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gDACA,mBjBpzBO,WATL,eiBg0BF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,cAKN,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBjB12BM,yDiB62BN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBjBr3BI,uBiBy3BN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UjBt5BI,eiBw5BF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,wBAKN,gBACE,sCAEA,eACE,gCAGF,eACE,qDAGF,ajBl7BW,iDiBs7BX,YACE,0DAEA,YACE,0BAIJ,YACE,iBACA,uBACA,kDAGF,ajB/6BsB,qBiBi7BpB,wDAEA,yBACE,WCp9BN,YACE,kCAEA,iBACE,MACA,QACA,oIAEA,+BAEE,oBAKN,cACE,uBACA,eACA,gBACA,clBasB,4CkBVtB,alBjBY,sCkBsBd,2CACE,oBAGF,QACE,wBACA,UACA,+CAEA,WACE,mBACA,UACA,0BAGF,aACE,sBACA,SACA,YACA,kBACA,aACA,WACA,UACA,clBvCS,gBATL,ekBmDJ,oBACA,gBACA,qDAEA,alBzBoB,CkBuBpB,2CAEA,alBzBoB,CkBuBpB,+CAEA,alBzBoB,CkBuBpB,sCAEA,alBzBoB,gCkB6BpB,8Cf/CA,uCADF,ceiD4D,0Cf5C5D,ce4C4D,oBAI9D,alBvDa,mBkByDX,mBlBlDsB,oCkBoDtB,iBACA,kBACA,eACA,gBACA,sBAEA,alB5CsB,gBkB8CpB,0BACA,mFAEA,oBAEU,iCAKZ,mBACA,eAEA,gBACA,wCAEA,alB1EwB,sDkB8ExB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,gBACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBlBhGsB,qCkBuG1B,eACE,kBACA,aACA,mBlB5GsB,gBkB8GtB,gBACA,cACA,yBAEA,iBACE,gBACA,wCAEA,alB7HS,iCkB+HT,WACE,iBACA,2BAIJ,iBACE,cACA,CACA,cACA,iBACA,clB1IS,qBkB4IT,gBACA,iBACA,qBACA,mBACA,gBACA,gGAEA,kBACE,qBACA,iIAEA,eACE,kJAIJ,eACE,mBACA,2DAGF,eACE,eACA,8BAGF,cACE,wFAGF,eACE,sCAGF,iBACE,8BACA,clBhLO,mBkBkLP,mDAEA,eACE,8DAIJ,eACE,0DAGF,iBACE,+BAGF,iBACE,eACA,2DAGF,eACE,+DAEA,QACE,8BAIJ,oBACE,8BAGF,uBACE,6BAGF,alBjMoB,qBkBmMlB,mCAEA,oEAGE,oBACE,gDAEA,qDAMR,UACE,YACA,gBACA,uDAIJ,iBAEE,WACA,mIAGE,aACE,sBACA,SACA,YACA,0BACA,yBACA,WACA,iBACA,UACA,clB5PO,gBATL,ekBwQF,oBACA,YACA,qBACA,yLAEA,alB/OkB,CkB6OlB,sKAEA,alB/OkB,CkB6OlB,8KAEA,alB/OkB,CkB6OlB,4JAEA,alB/OkB,yKkBmPlB,SACE,qJAGF,kBlBpQoB,+IkBqQpB,8Cf1QF,8JADF,ce4Q8D,kKfvQ9D,ceuQ8D,qCfhQ5D,8TADF,sBeoQM,gBACA,6BAMR,aACE,kBACA,SACA,UACA,WACA,gBACA,2CAEA,aACE,mBACA,WACA,YACA,clB/QoB,ekBiRpB,iBACA,kBACA,WACA,4CAIJ,iBACE,SACA,oCAGF,aACE,kBACA,sBACA,SACA,0BACA,YACA,WACA,clBzTW,mBAQa,sCkBoTxB,eACA,WACA,aACA,6CAGF,aACE,0CAGF,YACE,eACA,kBACA,iMAEA,kBAGa,iKAEb,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,+DAGF,6BACE,qEAEA,aACE,gBACA,uBACA,mBACA,sEAGF,eACE,qEAGF,aACE,iBACA,gBACA,uBACA,mBACA,4EAMA,alB/VkB,wBkBoWxB,eACE,iCAEA,YACE,mBACA,eACA,oBACA,YACA,gBACA,8BAIJ,UACE,WACA,cACA,kCAEA,iBACE,kBACA,aACA,WACA,sBlBzZI,wBkB2ZJ,sBACA,4BACA,gBACA,2CAEA,aACE,kBACA,sBACA,SACA,OACA,SACA,SACA,aACA,WACA,clBvZoB,gFkByZpB,eACA,oBACA,gBACA,UACA,UACA,4BACA,iDAEA,UlBlbE,sEkBobF,WACE,clBpakB,CAjBlB,4DkBobF,WACE,clBpakB,CAjBlB,gEkBobF,WACE,clBpakB,CAjBlB,uDkBobF,WACE,clBpakB,yCkByatB,2EAKE,0CAKN,iFACE,aACA,uBACA,8BACA,UACA,4BACA,8CAEA,aACE,clB5bsB,ekB8btB,gBACA,aACA,oBACA,2JAEA,aAGE,wCAIJ,SACE,kCAIJ,YACE,aACA,clBldsB,gBkBodtB,sCAEA,cACE,kBACA,2CAGF,aACE,gDAEA,aACE,eACA,gBACA,yBACA,qDAGF,iBACE,eACA,kBACA,WACA,WACA,mBlB5dkB,8DkB+dlB,iBACE,MACA,OACA,WACA,kBACA,mBlBhfkB,0BkBuf1B,alBhgBa,oBkBkgBX,eACA,gBlB5gBM,4BkBghBR,YACE,mBACA,0BACA,YACA,aACA,8BACA,cACA,oBAGF,YACE,cACA,sBAEA,oBACE,uBACA,cACA,YACA,iBACA,sBACA,uBAGF,oBACE,aACA,CAEA,oBACA,CADA,6BACA,UACA,QACA,YACA,uBACA,2BAIJ,iBACE,iBACA,0CAKE,yBACE,qCACA,WlB7jBE,mBAkBkB,gBkB8iBpB,8CAGA,yBACE,oCACA,uCAMR,iBACE,kBACA,uCACA,gBlB9kBM,gBkBglBN,uBACA,6CAGF,YACE,mBACA,aACA,clB9kBW,ekBglBX,sDAEA,aACE,clB9jBoB,wEkBikBpB,6EAEA,aACE,clBzlBO,gBkB2lBP,sGAIJ,kBlBtlBwB,WAlBlB,6PkBgnBF,UlBhnBE,0DkBonBN,wCAGF,gBACE,iBACA,mBACA,gBACA,yBACA,cACA,+BAEA,oBACE,SACA,eACA,kBACA,gCAGF,oBACE,aACA,UACA,WACA,kBACA,kCAIA,alB5oBU,CmBFZ,+BAHF,YACE,cACA,kBAUA,CATA,cAKA,kBACA,2BACA,gBAEA,uBAEA,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,wHAMJ,WAGE,mCAIJ,YACE,mBACA,uBACA,YACA,CnB7EW,ImB4Fb,aACE,aACA,sBACA,WACA,YACA,CAIA,oBAGF,qBACE,WACA,mBACA,cnBlGwB,emBoGxB,cACA,eACA,SACA,iBACA,aACA,SACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cnBrHwB,emBuHxB,cACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,cAGF,kBACE,WnB5KM,cmB8KN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cnB7KsB,kGmBgLtB,sBAGE,WnBpME,kCmBwMJ,anBtLsB,oBmB4L1B,oBACE,iBACA,oBAGF,kBnB1Ma,cAqBW,iBmBwLtB,eACA,gBACA,yBACA,eACA,yBAGF,iBACE,cACA,UACA,gCAEA,uCACE,uCAEA,aACE,WACA,kBACA,aACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,oFACA,wCAIJ,SACE,kBACA,gBAIJ,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,uBAEA,QACE,YACA,aACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,anBlQwB,4CmBuQtB,anBvQsB,0CmByQpB,4CAIJ,SAEE,SAIJ,WACE,kBACA,sBACA,aACA,sBACA,gBACA,wDAEA,SACE,gBACA,gBACA,qBAGF,kBnB1SW,yBmB+Sb,WACE,aACA,cACA,uBAGF,kBACE,iCAGF,iBACE,sEAGF,kBACE,SACA,cnBxTsB,emB0TtB,eACA,eACA,kFAEA,aACE,CAKA,kLAEA,UnBtVI,mBmBwVF,kFAKJ,2BACE,wCAIJ,YACE,oBACA,6BACA,+CAEA,sBAEE,kBACA,eACA,qBACA,0CAGF,eACE,gDAKJ,SACE,6BAGF,eACE,gBACA,gBACA,cnB5WsB,0DmB8WtB,UACA,UACA,kBACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,iCAIF,eACE,2CACA,YACE,WACA,mCAKN,kBACE,aACA,mCAIA,anBpZsB,0BmBsZpB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,uBAKN,oBACE,uBACA,gBACA,mBACA,OACA,sBAGF,oBACE,iBACA,6EAGF,anBrawB,mBArBX,kBmB+bX,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBACA,4EAdF,cAeI,6FAGF,eACE,mFAGF,anBvcwB,qBmByctB,qGAEA,yBACE,uCAKN,kBACE,aACA,eAGF,qBACE,uCAKA,sBACE,6BACA,qCASF,qCAXA,sBACE,6BACA,sCAgBF,mJAFF,qBAGI,sBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,kBACA,uCAEA,SACE,kCAKN,aACE,aACA,yBC9hBJ,iBACE,eACA,gBACA,cpB6BsB,mBArBX,eoBLX,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,cpBDkB,qCoBKpB,cACE,gBACA,kBCtCJ,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,gBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WrB1EF,gBqB4EE,gBACA,uBACA,0CAGF,aACE,eACA,crBnEc,gBqBqEd,gBACA,uBACA,yBAKN,kBrBnFS,aqBqFP,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,cAOV,kBrBzHa,sBqB4HX,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,CC/KJ,eAGF,SnBkDE,sBACA,WACA,YACA,gBACA,oBACA,mBHhDW,cAOW,eG4CtB,SACA,cmBxDA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,4CACA,eACA,WACA,YACA,ctBtCsB,esBwCtB,oBACA,0BAEA,mBACE,WACA,0BAIJ,sBACE,iCAEA,mBACE,WACA,gCAIJ,QACE,uBACA,ctB/CoB,esBiDpB,uCAEA,uBACE,sCAGF,aACE,yBAKN,atB7DwB,mBsB+DtB,gCACA,kBACA,eACA,gBACA,uBAGF,YACE,ctBrFsB,kBsBuFtB,iBAIA,atB7EsB,mBsB+EpB,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,ctBvGkB,gBsByGlB,uBACA,mBACA,4BAEA,eACE,uBAGF,atB/HkB,qBsBiIhB,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,ctBzJoB,0BsB6JtB,aACE,WACA,2CAEA,oCACE,yBACA,0CAGF,wBACE,WC1LR,yCCCE,qBACA,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,8BAIJ,exBXQ,kBwBaN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBxBvCM,kBwByCN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,+BAGE,2DAIJ,WACE,wBAKF,2BACE,eAIJ,aACE,wBACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,SACA,WACA,YACA,0EAMA,SACE,oBACA,CADA,WACA,eChGN,WAEE,0BAGF,kBANW,kBAQT,cACA,iCACA,wBACE,mCAOF,WACE,SACA,UACA,2CAGF,aACE,aAEA,sBACA,YACA,6BACA,6DAGE,oBACE,WACA,iBACA,iBACA,iJAGF,UACE,gEAEF,oBACE,gBACA,WACA,2CAKN,yBACE,sBACA,kBACA,YACA,gBACA,kDAEA,uBACE,CADF,oBACE,CADF,eACE,WACA,YACA,SACA,4BACA,WACA,yBACA,eACA,4CACA,sBACA,oBACA,6DAEA,uBACE,6DAGF,sBACE,wEAGF,sBACE,kBACA,SCjFR,WACE,sBACA,aACA,sBACA,kBACA,iBACA,UACA,qBAEA,iBACE,oBAGF,kBACE,2DvBDF,SuBI0D,yBvBC1D,SuBD0D,qCvBQxD,qLuBLA,yBAGF,eACE,gBACA,eACA,qCvBZA,4BuBgBA,SACE,WACA,YACA,eACA,UACA,+BALF,SACE,WACA,YACA,eACA,UACA,yCAIJ,4BAGF,YACE,mBACA,mBACA,UACA,mBACA,eACA,mBAEA,aACE,sBACA,oCACA,sBACA,YACA,cACA,c1BtCoB,kB0BwCpB,qBACA,eACA,mBAGF,iCACE,iDAEA,YAEE,mBACA,mCACA,SAKN,iBACE,mBACA,UACA,qCvBrDE,6CADF,euBwDkF,sCvBlEhF,sBADF,cuBoE0D,yBvB/D1D,cuB+D0D,gBAG5D,e1BlFQ,kBGkEN,CACA,sBACA,gBACA,cHrDsB,uCGuDtB,mBAEA,wBACE,cH1DoB,eG4DpB,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,cHjFS,kB0B6Eb,YACE,c1BvEsB,a0ByEtB,mBACA,oBAEA,aACE,qBACA,wBAGF,aACE,c1BjFsB,gB0BmFtB,mBACA,gBACA,uBACA,0BAIJ,aACE,gBACA,gBACA,kBAGF,kB1BxGa,kB0B0GX,gBACA,yBAEA,a1BxFsB,mB0B0FpB,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,c1BhHkB,iC0BmHlB,oBACE,iBACA,8FAIJ,eAEE,mCAGF,aACE,aACA,c1B7IoB,qB0B+IpB,0HAEA,aAGE,0BACA,gBAQN,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAgBA,CAfA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,uBAEA,kB1B1LW,0B0B+Lb,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,UACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oCAGF,aACE,WACA,YACA,YACA,eACA,sCAGF,yBAzBF,aA0BI,iBAIJ,kBACE,eACA,gBACA,mBAGF,cACE,kBACA,MACA,OACA,WACA,YACA,0BACA,oBCrPF,kBACE,gB3BAM,WACA,e2BEN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,e3BdQ,cAiBgB,oB2BCtB,YACA,iEAEA,aAGE,iCAGF,eACE,2BxBcF,iBACE,mBACA,cACA,eACA,aACA,gBACA,yBwBfJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,6BAGF,aACE,kBACA,W3B7CM,0B2B+CN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,wDAKE,SACE,uBAKN,WACE,aACA,sBACA,4BAEA,iBACE,c3B3DoB,a2B6DpB,YACA,mBACA,CAGE,yDAIJ,UACE,gBAIJ,qBACE,eACA,gBACA,kBACA,kBACA,WACA,aACA,2BxBzDA,iBACE,mBACA,cACA,eACA,aACA,gBACA,sBwBwDJ,WACE,sBACA,cACA,WACA,kBACA,kBACA,gBACA,kCAEA,eACE,qEAIA,cACE,MACA,gCAIJ,e3B5HM,gC2BiIR,cACE,cACA,qBACA,c3BlHwB,kB2BoHxB,UACA,mEAEA,WAEE,WACA,sBACA,CADA,gCACA,CADA,kBACA,CAIE,0HAFF,WACE,oBACA,CADA,8BACA,CADA,gB3BhJE,C2BiJF,wBAKN,UACE,CAEA,iBACA,MACA,OACA,UACA,gB3B7JM,iC2BgKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,aACA,uBACA,qCAGF,cACE,YACA,WACA,kBACA,UACA,sBACA,CADA,gCACA,CADA,kBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,qDAEA,WACE,oBACA,CADA,8BACA,CADA,gBACA,sCAIJ,0BACE,2BACA,gBACA,kBACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,c3BrK0B,eAEC,C2B+K7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,yBACE,sBACA,SACA,W3BjQM,e2BmQN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,c3B9RsB,mF2BiStB,yBAGE,wBAKN,oBACE,sBAGF,qB3B9TQ,Y2BgUN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wB3BvT0B,qB2B2T1B,iBACE,UACA,QACA,YACA,qKAKA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,qCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gB3BnZM,e2BqZN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,gCAGF,UACE,YACA,0BxB3XF,iBACE,mBACA,cACA,eACA,aACA,gBACA,qBwB0XF,eACE,gBACA,UACA,kBACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gB3BxeI,cAiBgB,gB2B0dpB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,CAGE,gUAEA,aAIE,wBAKN,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,U3B9iBE,+E2BsjBN,cAGE,gBACA,6BAGF,U3B7jBM,iB2B+jBJ,yBAGF,oBACE,aACA,mDAGF,U3BvkBM,uB2B4kBN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,W3B5nBE,sF2B+nBF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,iBCtsBR,YACE,mBACA,mBACA,kBACA,QACA,SACA,YACA,mBAGF,YACE,kBACA,gBACA,yBACA,0BACA,eACA,iBACA,yBACA,WACA,4BACA,wCAEA,uBCtBF,kB7BWa,sB6BTX,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kB7B3Ca,sB6B6CX,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,aC3FJ,cAOE,qBACA,c9BGW,2B8BVX,qBAEE,iBACA,+BAOF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mB9BHsB,4B8BOxB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,c9BLsB,c8BOtB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,a9BpC0B,mC8BuCxB,aACE,oDAGF,QACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBACA,uBAIA,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gB9B5FM,sB8B8FN,sGAEA,+BAEE,oBAKF,2BACA,gB9BxGM,0B8B2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,gCACA,c9BzGS,yB8B2GT,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,sCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gB9BpKI,mB8ByKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,c9BvKsB,mD8B0KtB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,wBC1MF,iBACE,aACA,mBACA,mB/BgBwB,cARb,kB+BLX,YACA,WACA,gBACA,iBACA,gBACA,4DAEA,aACE,eACA,mFAGF,iBACE,kBACA,gBACA,+FAEA,iBACE,OACA,MACA,kCAIJ,aACE,cACA,2BAGF,cACE,gBACA,iBACA,mBACA,2BAGF,cACE,gBACA,iBACA,gBACA,mBACA,0CAIJ,aACE,kBACA,cACA,mBACA,gCACA,eACA,qBACA,aACA,0BACA,4DAEA,aACE,iBACA,gDAGF,kB/BhDwB,iD+BoDxB,kB/BnDwB,WAlBlB,qG+B0EN,kB/BxEU,WAFJ,oC+BgFR,kBACE,YACA,eACA,iBACA,gBACA,8BAGF,aACE,UACA,kBACA,YACA,gBACA,oCAGF,iBACE,4FAGF,eAEE,mBACA,qCAGF,mCACE,UACE,cACA,0CAGF,YACE,4DAEA,YACE,kBCtHN,UhCEQ,gCgCCN,oBAEA,cACE,iBACA,gBACA,kBACA,mBAGF,UhCVM,0BgCYJ,oBAGF,eACE,cACA,iBACA,mDAGF,UACE,YACA,gBACA,gCACA,gBC3BJ,WACE,gBACA,aACA,sBACA,yBACA,kBACA,+BAEA,gBACE,eACA,CACA,2BACA,kCAGF,QACE,iCAGF,aACE,6BAGF,sBACE,0BAGF,MACE,kBACA,aACA,sBACA,iBACA,mDAGF,eACE,sBjClCI,0BiCoCJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,YACE,gBACA,gLAEA,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,CAIA,yFAGF,eACE,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WjCjNM,kBiCmNN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,mCAGF,kBAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,gCC1QJ,oBACE,gBACA,yCAEA,UACE,YACA,gBACA,iCAGF,kBACE,qBACA,4CAEA,eACE,iCAIJ,alCAwB,qBkCEtB,uCAEA,yBACE,+CAIA,oBACE,oDAEA,yBACE,gDAKN,aACE,gBAKN,kBACE,eACA,aACA,qBACA,0BAEA,WACE,cACA,qCAEA,yBAJF,YAKI,4BAIJ,wBACE,cACA,kBACA,qCAEA,0BALF,UAMI,uBAIJ,qBACE,WACA,aACA,kBACA,eACA,iBACA,qBACA,gBACA,gBACA,gBACA,aACA,sBACA,6BAEA,aACE,gBACA,mBACA,mBACA,8BAGF,iBACE,SACA,WACA,cACA,mBlCzEoB,kBkC2EpB,cACA,eACA,4BAIJ,YACE,clCpFoB,kBkCsFpB,WACA,QACA,mDAIJ,YACE,oDAGF,UACE,gBAGF,YACE,eACA,mBACA,gBACA,iBACA,wBACA,sBAEA,aACE,mBACA,SACA,kBACA,WACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,cACA,aACA,mBACA,2BACA,2CACA,6BAEA,aACE,aACA,WACA,YACA,iCAEA,aACE,SACA,WACA,YACA,eACA,gBACA,sBACA,sBACA,CADA,gCACA,CADA,kBACA,6BAIJ,aACE,cACA,eACA,gBACA,kBACA,gBACA,clClJkB,mFkCsJpB,kBAGE,4BACA,2CACA,wGAEA,aACE,6BAIJ,0BACE,2CACA,yBACA,yDAEA,aACE,uCAKN,UACE,oCAGF,WACE,8BAGF,alCrLsB,SkCuLpB,eACA,WACA,cACA,cACA,YACA,aACA,mBACA,WACA,2BACA,2CACA,2GAEA,SAGE,cACA,4BACA,2CACA,qCAKF,SACE,OCjON,eACE,eACA,8BAEA,QAEE,gBACA,UAGF,kBACE,kBACA,cAGF,iBACE,cACA,mBACA,WACA,aACA,sBAEA,kBnCFsB,emCOxB,iBACE,aACA,cACA,iBACA,eACA,gBACA,qBAEA,oBACE,qBACA,yBACA,4BACA,oEAGF,YAEE,kCAGF,aACE,gCAIA,qBACA,WACA,eACA,cnC5CO,cmC8CP,UACA,oBACA,gBnCzDE,yBmC2DF,kBACA,iBACA,sCAEA,oBnC7CoB,0BmCkDtB,cACE,wBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBnClGY,8EmCuGZ,oBAGE,iBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,cACA,cAGF,aACE,qBACA,oBAEA,cACE,eAIJ,eACE,mBACA,cnC9GoB,amCkHtB,cACE,uBACA,UACA,SACA,SACA,cnCvHoB,0BmCyHpB,kBACA,mBAEA,oBACE,sCAGF,mCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,4BACE,kBACA,gCAEA,YACE,2CAGF,4BACE,aACA,aACA,mBACA,mGAEA,UAEE,aACA,+GAEA,oBnC7KoB,sDmCmLxB,cACE,gBACA,iBACA,YACA,oBACA,cnC5KoB,sCmC+KpB,gCAGF,YACE,mBACA,8CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,cnCrNS,qBmCuNT,WACA,UACA,oBACA,qXACA,yBACA,kBACA,CACA,yBACA,mDAGF,aACE,cAIJ,anClNwB,qBmCqNtB,+BACE,6BAEA,+BACE,YCpPN,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,sBACE,eACA,gBACA,gBACA,qBACA,cpCJsB,oBoCOtB,apCLwB,0BoCOtB,6EAEA,oBAGE,wCAIJ,apClBsB,oBoCuBtB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,cpChCsB,qBoCoCxB,iBACE,cpCrCsB,uBoCyCxB,eACE,mBACA,kBACA,kBACA,yHAGF,sBAME,mBACA,oBACA,gBACA,cpCzDsB,qBoC6DxB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,cpCrIkB,iCoCyIpB,uBACE,gBACA,gBACA,cpC9HkB,qDoCkIpB,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,uBACA,eACA,iBACA,WpCpNI,iBoCsNJ,kBACA,qEAEA,aAEE,6CAIA,apC9MoB,oCoCmNtB,sBACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,sBACE,eACA,iBACA,gBACA,cpC/OkB,mBoCiPlB,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAIE,UACqB,sCjCnRzB,CiCoRI,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iBpCpOgB,wBG9DtB,4BACA,iCiCsSE,cACE,mCAEA,aACE,WpC3SA,qBoC6SA,uDAGE,yBACE,2CAKN,aACE,cpCvSgB,kCoC+StB,sBAEE,CACA,eACA,eACA,iBACA,mBACA,cpCtToB,sCoCyTpB,apCvTsB,0BoCyTpB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,sBACE,eACA,iBACA,gBACA,mBACA,cpC/UsB,wBoCkVtB,sBACE,cACA,eACA,gBACA,cACA,kBAKF,cACA,iBpC7VsB,mCoC2VxB,sBACE,CAEA,eACA,mBACA,cpChWsB,kBoCqWtB,cACA,iBpCtWsB,kBoC8WtB,cpC9WsB,mCoC6WxB,sBACE,CACA,gBACA,gBACA,mBACA,cpClXsB,kBoCuXtB,cpCvXsB,kBoC+XxB,sBACE,eACA,iBACA,gBACA,mBACA,cpCpYsB,mCoCwYxB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,2CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBpC5bW,kBoC8bT,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAMA,UACqB,sCjC9hB3B,mDiCiiBI,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA9DF,iBA+DI,mFAIJ,qBAGE,mBpCtjBS,kBoCwjBT,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,apC9kBsB,qCoCklBtB,eACE,WpCpmBE,gBoCsmBF,2CAEA,apCxlBkB,gDoC2lBhB,apC1lBkB,+CoCgmBtB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SpC1rBI,YoC4rBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,cpCpsBkB,6BoCwsBpB,eACE,iBACA,+BAGF,kBpCptBS,aoCstBP,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,sBACE,eACA,gBACA,cACA,qCAGF,cACE,cpCnvBgB,uFoCyvBtB,eACE,cASA,CpCnwBoB,2CoCgwBpB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,cpCh2BsB,qBoCk2BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,cpC11BoB,SqChCxB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBrChBW,UqCqBX,arCZwB,0BqCctB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBrCzDS,6BqC2DP,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+BACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,crC5FsB,gBqC8FtB,0DAEA,UrChHM,wDqCoHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBrCvJS,sBqCyJT,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBrCtKS,gCqCyKT,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBrC9LS,uCqCiMP,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,crC/NgB,gBqCiOhB,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,sCAEA,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBCzRN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBtCPO,YsCSP,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,StCxCA,YsC0CE,kBACA,YACA,uCAIJ,aACE,ctCjCgB,qBsCmChB,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,ctC3EgB,qBsC6EhB,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UtCzGA,yBsC2GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UtCjIE,yBAkBkB,gBsCkHlB,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,atCnMsB,esCqMpB,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,atC9MsB,esCgNpB,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,ctC1NkB,mBsC4NlB,kBACA,gCACA,4BAGF,cACE,ctCjOoB,iBsCmOpB,gBACA,0CAGF,UtCxPI,gBsC0PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WtCxQE,oBsC0QF,iBACA,gBACA,mBACA,2BAGF,cACE,iBACA,ctCjQoB,mBsCmQpB,kCAEA,UtCtRE,gBsCwRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,2CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BtCjUoB,YsCwU1B,UACE,SACA,cACA,WACA,sDAKA,atCnVsB,0DsCsVpB,atCpVsB,4DsCyVxB,atC1Wc,gBsC4WZ,4DAGF,atC9WU,gBsCgXR,0DAGF,atCvVsB,gBsCyVpB,0DAGF,atCtXU,gBsCwXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,6CAKN,aACE,mBACA,2BAGF,oBACE,ctCxZkB,qBsC0ZlB,yBACA,eACA,gBACA,gCACA,iCAEA,UtChbE,gCsCkbA,oCAGF,atCnaoB,gCsCqalB,iBAMR,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,ctC7csB,CsCkdlB,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,atC3hBwB,qBsC6hBtB,oBAEA,yBACE,SAKN,aACE,YAGF,gBACE,eACA,mBtCpjBW,gCsCsjBX,uBAEA,eACE,oBAGF,YACE,2BACA,mBACA,ctCxjBoB,esC0jBpB,eACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,atCpkBsB,sDsCwkBtB,atCrlBwB,qBsCylBtB,gBACA,yDAIJ,oBAIE,ctClmBwB,iGsCqmBxB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBtC9pBc,yBsCkqBd,yBACE,wBAGF,yBtCnqBU,wBsCwqBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,atCpqBoB,uBsC0qBpB,wBACA,qBAGF,atChqBsB,csCqqBxB,kBtC1rBa,kBsC4rBX,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,ctCzsBkB,yBsC2sBlB,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,atCvuBM,6BsC8uBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,ctC9uBgB,mLsCivBhB,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,atC/uBgB,iBsCivBd,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,ctCzwBgB,WsCgxBxB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,atC70BY,8CsCk1Bd,qBACE,aACA,WtCr1BI,csC01BR,iBACE,qBAGF,wBACE,kBACA,2BAEA,cACE,mBtC11BS,gCsC41BT,kCAEA,cACE,cACA,gBACA,eACA,gBACA,ctC31BoB,qBsC61BpB,mBACA,uHAEA,UtCj3BE,iCsCw3BJ,cACE,ctC31BkB,uCsC+1BpB,YACE,8BACA,mBACA,sCAGF,eACE,kkECp4BN,kIACE,CADF,sIACE,uIAYA,aAEE,yIAGF,aAEE,qIAGF,aAEE,6IAGF,aAEE,UChCJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,+BAGF,eACE,2EAGF,UAEE,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,+BAGF,UACE,0BAGF,gBACE,eACA,UAGA,WACA,yCAGF,iBACE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,gBACA,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,+DACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,sBChbJ,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WzCrCI,uByCuCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,czCjCoB,kByCmCpB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,azCrDwB,gByCuDtB,qBACA,0D","file":"flavours/glitch/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#192432 rgba(0,0,0,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#192432;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#1c2938}::-webkit-scrollbar-thumb:active{background:#192432}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(0,0,0,.1)}::-webkit-scrollbar-track:hover{background:#121a24}::-webkit-scrollbar-track:active{background:#121a24}::-webkit-scrollbar-corner{background:transparent}body{font-family:sans-serif,sans-serif;background:#06090c;font-size:13px;line-height:18px;font-weight:400;color:#fff;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif,sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#121a24}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.embed{background:#192432;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#0b1016;padding:0}body.error{position:absolute;text-align:center;color:#9baec8;background:#121a24;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#fff;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#fff;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:sans-serif,sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;width:40px;height:40px;background-size:40px 40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}.account-header .name{flex:1 1 auto;color:#d9e1e8;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#fff}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#26374d}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#9baec8;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#fff}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#2d415a;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#344b68}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#d9e1e8}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#000}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#192432;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;width:120px;height:120px;background-size:120px 120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #192432;background:#040609;border-radius:8%;background-position:50%;background-clip:padding-box}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#192432;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#fff;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#9baec8}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#9baec8;padding:10px;border-right:1px solid #192432;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #d8a070;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#d9e1e8}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#fff;font-family:sans-serif,sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #26374d}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#9baec8}.public-layout .public-account-header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#e1b590}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#fff}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#9baec8}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #202e3f}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #202e3f}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#121a24}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#192432}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.modal-layout{background:#121a24 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#4c6d98}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#4c6d98}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#9baec8}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#4c6d98}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#4c6d98}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#5377a5}.compact-header h1{font-size:24px;line-height:28px;color:#9baec8;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#d9e1e8}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#121a24;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.hero-widget__text a{color:#d9e1e8;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#9baec8}.box-widget{padding:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #3e5a7c;text-align:center;color:#9baec8;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#9baec8;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#d9e1e8;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#9baec8}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#9baec8;margin-bottom:10px}.page-header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#fff;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#9baec8}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#192432}.page-header h1{font-size:24px}}.directory{background:#121a24;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#121a24;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#202e3f}.directory__tag.active>a{background:#d8a070;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#9baec8}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#9baec8}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small{color:#fff}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#d8a070}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#040609;border:2px solid #121a24}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#9baec8;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #202e3f}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#fff}.accounts-table__count small{display:block;color:#9baec8;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #2d415a}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#9baec8}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#d8a070}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#0b1016;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#fff;border-bottom:1px solid #192432}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #192432}code{font-family:monospace,monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#fff;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#d8a070;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#9baec8}.simple_form .hint a{color:#d8a070}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#000}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#9baec8}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#fff;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .input.datetime .label_input select{display:inline-block;width:auto;flex:0}.simple_form .required abbr{text-decoration:none;color:#e87487}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#fff;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#fff;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #3e5a7c;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102;border:1px solid #000;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#a8b9cf}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#e87487}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#000}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#d8a070;background:#040609}.simple_form .input.field_with_errors label{color:#e87487}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#e87487}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#e87487;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#d8a070;color:#fff;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#ddad84}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#d3935c}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#e3566d}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#db2a47}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #000;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#3e5a7c;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(1, 1, 2, 0), #010102)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(18,26,36,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#fff}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#202e3f;color:#9baec8;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#9baec8;text-decoration:none}.flash-message a:hover{color:#fff;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:monospace,monospace;background:#121a24;color:#fff;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#192432}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#9baec8;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#d8a070;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#e1b590}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#9baec8}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#d9e1e8;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#d9e1e8;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#fff;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#9baec8}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#fff;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:monospace,monospace}.input-copy{background:#010102;border:1px solid #000;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:monospace,monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#0b1016;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#0b1016;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#202e3f}.card__img{height:130px;position:relative;background:#000;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#192432;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box;background:#040609;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#fff;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#121a24;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#d9e1e8}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#233346}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#9baec8;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#d9e1e8;background-color:rgba(217,225,232,.1);border:1px solid rgba(217,225,232,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#e87487;background-color:rgba(232,116,135,.1);border-color:rgba(232,116,135,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #26374d;border-bottom:1px solid #26374d;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #26374d}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#d9e1e8;background:rgba(4,6,9,.5)}.account__header__fields dd{flex:1 1 auto;color:#9baec8}.account__header__fields a{color:#d8a070;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#9baec8}.pending-account__header a{color:#d9e1e8;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#fff;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#121a24}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#202e3f}.button.logo-button{flex:0 auto;font-size:14px;background:#d8a070;color:#fff;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#fff}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#e3bb98}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{padding:8px 0;padding-bottom:2px;margin:initial;margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{position:absolute;margin:initial;float:initial;width:auto;left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}.embed .status .status__info,.public-layout .status .status__info{font-size:15px;display:initial}.embed .status .status__relative-time,.public-layout .status .status__relative-time{color:#3e5a7c;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.embed .status .status__info .status__display-name,.public-layout .status .status__info .status__display-name{display:block;max-width:100%;padding:6px 0;padding-right:25px;margin:initial}.embed .status .status__info .status__display-name .display-name strong,.public-layout .status .status__info .status__display-name .display-name strong{display:inline}.embed .status .status__avatar,.public-layout .status .status__avatar{height:48px;position:absolute;width:48px;margin:initial}.rtl .embed .status,.rtl .public-layout .status{padding-left:10px;padding-right:68px}.rtl .embed .status .status__info .status__display-name,.rtl .public-layout .status .status__info .status__display-name{padding-left:25px;padding-right:0}.rtl .embed .status .status__relative-time,.rtl .public-layout .status .status__relative-time{float:left}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#e1b590;border:0;background:transparent;padding:0;padding-top:8px;text-decoration:none}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.animated-number{display:inline-flex;flex-direction:column;align-items:stretch;overflow:hidden;position:relative}.link-button{display:block;font-size:15px;line-height:20px;color:#d8a070;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#d59864;border:10px none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;transition-property:background-color;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#e0b38c;transition:all 200ms ease-out;transition-property:background-color}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled{background-color:#9baec8;cursor:default}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#121a24;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#a8b9cf}.button.button-alternative-2{background:#3e5a7c}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#45648a}.button.button-secondary{font-size:16px;line-height:36px;height:auto;color:#9baec8;text-transform:none;background:transparent;padding:3px 15px;border-radius:4px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#a8b9cf;color:#a8b9cf}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.icon-button{display:inline-block;padding:0;color:#3e5a7c;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#4a6b94;background-color:rgba(62,90,124,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(62,90,124,.3)}.icon-button.disabled{color:#283a50;background-color:transparent;cursor:default}.icon-button.active{color:#d8a070}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#3e5a7c}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#324965;background-color:rgba(62,90,124,.15)}.icon-button.inverted:focus{background-color:rgba(62,90,124,.3)}.icon-button.inverted.disabled{color:#4a6b94;background-color:transparent}.icon-button.inverted.active{color:#d8a070}.icon-button.inverted.active.disabled{color:#e6c3a4}.icon-button.overlayed{box-sizing:content-box;background:rgba(0,0,0,.6);color:rgba(255,255,255,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(0,0,0,.9)}.text-icon-button{color:#3e5a7c;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#324965;background-color:rgba(62,90,124,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(62,90,124,.3)}.text-icon-button.disabled{color:#6b8cb5;background-color:transparent;cursor:default}.text-icon-button.active{color:#d8a070}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute;transform-origin:50% 0}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.notification__favourite-icon-wrapper{left:0;position:absolute}.notification__favourite-icon-wrapper .fa.star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#fff;text-decoration:underline}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name a{color:inherit;text-decoration:inherit}.display-name strong{height:18px;font-size:16px;font-weight:500;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name span{display:block;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name>a:hover strong{text-decoration:underline}.display-name.inline{padding:0;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.display-name.inline strong{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name.inline span{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #c0cdd9;margin:5px 7px 6px;height:0}.dropdown-menu{background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.dropdown-menu ul{list-style:none}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#d9e1e8}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#d9e1e8}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#d8a070;color:#d9e1e8;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#d8a070;color:#d9e1e8}.dropdown__icon{vertical-align:middle}.static-content{padding:10px;padding-top:20px;color:#3e5a7c}.static-content h1{font-size:16px;font-weight:500;margin-bottom:40px;text-align:center}.static-content p{font-size:13px;margin-bottom:20px}.column,.drawer{flex:1 1 100%;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#202e3f;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#fff;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #202e3f;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.auto-columns .tabs-bar__link:hover,.auto-columns .tabs-bar__link:focus,.auto-columns .tabs-bar__link:active{background:#2a3c54;border-bottom-color:#2a3c54}}.multi-columns .tabs-bar__link:hover,.multi-columns .tabs-bar__link:focus,.multi-columns .tabs-bar__link:active{background:#2a3c54;border-bottom-color:#2a3c54}.tabs-bar__link.active{border-bottom:2px solid #d8a070;color:#d8a070}.tabs-bar__link span{margin-left:5px;display:none}.tabs-bar__link span.icon{margin-left:0;display:inline}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#d8a070;border:2px solid #202e3f;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#fff}.column-link--transparent .icon-with-badge__badge{border-color:#040609}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#121a24;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#010102}.react-toggle--checked .react-toggle-track{background-color:#d8a070}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#e3bb98}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #121a24;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#d8a070}.getting-started__wrapper,.getting_started,.flex-spacer{background:#121a24}.getting-started__wrapper{position:relative;overflow-y:auto}.flex-spacer{flex:1 1 auto}.getting-started{background:#121a24;flex:1 0 auto}.getting-started p{color:#d9e1e8}.getting-started a{color:#3e5a7c}.getting-started__panel{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex:0 1 auto}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{color:#3e5a7c;font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#3e5a7c;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#9baec8}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#9baec8;padding:10px;font-weight:500;border-bottom:1px solid #202e3f}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#9baec8}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#121a24;padding:4px 8px;margin:-6px 10px}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#202e3f;border:1px solid #0b1016}.setting-text{color:#9baec8;background:transparent;border:none;border-bottom:2px solid #9baec8;box-sizing:border-box;display:block;font-family:inherit;margin-bottom:10px;padding:7px 0;width:100%}.setting-text:focus,.setting-text:active{color:#fff;border-bottom-color:#d8a070}@media screen and (max-width: 600px){.auto-columns .setting-text,.single-column .setting-text{font-size:16px}}.setting-text.light{color:#121a24;border-bottom:2px solid #405c80}.setting-text.light:focus,.setting-text.light:active{color:#121a24;border-bottom-color:#d8a070}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#3e5a7c;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#d8a070}.reduce-motion button.icon-button.disabled i.fa-retweet{color:#283a50}.load-more{display:block;color:#3e5a7c;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#151f2b}.load-gap{border-bottom:1px solid #202e3f}.missing-indicator{padding-top:68px}.scrollable>div>:first-child .notification__dismiss-overlay>.wrappy{border-top:1px solid #121a24}.notification__dismiss-overlay{overflow:hidden;position:absolute;top:0;right:0;bottom:-1px;padding-left:15px;z-index:999;align-items:center;justify-content:flex-end;cursor:pointer;display:flex}.notification__dismiss-overlay .wrappy{width:4rem;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#202e3f;border-left:1px solid #344b68;box-shadow:0 0 5px #000;border-bottom:1px solid #121a24}.notification__dismiss-overlay .ckbox{border:2px solid #9baec8;border-radius:2px;width:30px;height:30px;font-size:20px;color:#9baec8;text-shadow:0 0 5px #000;display:flex;justify-content:center;align-items:center}.notification__dismiss-overlay:focus{outline:0 !important}.notification__dismiss-overlay:focus .ckbox{box-shadow:0 0 1px 1px #d8a070}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.loading-indicator{color:#3e5a7c;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #3e5a7c;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#3e5a7c}29%{background-color:#3e5a7c}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:flex;left:4px;top:4px;width:auto;height:auto;align-items:center}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(0,0,0,.5);border-radius:8px;padding:8px 12px;color:#fff;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(0,0,0,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(0,0,0,.5)}.setting-toggle{display:block;line-height:24px}.setting-toggle__label,.setting-radio__label,.setting-meta__label{color:#9baec8;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.setting-radio{display:block;line-height:18px}.setting-radio__label{margin-bottom:0}.column-settings__row legend{color:#9baec8;cursor:default;display:block;font-weight:500;margin-top:10px}.setting-radio__input{vertical-align:middle}.setting-meta__label{float:right}@keyframes heartbeat{from{transform:scale(1);transform-origin:center center;animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.pulse-loading{animation:heartbeat 1.5s ease-in-out infinite both}.upload-area{align-items:center;background:rgba(0,0,0,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#121a24;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#d9e1e8;font-size:18px;font-weight:500;border:2px dashed #3e5a7c;border-radius:4px}.dropdown--active .emoji-button img{opacity:1;filter:none}.loading-bar{background-color:#d8a070;height:3px;position:absolute;top:0;left:0;z-index:9999}.icon-badge-wrapper{position:relative}.icon-badge{position:absolute;display:block;right:-0.25em;top:-0.25em;background-color:#d8a070;border-radius:50%;font-size:75%;width:1em;height:1em}.conversation{display:flex;border-bottom:1px solid #202e3f;padding:5px;padding-bottom:0}.conversation:focus{background:#151f2b;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative;cursor:pointer}.conversation__unread{display:inline-block;background:#d8a070;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#9baec8;padding-left:15px}.conversation__content__names{color:#9baec8;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#fff;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content .status__content{margin:0}.conversation--unread{background:#151f2b}.conversation--unread:focus{background:#192432}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#fff}.ui .flash-message{margin-top:10px;margin-left:auto;margin-right:auto;margin-bottom:0;min-width:75%}::-webkit-scrollbar-thumb{border-radius:0}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#d9e1e8;max-width:400px}noscript div a{color:#d8a070;text-decoration:underline}noscript div a:hover{text-decoration:none}noscript div a{word-break:break-word}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet,button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.status-direct button.icon-button.disabled i.fa-retweet,.status-direct button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.account{padding:10px;border-bottom:1px solid #202e3f;color:inherit;text-decoration:none}.account .account__display-name{flex:1 1 auto;display:block;color:#9baec8;overflow:hidden;text-decoration:none;font-size:14px}.account.small{border:none;padding:0}.account.small>.account__avatar-wrapper{margin:0 8px 0 0}.account.small>.display-name{height:24px;line-height:24px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:8%;background-position:50%;background-clip:padding-box;position:relative;cursor:pointer}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:8%;background-position:50%;background-clip:padding-box;overflow:hidden;position:relative}.account__avatar-composite div{border-radius:8%;background-position:50%;background-clip:padding-box;float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}.account__avatar-overlay{position:relative;width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:8%;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:8%;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__header__wrapper{flex:0 0 auto;background:#192432}.account__disclaimer{padding:10px;color:#3e5a7c}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-left:1px solid #202e3f;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab:first-child{border-left:0}.account__action-bar__tab.active{border-bottom:4px solid #d8a070}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#9baec8}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#fff}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account__action-bar__tab abbr{color:#d8a070}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.notification__message{margin-left:42px;padding:8px 0 0 26px;cursor:default;color:#9baec8;font-size:15px;position:relative}.notification__message .fa{color:#d8a070}.notification__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account--panel{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#202e3f;padding:15px}.column-settings__section{color:#9baec8;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#a8b9cf}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#192432}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#3e5a7c;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#202e3f}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#26374d;color:#a8b9cf}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#9baec8}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#3e5a7c}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#45648a}.column-settings__hashtags .column-select__indicator-separator{background-color:#202e3f}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#d9e1e8}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#9baec8;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#121a24}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#121a24;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#b9c8d5}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#fff;margin-bottom:4px;display:block;vertical-align:top;background-color:#000;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:none;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#0b1016;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#9baec8;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#d9e1e8}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #202e3f}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #121a24}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#0f151d;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #06090c}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f}.account__moved-note__message{position:relative;margin-left:58px;color:#3e5a7c;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.account__header__content{color:#9baec8;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#0b1016}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#192432;padding:5px;border-bottom:1px solid #26374d}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#040609;border:2px solid #192432}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #26374d;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#fff}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #26374d}.account__header__bio .account__header__fields a{color:#e1b590}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#9baec8;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#fff}.domain{padding:10px;border-bottom:1px solid #202e3f}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#fff;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}@keyframes spring-flip-in{0%{transform:rotate(0deg)}30%{transform:rotate(-242.4deg)}60%{transform:rotate(-158.35deg)}90%{transform:rotate(-187.5deg)}100%{transform:rotate(-180deg)}}@keyframes spring-flip-out{0%{transform:rotate(-180deg)}30%{transform:rotate(62.4deg)}60%{transform:rotate(-21.635deg)}90%{transform:rotate(7.5deg)}100%{transform:rotate(0deg)}}.status__content--with-action{cursor:pointer}.status__content{position:relative;margin:10px 0;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:visible;padding-top:5px}.status__content:focus{outline:0}.status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.status__content pre,.status__content blockquote{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.status__content pre:last-child,.status__content blockquote:last-child{margin-bottom:0}.status__content .status__content__text,.status__content .e-content{overflow:hidden}.status__content .status__content__text>ul,.status__content .status__content__text>ol,.status__content .e-content>ul,.status__content .e-content>ol{margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h1,.status__content .e-content h2,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{margin-top:20px;margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .e-content h1,.status__content .e-content h2{font-weight:700;font-size:1.2em}.status__content .status__content__text h2,.status__content .e-content h2{font-size:1.1em}.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{font-weight:500}.status__content .status__content__text blockquote,.status__content .e-content blockquote{padding-left:10px;border-left:3px solid #9baec8;color:#9baec8;white-space:normal}.status__content .status__content__text blockquote p:last-child,.status__content .e-content blockquote p:last-child{margin-bottom:0}.status__content .status__content__text b,.status__content .status__content__text strong,.status__content .e-content b,.status__content .e-content strong{font-weight:700}.status__content .status__content__text em,.status__content .status__content__text i,.status__content .e-content em,.status__content .e-content i{font-style:italic}.status__content .status__content__text sub,.status__content .e-content sub{font-size:smaller;text-align:sub}.status__content .status__content__text sup,.status__content .e-content sup{font-size:smaller;vertical-align:super}.status__content .status__content__text ul,.status__content .status__content__text ol,.status__content .e-content ul,.status__content .e-content ol{margin-left:1em}.status__content .status__content__text ul p,.status__content .status__content__text ol p,.status__content .e-content ul p,.status__content .e-content ol p{margin:0}.status__content .status__content__text ul,.status__content .e-content ul{list-style-type:disc}.status__content .status__content__text ol,.status__content .e-content ol{list-style-type:decimal}.status__content a{color:#d8a070;text-decoration:none}.status__content a:hover{text-decoration:underline}.status__content a:hover .fa{color:#4a6b94}.status__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span{text-decoration:underline}.status__content a .fa{color:#3e5a7c}.status__content .status__content__spoiler{display:none}.status__content .status__content__spoiler.status__content__spoiler--visible{display:block}.status__content a.unhandled-link{color:#e1b590}.status__content a.unhandled-link .link-origin-tag{color:#ca8f04;font-size:.8em}.status__content .status__content__spoiler-link{background:#45648a}.status__content .status__content__spoiler-link:hover{background:#4a6b94;text-decoration:none}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:#45648a;border:none;color:#121a24;font-weight:500;font-size:11px;padding:0 5px;text-transform:uppercase;line-height:inherit;cursor:pointer;vertical-align:bottom}.status__content__spoiler-link:hover{background:#4a6b94;text-decoration:none}.status__content__spoiler-link .status__content__spoiler-icon{display:inline-block;margin:0 0 0 5px;border-left:1px solid currentColor;padding:0 0 0 4px;font-size:16px;vertical-align:-2px}.notif-cleaning .status,.notif-cleaning .notification-follow,.notif-cleaning .notification-follow-request{padding-right:4.5rem}.status__wrapper--filtered{color:#3e5a7c;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #202e3f}.status__prepend-icon-wrapper{left:-26px;position:absolute}.notification-follow,.notification-follow-request{position:relative;border-bottom:1px solid #202e3f}.notification-follow .account,.notification-follow-request .account{border-bottom:0 none}.focusable:focus{outline:0;background:#192432}.focusable:focus.status.status-direct:not(.read){background:#26374d}.focusable:focus.status.status-direct:not(.read).muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#202e3f}.status{padding:10px 14px;position:relative;height:auto;border-bottom:1px solid #202e3f;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:28px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#202e3f;border-bottom-color:#26374d}.status.light .status__relative-time{color:#3e5a7c}.status.light .status__display-name{color:#121a24}.status.light .display-name{color:#9baec8}.status.light .display-name strong{color:#121a24}.status.light .status__content{color:#121a24}.status.light .status__content a{color:#d8a070}.status.light .status__content a.status__content__spoiler-link{color:#fff;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#b5c3d6}.status.collapsed{background-position:center;background-size:cover;user-select:none}.status.collapsed.has-background::before{display:block;position:absolute;left:0;right:0;top:0;bottom:0;background-image:linear-gradient(to bottom, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.65) 24px, rgba(0, 0, 0, 0.8));pointer-events:none;content:\"\"}.status.collapsed .display-name:hover .display-name__html{text-decoration:none}.status.collapsed .status__content{height:20px;overflow:hidden;text-overflow:ellipsis;padding-top:0}.status.collapsed .status__content:after{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background:linear-gradient(rgba(18, 26, 36, 0), #121a24);pointer-events:none}.status.collapsed .status__content a:hover{text-decoration:none}.status.collapsed:focus>.status__content:after{background:linear-gradient(rgba(25, 36, 50, 0), #192432)}.status.collapsed.status-direct:not(.read)>.status__content:after{background:linear-gradient(rgba(32, 46, 63, 0), #202e3f)}.status.collapsed .notification__message{margin-bottom:0}.status.collapsed .status__info .notification__message>span{white-space:nowrap}.status .notification__message{margin:-10px 0px 10px 0}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#547aa9}.status__relative-time{display:inline-block;flex-grow:1;color:#3e5a7c;font-size:14px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status__display-name{color:#3e5a7c;overflow:hidden}.status__info__account .status__display-name{display:block;max-width:100%}.status__info{display:flex;justify-content:space-between;font-size:15px}.status__info>span{text-overflow:ellipsis;overflow:hidden}.status__info .notification__message>span{word-wrap:break-word}.status__info__icons{display:flex;align-items:center;height:1em;color:#3e5a7c}.status__info__icons .status__media-icon,.status__info__icons .status__visibility-icon,.status__info__icons .status__reply-icon{padding-left:2px;padding-right:2px}.status__info__icons .status__collapse-button.active>.fa-angle-double-up{transform:rotate(-180deg)}.no-reduce-motion .status__collapse-button.activate>.fa-angle-double-up{animation:spring-flip-in 1s linear}.no-reduce-motion .status__collapse-button.deactivate>.fa-angle-double-up{animation:spring-flip-out 1s linear}.status__info__account{display:flex;align-items:center;justify-content:flex-start}.status-check-box{border-bottom:1px solid #d9e1e8;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1;overflow:hidden}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-top:-10px;margin-bottom:10px;margin-left:58px;color:#3e5a7c;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#3e5a7c}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#3e5a7c}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#192432;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#3e5a7c;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#fff}.muted .emojione{opacity:.5}a.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#d9e1e8;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#fff}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{flex:none;margin:0 10px 0 0;height:48px;width:48px}.muted .status__content,.muted .status__content p,.muted .status__content a,.muted .status__content__text{color:#3e5a7c}.muted .status__display-name strong{color:#3e5a7c}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#3e5a7c;color:#121a24}.muted a.status__content__spoiler-link:hover{background:#436187;text-decoration:none}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.status-card{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;color:#3e5a7c;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#d9e1e8;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}.status-card__actions a .fa,.status-card__actions a:hover .fa{color:inherit}a.status-card{cursor:pointer}a.status-card:hover{background:#202e3f}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#9baec8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#9baec8}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#202e3f;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#192432}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#192432}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.attachment-list{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#3e5a7c;padding:8px 18px;cursor:default;border-right:1px solid #202e3f;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#3e5a7c;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#3e5a7c}.status__wrapper--filtered__button{display:inline;color:#e1b590;border:0;background:transparent;padding:0;font-size:inherit;line-height:inherit}.status__wrapper--filtered__button:hover,.status__wrapper--filtered__button:active{text-decoration:underline}.modal-container--preloader{background:#202e3f}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.onboarding-modal,.error-modal,.embed-modal{background:#d9e1e8;color:#121a24;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.onboarding-modal__pager{height:80vh;width:80vw;max-width:520px;max-height:470px}.onboarding-modal__pager .react-swipeable-view-container>div{width:100%;height:100%;box-sizing:border-box;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;user-select:text}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}@media screen and (max-width: 550px){.onboarding-modal{width:100%;height:100%;border-radius:0}.onboarding-modal__pager{width:100%;height:auto;max-width:none;max-height:none;flex:1 1 auto}}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#c0cdd9;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#3e5a7c;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#37506f;background-color:#a6b9c9}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#121a24}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#192432}.error-modal__footer{justify-content:center}.onboarding-modal__dots{flex:1 1 auto;display:flex;align-items:center;justify-content:center}.onboarding-modal__dot{width:14px;height:14px;border-radius:14px;background:#a6b9c9;margin:0 3px;cursor:pointer}.onboarding-modal__dot:hover{background:#a0b4c5}.onboarding-modal__dot.active{cursor:default;background:#8da5ba}.onboarding-modal__page__wrapper{pointer-events:none;padding:25px;padding-bottom:0}.onboarding-modal__page__wrapper.onboarding-modal__page__wrapper--active{pointer-events:auto}.onboarding-modal__page{cursor:default;line-height:21px}.onboarding-modal__page h1{font-size:18px;font-weight:500;color:#121a24;margin-bottom:20px}.onboarding-modal__page a{color:#d8a070}.onboarding-modal__page a:hover,.onboarding-modal__page a:focus,.onboarding-modal__page a:active{color:#dcab80}.onboarding-modal__page .navigation-bar a{color:inherit}.onboarding-modal__page p{font-size:16px;color:#3e5a7c;margin-top:10px;margin-bottom:10px}.onboarding-modal__page p:last-child{margin-bottom:0}.onboarding-modal__page p strong{font-weight:500;background:#121a24;color:#d9e1e8;border-radius:4px;font-size:14px;padding:3px 6px}.onboarding-modal__page p strong:lang(ja){font-weight:700}.onboarding-modal__page p strong:lang(ko){font-weight:700}.onboarding-modal__page p strong:lang(zh-CN){font-weight:700}.onboarding-modal__page p strong:lang(zh-HK){font-weight:700}.onboarding-modal__page p strong:lang(zh-TW){font-weight:700}.onboarding-modal__page__wrapper-0{height:100%;padding:0}.onboarding-modal__page-one__lead{padding:65px;padding-top:45px;padding-bottom:0;margin-bottom:10px}.onboarding-modal__page-one__lead h1{font-size:26px;line-height:36px;margin-bottom:8px}.onboarding-modal__page-one__lead p{margin-bottom:0}.onboarding-modal__page-one__extra{padding-right:65px;padding-left:185px;text-align:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#121a24;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#121a24;color:#d9e1e8;font-weight:500;padding:10px;border-radius:4px}.onboarding-modal__page-two p,.onboarding-modal__page-three p,.onboarding-modal__page-four p,.onboarding-modal__page-five p{text-align:left}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{background:#040609;color:#d9e1e8;margin-bottom:20px;border-radius:4px;padding:10px;text-align:center;font-size:14px;box-shadow:1px 2px 6px rgba(0,0,0,.3)}.onboarding-modal__page-two .figure .onboarding-modal__image,.onboarding-modal__page-three .figure .onboarding-modal__image,.onboarding-modal__page-four .figure .onboarding-modal__image,.onboarding-modal__page-five .figure .onboarding-modal__image{border-radius:4px;margin-bottom:10px}.onboarding-modal__page-two .figure.non-interactive,.onboarding-modal__page-three .figure.non-interactive,.onboarding-modal__page-four .figure.non-interactive,.onboarding-modal__page-five .figure.non-interactive{pointer-events:none;text-align:left}.onboarding-modal__page-four__columns .row{display:flex;margin-bottom:20px}.onboarding-modal__page-four__columns .row>div{flex:1 1 0;margin:0 10px}.onboarding-modal__page-four__columns .row>div:first-child{margin-left:0}.onboarding-modal__page-four__columns .row>div:last-child{margin-right:0}.onboarding-modal__page-four__columns .row>div p{text-align:center}.onboarding-modal__page-four__columns .row:last-child{margin-bottom:0}.onboarding-modal__page-four__columns .column-header{color:#fff}@media screen and (max-width: 320px)and (max-height: 600px){.onboarding-modal__page p{font-size:14px;line-height:20px}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{font-size:12px;margin-bottom:10px}.onboarding-modal__page-four__columns .row{margin-bottom:10px}.onboarding-modal__page-four__columns .column-header{padding:5px;font-size:12px}}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.doodle-modal,.favourite-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#f2f5f7;color:#121a24;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__relative-time,.doodle-modal .status__relative-time,.favourite-modal .status__relative-time,.confirmation-modal .status__relative-time,.report-modal .status__relative-time,.actions-modal .status__relative-time,.mute-modal .status__relative-time,.block-modal .status__relative-time{color:#3e5a7c;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.boost-modal .status__display-name,.doodle-modal .status__display-name,.favourite-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:flex}.boost-modal .status__avatar,.doodle-modal .status__avatar,.favourite-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:48px;width:48px}.boost-modal .status__content__spoiler-link,.doodle-modal .status__content__spoiler-link,.favourite-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#f2f5f7}.actions-modal .status{background:#fff;border-bottom-color:#d9e1e8;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#d9e1e8}.boost-modal__container,.favourite-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status,.favourite-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.doodle-modal__action-bar,.favourite-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#d9e1e8;padding:10px;line-height:36px}.boost-modal__action-bar>div,.doodle-modal__action-bar>div,.favourite-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#3e5a7c;padding-right:10px}.boost-modal__action-bar .button,.doodle-modal__action-bar .button,.favourite-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header,.favourite-modal__status-header{font-size:15px}.boost-modal__status-time,.favourite-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #d9e1e8}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#d8a070}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #d9e1e8;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #d9e1e8;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #c0cdd9}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #d9e1e8;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#121a24;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#121a24;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal strong{display:block;font-weight:500}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#121a24;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#d8a070;color:#fff}.actions-modal ul li:not(:empty) a>.react-toggle,.actions-modal ul li:not(:empty) a>.icon,.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#3e5a7c;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#37506f;background-color:transparent}.confirmation-modal__do_not_ask_again{padding-left:20px;padding-right:20px;padding-bottom:10px;font-size:14px}.confirmation-modal__do_not_ask_again label,.confirmation-modal__do_not_ask_again input{vertical-align:middle}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#121a24;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#121a24;color:#fff;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#192432}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#fff;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.filtered-status-info{text-align:start}.filtered-status-info .spoiler__text{margin-top:20px}.filtered-status-info .account{border-bottom:0}.filtered-status-info .account__display-name strong{color:#121a24}.filtered-status-info .status__content__spoiler{display:none}.filtered-status-info .status__content__spoiler--visible{display:flex}.filtered-status-info ul{padding:10px;margin-left:12px;list-style:disc inside}.filtered-status-info .filtered-status-edit-link{color:#3e5a7c;text-decoration:none}.filtered-status-info .filtered-status-edit-link:hover{text-decoration:underline}.composer{padding:10px}.composer .emoji-picker-dropdown{position:absolute;top:0;right:0}.composer .emoji-picker-dropdown ::-webkit-scrollbar-track:hover,.composer .emoji-picker-dropdown ::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.character-counter{cursor:default;font-family:sans-serif,sans-serif;font-size:14px;font-weight:600;color:#3e5a7c}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .composer--spoiler{transition:height .4s ease,opacity .4s ease}.composer--spoiler{height:0;transform-origin:bottom;opacity:0}.composer--spoiler.composer--spoiler--visible{height:36px;margin-bottom:11px;opacity:1}.composer--spoiler input{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px;padding:10px;width:100%;outline:0;color:#121a24;background:#fff;font-size:14px;font-family:inherit;resize:vertical}.composer--spoiler input::placeholder{color:#3e5a7c}.composer--spoiler input:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .composer--spoiler input{font-size:16px}}.single-column .composer--spoiler input{font-size:16px}.composer--warning{color:#121a24;margin-bottom:15px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.composer--warning a{color:#3e5a7c;font-weight:500;text-decoration:underline}.composer--warning a:active,.composer--warning a:focus,.composer--warning a:hover{text-decoration:none}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#d8a070}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-left:5px;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#d8a070;background:#d8a070}.composer--reply{margin:0 0 10px;border-radius:4px;padding:10px;background:#9baec8;min-height:23px;overflow-y:auto;flex:0 2 auto}.composer--reply>header{margin-bottom:5px;overflow:hidden}.composer--reply>header>.account.small{color:#121a24}.composer--reply>header>.cancel{float:right;line-height:24px}.composer--reply>.content{position:relative;margin:10px 0;padding:0 12px;font-size:14px;line-height:20px;color:#121a24;word-wrap:break-word;font-weight:400;overflow:visible;white-space:pre-wrap;padding-top:5px;overflow:hidden}.composer--reply>.content p,.composer--reply>.content pre,.composer--reply>.content blockquote{margin-bottom:20px;white-space:pre-wrap}.composer--reply>.content p:last-child,.composer--reply>.content pre:last-child,.composer--reply>.content blockquote:last-child{margin-bottom:0}.composer--reply>.content h1,.composer--reply>.content h2,.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{margin-top:20px;margin-bottom:20px}.composer--reply>.content h1,.composer--reply>.content h2{font-weight:700;font-size:18px}.composer--reply>.content h2{font-size:16px}.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{font-weight:500}.composer--reply>.content blockquote{padding-left:10px;border-left:3px solid #121a24;color:#121a24;white-space:normal}.composer--reply>.content blockquote p:last-child{margin-bottom:0}.composer--reply>.content b,.composer--reply>.content strong{font-weight:700}.composer--reply>.content em,.composer--reply>.content i{font-style:italic}.composer--reply>.content sub{font-size:smaller;text-align:sub}.composer--reply>.content ul,.composer--reply>.content ol{margin-left:1em}.composer--reply>.content ul p,.composer--reply>.content ol p{margin:0}.composer--reply>.content ul{list-style-type:disc}.composer--reply>.content ol{list-style-type:decimal}.composer--reply>.content a{color:#3e5a7c;text-decoration:none}.composer--reply>.content a:hover{text-decoration:underline}.composer--reply>.content a.mention:hover{text-decoration:none}.composer--reply>.content a.mention:hover span{text-decoration:underline}.composer--reply .emojione{width:20px;height:20px;margin:-5px 0 0}.compose-form__autosuggest-wrapper,.autosuggest-input{position:relative;width:100%}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.autosuggest-input label .autosuggest-textarea__textarea{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px 4px 0 0;padding:10px 32px 0 10px;width:100%;min-height:100px;outline:0;color:#121a24;background:#fff;font-size:14px;font-family:inherit;resize:none;scrollbar-color:initial}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::placeholder,.autosuggest-input label .autosuggest-textarea__textarea::placeholder{color:#3e5a7c}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::-webkit-scrollbar,.autosuggest-input label .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:disabled,.autosuggest-input label .autosuggest-textarea__textarea:disabled{background:#d9e1e8}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:focus,.autosuggest-input label .autosuggest-textarea__textarea:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}}.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}@media screen and (max-width: 600px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.composer--textarea--icons{display:block;position:absolute;top:29px;right:5px;bottom:5px;overflow:hidden}.composer--textarea--icons>.textarea_icon{display:block;margin:2px 0 0 2px;width:24px;height:24px;color:#3e5a7c;font-size:18px;line-height:24px;text-align:center;opacity:.8}.autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.autosuggest-textarea__suggestions{display:block;position:absolute;box-sizing:border-box;top:100%;border-radius:0 0 4px 4px;padding:6px;width:100%;color:#121a24;background:#d9e1e8;box-shadow:4px 4px 6px rgba(0,0,0,.4);font-size:14px;z-index:99;display:none}.autosuggest-textarea__suggestions--visible{display:block}.autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.autosuggest-textarea__suggestions__item:hover,.autosuggest-textarea__suggestions__item:focus,.autosuggest-textarea__suggestions__item:active,.autosuggest-textarea__suggestions__item.selected{background:#b9c8d5}.autosuggest-textarea__suggestions__item>.account,.autosuggest-textarea__suggestions__item>.emoji,.autosuggest-textarea__suggestions__item>.autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.autosuggest-textarea__suggestions__item .autosuggest-hashtag{justify-content:space-between}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item .autosuggest-hashtag strong{font-weight:500}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item>.account.small .display-name>span{color:#3e5a7c}.composer--upload_form{overflow:hidden}.composer--upload_form>.content{display:flex;flex-direction:row;flex-wrap:wrap;font-family:inherit;padding:5px;overflow:hidden}.composer--upload_form--item{flex:1 1 0;margin:5px;min-width:40%}.composer--upload_form--item>div{position:relative;border-radius:4px;height:140px;width:100%;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;overflow:hidden}.composer--upload_form--item>div textarea{display:block;position:absolute;box-sizing:border-box;bottom:0;left:0;margin:0;border:0;padding:10px;width:100%;color:#d9e1e8;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);font-size:14px;font-family:inherit;font-weight:500;opacity:0;z-index:2;transition:opacity .1s ease}.composer--upload_form--item>div textarea:focus{color:#fff}.composer--upload_form--item>div textarea::placeholder{opacity:.54;color:#d9e1e8}.composer--upload_form--item>div>.close{mix-blend-mode:difference}.composer--upload_form--item.active>div textarea{opacity:1}.composer--upload_form--actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.composer--upload_form--actions .icon-button{flex:0 1 auto;color:#d9e1e8;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.composer--upload_form--actions .icon-button:hover,.composer--upload_form--actions .icon-button:focus,.composer--upload_form--actions .icon-button:active{color:#e6ebf0}.composer--upload_form--actions.active{opacity:1}.composer--upload_form--progress{display:flex;padding:10px;color:#9baec8;overflow:hidden}.composer--upload_form--progress>.fa{font-size:34px;margin-right:10px}.composer--upload_form--progress>.message{flex:1 1 auto}.composer--upload_form--progress>.message>span{display:block;font-size:12px;font-weight:500;text-transform:uppercase}.composer--upload_form--progress>.message>.backdrop{position:relative;margin-top:5px;border-radius:6px;width:100%;height:6px;background:#3e5a7c}.composer--upload_form--progress>.message>.backdrop>.tracker{position:absolute;top:0;left:0;height:6px;border-radius:6px;background:#d8a070}.compose-form__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.composer--options-wrapper{padding:10px;background:#ebebeb;border-radius:0 0 4px 4px;height:27px;display:flex;justify-content:space-between;flex:0 0 auto}.composer--options{display:flex;flex:0 0 auto}.composer--options>*{display:inline-block;box-sizing:content-box;padding:0 3px;height:27px;line-height:27px;vertical-align:bottom}.composer--options>hr{display:inline-block;margin:0 3px;border-width:0 0 0 1px;border-style:none none none solid;border-color:transparent transparent transparent #c2c2c2;padding:0;width:0;height:27px;background:transparent}.compose--counter-wrapper{align-self:center;margin-right:4px}.composer--options--dropdown.open>.value{border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1);color:#fff;background:#d8a070;transition:none}.composer--options--dropdown.open.top>.value{border-radius:0 0 4px 4px;box-shadow:0 4px 4px rgba(0,0,0,.1)}.composer--options--dropdown--content{position:absolute;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);background:#fff;overflow:hidden;transform-origin:50% 0}.composer--options--dropdown--content--item{display:flex;align-items:center;padding:10px;color:#121a24;cursor:pointer}.composer--options--dropdown--content--item>.content{flex:1 1 auto;color:#3e5a7c}.composer--options--dropdown--content--item>.content:not(:first-child){margin-left:10px}.composer--options--dropdown--content--item>.content strong{display:block;color:#121a24;font-weight:500}.composer--options--dropdown--content--item:hover,.composer--options--dropdown--content--item.active{background:#d8a070;color:#fff}.composer--options--dropdown--content--item:hover>.content,.composer--options--dropdown--content--item.active>.content{color:#fff}.composer--options--dropdown--content--item:hover>.content strong,.composer--options--dropdown--content--item.active>.content strong{color:#fff}.composer--options--dropdown--content--item.active:hover{background:#dcab80}.composer--publisher{padding-top:10px;text-align:right;white-space:nowrap;overflow:hidden;justify-content:flex-end;flex:0 0 auto}.composer--publisher>.primary{display:inline-block;margin:0;padding:0 10px;text-align:center}.composer--publisher>.side_arm{display:inline-block;margin:0 2px;padding:0;width:36px;text-align:center}.composer--publisher.over>.count{color:#ff5050}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#040609;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#121a24}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.column{overflow:hidden}.column-back-button{box-sizing:border-box;width:100%;background:#192432;color:#d8a070;cursor:pointer;flex:0 0 auto;font-size:16px;border:0;text-align:unset;padding:15px;margin:0;z-index:3}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#192432;border:0;font-family:inherit;color:#d8a070;cursor:pointer;flex:0 0 auto;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.column-link{background:#202e3f;color:#fff;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#253549}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#d9e1e8}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#fff}.column-link--transparent.active{color:#d8a070}.column-link__icon{display:inline-block;margin-right:5px}.column-subheading{background:#121a24;color:#3e5a7c;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.column-header__wrapper{position:relative;flex:0 0 auto;z-index:1}.column-header__wrapper.active{box-shadow:0 1px 0 rgba(216,160,112,.3)}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;bottom:-13px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(216, 160, 112, 0.23) 0%, rgba(216, 160, 112, 0) 60%)}.column-header__wrapper .announcements{z-index:1;position:relative}.column-header{display:flex;font-size:16px;background:#192432;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden}.column-header>button{margin:0;border:none;padding:15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#d8a070}.column-header.active .column-header__icon{color:#d8a070;text-shadow:0 0 10px rgba(216,160,112,.4)}.column-header:focus,.column-header:active{outline:0}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.wide .columns-area:not(.columns-area--mobile) .column{flex:auto;min-width:330px;max-width:400px}.column>.scrollable{background:#121a24}.column-header__buttons{height:48px;display:flex;margin-left:0}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button,.column-header__notif-cleaning-buttons button{background:#192432;border:0;color:#9baec8;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover,.column-header__notif-cleaning-buttons button:hover{color:#b2c1d5}.column-header__button.active,.column-header__notif-cleaning-buttons button.active{color:#fff;background:#202e3f}.column-header__button.active:hover,.column-header__notif-cleaning-buttons button.active:hover{color:#fff;background:#202e3f}.column-header__button:focus,.column-header__notif-cleaning-buttons button:focus{text-shadow:0 0 4px #d3935c}.column-header__notif-cleaning-buttons{display:flex;align-items:stretch;justify-content:space-around}.column-header__notif-cleaning-buttons button{background:transparent;text-align:center;padding:10px 0;white-space:pre-wrap}.column-header__notif-cleaning-buttons b{font-weight:bold}.column-header__collapsible-inner.nopad-drawer{padding:0}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#9baec8;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1;z-index:1;position:relative}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #26374d;margin:10px 0}.column-header__collapsible.ncd{transition:none}.column-header__collapsible.ncd.collapsed{max-height:0;opacity:.7}.column-header__collapsible-inner{background:#202e3f;padding:15px}.column-header__setting-btn:hover{color:#9baec8;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.column-header__title{display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header__icon{display:inline-block;margin-right:5px}.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{color:#3e5a7c;background:#121a24;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{contain:strict}}.empty-column-indicator>span,.error-column>span,.follow_requests-unlocked_explanation>span{max-width:400px}.empty-column-indicator a,.error-column a,.follow_requests-unlocked_explanation a{color:#d8a070;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover,.follow_requests-unlocked_explanation a:hover{text-decoration:underline}.follow_requests-unlocked_explanation{background:#0b1016;contain:initial}.error-column{flex-direction:column}.single-column.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}@media screen and (max-width: 415px){.auto-columns.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}}@media screen and (max-width: 415px){.auto-columns.navbar-under .react-swipeable-view-container .columns-area,.single-column.navbar-under .react-swipeable-view-container .columns-area{height:100% !important}}.column-inline-form{padding:7px 15px;padding-right:5px;display:flex;justify-content:flex-start;align-items:center;background:#192432}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%;margin-bottom:6px}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 5px}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#3e5a7c;background:#121a24;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#3e5a7c}.regeneration-indicator__label span{font-size:15px;font-weight:400}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#000;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#192432;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#040609;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#121a24;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #202e3f;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.filter-form{background:#121a24}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#e1b590;background:#e1b590}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#a8b9cf}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#192432}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:color,transform,opacity;font-size:18px;width:18px;height:18px;color:#d9e1e8;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(0deg)}.search__icon .fa-search.active{pointer-events:auto;opacity:.3}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#3e5a7c;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#4a6b94}.search-results__header{color:#3e5a7c;background:#151f2b;border-bottom:1px solid #0b1016;padding:15px 10px;font-size:14px;font-weight:500}.search-results__info{padding:20px;color:#9baec8;text-align:center}.trends__header{color:#3e5a7c;background:#151f2b;border-bottom:1px solid #0b1016;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #202e3f}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#3e5a7c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#9baec8;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#d9e1e8}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(216,160,112,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#dfb088 !important}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(217,225,232,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.emoji-button{display:block;padding:5px 5px 2px 2px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.doodle-modal{width:unset}.doodle-modal__container{background:#d9e1e8;text-align:center;line-height:0}.doodle-modal__container canvas{border:5px solid #d9e1e8}.doodle-modal__action-bar .filler{flex-grow:1;margin:0;padding:0}.doodle-modal__action-bar .doodle-toolbar{line-height:1;display:flex;flex-direction:column;flex-grow:0;justify-content:space-around}.doodle-modal__action-bar .doodle-toolbar.with-inputs label{display:inline-block;width:70px;text-align:right;margin-right:2px}.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=number],.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=text]{width:40px}.doodle-modal__action-bar .doodle-toolbar.with-inputs span.val{display:inline-block;text-align:left;width:50px}.doodle-modal__action-bar .doodle-palette{padding-right:0 !important;border:1px solid #000;line-height:.2rem;flex-grow:0;background:#fff}.doodle-modal__action-bar .doodle-palette button{appearance:none;width:1rem;height:1rem;margin:0;padding:0;text-align:center;color:#000;text-shadow:0 0 1px #fff;cursor:pointer;box-shadow:inset 0 0 1px rgba(255,255,255,.5);border:1px solid #000;outline-offset:-1px}.doodle-modal__action-bar .doodle-palette button.foreground{outline:1px dashed #fff}.doodle-modal__action-bar .doodle-palette button.background{outline:1px dashed red}.doodle-modal__action-bar .doodle-palette button.foreground.background{outline:1px dashed red;border-color:#fff}.drawer{width:300px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden;padding:10px 5px;flex:none}.drawer:first-child{padding-left:10px}.drawer:last-child{padding-right:10px}@media screen and (max-width: 630px){.auto-columns .drawer{flex:auto}}.single-column .drawer{flex:auto}@media screen and (max-width: 630px){.auto-columns .drawer,.auto-columns .drawer:first-child,.auto-columns .drawer:last-child,.single-column .drawer,.single-column .drawer:first-child,.single-column .drawer:last-child{padding:0}}.wide .drawer{min-width:300px;max-width:400px;flex:1 1 200px}@media screen and (max-width: 630px){:root .auto-columns .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}}:root .single-column .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}.react-swipeable-view-container .drawer{height:100%}.drawer--header{display:flex;flex-direction:row;margin-bottom:10px;flex:none;background:#202e3f;font-size:16px}.drawer--header>*{display:block;box-sizing:border-box;border-bottom:2px solid transparent;padding:15px 5px 13px;height:48px;flex:1 1 auto;color:#9baec8;text-align:center;text-decoration:none;cursor:pointer}.drawer--header a{transition:background 100ms ease-in}.drawer--header a:focus,.drawer--header a:hover{outline:none;background:#17212e;transition:background 200ms ease-out}.search{position:relative;margin-bottom:10px;flex:none}@media screen and (max-width: 415px){.auto-columns .search,.single-column .search{margin-bottom:0}}@media screen and (max-width: 630px){.auto-columns .search{font-size:16px}}.single-column .search{font-size:16px}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#9baec8;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#121a24}.drawer--account{padding:10px;color:#9baec8;display:flex;align-items:center}.drawer--account a{color:inherit;text-decoration:none}.drawer--account .acct{display:block;color:#d9e1e8;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;overflow:hidden}.drawer--results{background:#121a24;overflow-x:hidden;overflow-y:auto}.drawer--results>header{color:#3e5a7c;background:#151f2b;padding:15px;font-weight:500;font-size:16px;cursor:default}.drawer--results>header .fa{display:inline-block;margin-right:5px}.drawer--results>section{margin-bottom:5px}.drawer--results>section h5{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#3e5a7c}.drawer--results>section h5 .fa{display:inline-block;margin-right:5px}.drawer--results>section .account:last-child,.drawer--results>section>div:last-child .status{border-bottom:0}.drawer--results>section>.hashtag{display:block;padding:10px;color:#d9e1e8;text-decoration:none}.drawer--results>section>.hashtag:hover,.drawer--results>section>.hashtag:active,.drawer--results>section>.hashtag:focus{color:#e6ebf0;text-decoration:underline}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#283a50;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%}.drawer__inner.darker{background:#121a24}.drawer__inner__mastodon{background:#283a50 url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:85%;height:100%;pointer-events:none;user-drag:none;user-select:none}.drawer__inner__mastodon>.mastodon{display:block;width:100%;height:100%;border:none;cursor:inherit}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#283a50;font-size:13px;text-align:left}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.video-error-cover{align-items:center;background:#000;color:#fff;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#000;color:#9baec8;border:0;width:100%;height:100%}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{color:#b5c3d6}.status__content>.media-spoiler{margin-top:15px}.media-spoiler.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:500}.media-gallery__gifv__label{display:block;position:absolute;color:#fff;background:rgba(0,0,0,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{height:100%;display:flex;flex-direction:column}.media-gallery__audio span{text-align:center;color:#9baec8;display:flex;height:100%;align-items:center}.media-gallery__audio span p{width:100%}.media-gallery__audio audio{width:100%}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%;height:110px}.media-gallery.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-gallery__item{border:none;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.full-width .media-gallery__item{border-radius:0}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item.letterbox{background:#000}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#d9e1e8;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%;object-fit:contain}.media-gallery__item-thumbnail:not(.letterbox),.media-gallery__item-thumbnail img:not(.letterbox){height:100%;object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#000}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%;display:flex;justify-content:center}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;width:100%;position:relative;z-index:1;object-fit:contain;user-select:none}.media-gallery__item-gifv-thumbnail:not(.letterbox){height:100%;object-fit:cover}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(0,0,0,.5);box-sizing:border-box;border:0;color:#fff;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#d9e1e8}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#d8a070}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#040609;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #192432;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(225,181,144,.5)}.audio-player__wave-placeholder{background-color:#2d415a}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#040609;border-top:1px solid #192432;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.detailed-status .video-player{width:100%;height:100%}.video-player.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.video-player video{max-width:100vw;max-height:80vh;z-index:1;position:relative}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#9baec8;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#b2c1d5}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons-bar .video-player__download__icon .fa,.video-player__buttons-bar .video-player__download__icon:active .fa,.video-player__buttons-bar .video-player__download__icon:hover .fa,.video-player__buttons-bar .video-player__download__icon:focus .fa{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#e1b590}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#e1b590;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#e1b590}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#e1b590;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.sensitive-info{display:flex;flex-direction:row;align-items:center;position:absolute;top:4px;left:4px;z-index:100}.sensitive-marker{margin:0 3px;border-radius:2px;padding:2px 6px;color:rgba(255,255,255,.8);background:rgba(0,0,0,.5);font-size:12px;line-height:18px;text-transform:uppercase;opacity:.9;transition:opacity .1s ease}.media-gallery:hover .sensitive-marker{opacity:1}.list-editor{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#283a50;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#283a50}.list-adder__lists{background:#283a50;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #202e3f}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.emoji-mart{font-size:13px;display:inline-block;color:#121a24}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #c0cdd9}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#d9e1e8}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#3e5a7c;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#37506f}.emoji-mart-anchor-selected{color:#d8a070}.emoji-mart-anchor-selected:hover{color:#d49560}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:0}.emoji-mart-anchor-bar{position:absolute;bottom:-3px;left:0;width:100%;height:3px;background-color:#d59864}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(217,225,232,.3);color:#121a24;border:1px solid #d9e1e8;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(217,225,232,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#9baec8}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.glitch.local-settings{position:relative;display:flex;flex-direction:row;background:#d9e1e8;color:#121a24;border-radius:8px;height:80vh;width:80vw;max-width:740px;max-height:450px;overflow:hidden}.glitch.local-settings label,.glitch.local-settings legend{display:block;font-size:14px}.glitch.local-settings .boolean label,.glitch.local-settings .radio_buttons label{position:relative;padding-left:28px;padding-top:3px}.glitch.local-settings .boolean label input,.glitch.local-settings .radio_buttons label input{position:absolute;left:0;top:0}.glitch.local-settings span.hint{display:block;color:#3e5a7c}.glitch.local-settings h1{font-size:18px;font-weight:500;line-height:24px;margin-bottom:20px}.glitch.local-settings h2{font-size:15px;font-weight:500;line-height:20px;margin-top:20px;margin-bottom:10px}.glitch.local-settings__navigation__item{display:block;padding:15px 20px;color:inherit;background:#f2f5f7;border-bottom:1px #d9e1e8 solid;cursor:pointer;text-decoration:none;outline:none;transition:background .3s}.glitch.local-settings__navigation__item .text-icon-button{color:inherit;transition:unset}.glitch.local-settings__navigation__item:hover{background:#d9e1e8}.glitch.local-settings__navigation__item.active{background:#d8a070;color:#fff}.glitch.local-settings__navigation__item.close,.glitch.local-settings__navigation__item.close:hover{background:#df405a;color:#fff}.glitch.local-settings__navigation{background:#f2f5f7;width:212px;font-size:15px;line-height:20px;overflow-y:auto}.glitch.local-settings__page{display:block;flex:auto;padding:15px 20px 15px 20px;width:360px;overflow-y:auto}.glitch.local-settings__page__item{margin-bottom:2px}.glitch.local-settings__page__item.string,.glitch.local-settings__page__item.radio_buttons{margin-top:10px;margin-bottom:10px}@media screen and (max-width: 630px){.glitch.local-settings__navigation{width:40px;flex-shrink:0}.glitch.local-settings__navigation__item{padding:10px}.glitch.local-settings__navigation__item span:last-of-type{display:none}}.error-boundary{color:#fff;font-size:15px;line-height:20px}.error-boundary h1{font-size:26px;line-height:36px;font-weight:400;margin-bottom:8px}.error-boundary a{color:#fff;text-decoration:underline}.error-boundary ul{list-style:disc;margin-left:0;padding-left:1em}.error-boundary textarea.web_app_crash-stacktrace{width:100%;resize:none;white-space:pre;font-family:monospace,monospace}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.compose-panel .search__icon .fa{top:15px}.compose-panel .drawer--account{flex:0 1 48px}.compose-panel .flex-spacer{background:transparent}.compose-panel .composer{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #192432;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px;min-height:50px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{padding-top:15px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#d59864;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#e0b38c}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.search{margin-bottom:10px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.announcements__item__content{word-wrap:break-word;overflow-y:auto}.announcements__item__content .emojione{width:20px;height:20px;margin:-3px 0 0}.announcements__item__content p{margin-bottom:10px;white-space:pre-wrap}.announcements__item__content p:last-child{margin-bottom:0}.announcements__item__content a{color:#d9e1e8;text-decoration:none}.announcements__item__content a:hover{text-decoration:underline}.announcements__item__content a.mention:hover{text-decoration:none}.announcements__item__content a.mention:hover span{text-decoration:underline}.announcements__item__content a.unhandled-link{color:#e1b590}.announcements{background:#202e3f;font-size:13px;display:flex;align-items:flex-end}.announcements__mastodon{width:124px;flex:0 0 auto}@media screen and (max-width: 424px){.announcements__mastodon{display:none}}.announcements__container{width:calc(100% - 124px);flex:0 0 auto;position:relative}@media screen and (max-width: 424px){.announcements__container{width:100%}}.announcements__item{box-sizing:border-box;width:100%;padding:15px;position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;max-height:50vh;overflow:hidden;display:flex;flex-direction:column}.announcements__item__range{display:block;font-weight:500;margin-bottom:10px;padding-right:18px}.announcements__item__unread{position:absolute;top:19px;right:19px;display:block;background:#d8a070;border-radius:50%;width:.625rem;height:.625rem}.announcements__pagination{padding:15px;color:#9baec8;position:absolute;bottom:3px;right:0}.layout-multiple-columns .announcements__mastodon{display:none}.layout-multiple-columns .announcements__container{width:100%}.reactions-bar{display:flex;flex-wrap:wrap;align-items:center;margin-top:15px;margin-left:-2px;width:calc(100% - (90px - 33px))}.reactions-bar__item{flex-shrink:0;background:#26374d;border:0;border-radius:3px;margin:2px;cursor:pointer;user-select:none;padding:0 6px;display:flex;align-items:center;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar__item__emoji{display:block;margin:3px 0;width:16px;height:16px}.reactions-bar__item__emoji img{display:block;margin:0;width:100%;height:100%;min-width:auto;min-height:auto;vertical-align:bottom;object-fit:contain}.reactions-bar__item__count{display:block;min-width:9px;font-size:13px;font-weight:500;text-align:center;margin-left:6px;color:#9baec8}.reactions-bar__item:hover,.reactions-bar__item:focus,.reactions-bar__item:active{background:#2d415a;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar__item:hover__count,.reactions-bar__item:focus__count,.reactions-bar__item:active__count{color:#a8b9cf}.reactions-bar__item.active{transition:all 100ms ease-in;transition-property:background-color,color;background-color:#4a4c54}.reactions-bar__item.active .reactions-bar__item__count{color:#e1b590}.reactions-bar .emoji-picker-dropdown{margin:2px}.reactions-bar:hover .emoji-button{opacity:.85}.reactions-bar .emoji-button{color:#9baec8;margin:0;font-size:16px;width:auto;flex-shrink:0;padding:0 6px;height:22px;display:flex;align-items:center;opacity:.5;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar .emoji-button:hover,.reactions-bar .emoji-button:active,.reactions-bar .emoji-button:focus{opacity:1;color:#a8b9cf;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar--empty .emoji-button{padding:0}.poll{margin-top:16px;font-size:14px}.poll ul,.e-content .poll ul{margin:0;list-style:none}.poll li{margin-bottom:10px;position:relative}.poll__chart{border-radius:4px;display:block;background:#8ba1bf;height:5px;min-width:1%}.poll__chart.leading{background:#d8a070}.poll__option{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__option__text{display:inline-block;word-wrap:break-word;overflow-wrap:break-word;max-width:calc(100% - 45px - 25px)}.poll__option input[type=radio],.poll__option input[type=checkbox]{display:none}.poll__option .autossugest-input{flex:1 1 auto}.poll__option input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#121a24;display:block;outline:0;font-family:inherit;background:#fff;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px}.poll__option input[type=text]:focus{border-color:#d8a070}.poll__option.selectable{cursor:pointer}.poll__option.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-color:#acd6c1;border-width:4px}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:45px;font-weight:700;flex:0 0 45px}.poll__voted{padding:0 5px;display:inline-block}.poll__voted__mark{font-size:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#3e5a7c}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#3e5a7c;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(62,90,124,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #ebebeb;overflow-x:hidden}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #ebebeb;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{width:100%;flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#d8a070}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#3e5a7c;border-color:#3e5a7c;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__option{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#121a24;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#dbdbdb}.muted .poll{color:#3e5a7c}.muted .poll__chart{background:rgba(109,137,175,.2)}.muted .poll__chart.leading{background:rgba(216,160,112,.2)}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:sans-serif,sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#9baec8}.rich-formatting a{color:#d8a070;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#9baec8}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#d9e1e8}.rich-formatting em{font-style:italic;color:#d9e1e8}.rich-formatting code{font-size:.85em;background:#040609;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:sans-serif,sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#d9e1e8}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #192432;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #192432;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#9baec8}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#3e5a7c}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#0b1016;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:sans-serif,sans-serif;font-size:16px;line-height:28px;color:#fff;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#d9e1e8}.information-board__section strong{font-family:sans-serif,sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#040609;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#9baec8;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #192432;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#7a93b6}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;width:80px;height:80px;background-size:80px 80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px;border-radius:8%;background-position:50%;background-clip:padding-box}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#fff;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#9baec8}.landing-page p,.landing-page li{font-family:sans-serif,sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#9baec8}.landing-page p a,.landing-page li a{color:#d8a070;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.landing-page h1{font-family:sans-serif,sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h1 small{font-family:sans-serif,sans-serif;display:block;font-size:18px;font-weight:400;color:#bcc9da}.landing-page h2{font-family:sans-serif,sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h3{font-family:sans-serif,sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h4{font-family:sans-serif,sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h5{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h6{font-family:sans-serif,sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(62,90,124,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#121a24;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#bcc9da}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px;width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#121a24;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#d9e1e8}.landing-page__short-description h1{font-weight:500;color:#fff;margin-bottom:0}.landing-page__short-description h1 small{color:#9baec8}.landing-page__short-description h1 small span{color:#d9e1e8}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#fff;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#121a24;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:sans-serif,sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#9baec8}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#9baec8}.landing .simple_form p.lead{color:#9baec8;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #202e3f}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#3e5a7c}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #121a24;text-align:left;background:#0b1016}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #121a24;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#121a24}.table a{color:#d8a070;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#121a24;border-top:1px solid #040609;border-bottom:1px solid #040609}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #040609}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #040609}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:monospace,monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#9baec8;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#fff}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #040609;background:#121a24;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #040609;border-top:0;background:#121a24}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #040609;border-top:0;background:#0b1016}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #040609}}.batch-table__row:hover{background:#0f151d}.batch-table__row:nth-child(even){background:#121a24}.batch-table__row:nth-child(even):hover{background:#151f2b}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#9baec8;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #040609;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #040609}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#121a24;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#202e3f;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#fff;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#9baec8;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#26374d}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#9baec8;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#fff;background-color:#0a0e13;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#0f151d;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#0b1016;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#fff;background-color:#d8a070;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#ddad84}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #202e3f;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#d9e1e8;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#d9e1e8;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#9baec8;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #202e3f}.admin-wrapper .content h6{font-size:16px;color:#d9e1e8;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#fff;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#fff;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:none}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#d9e1e8;margin-bottom:20px}.admin-wrapper .content>p strong{color:#fff;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(62,90,124,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #192432;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#d8a070}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#9baec8}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#d8a070}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#3e5a7c;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset--with-select strong{display:block;margin-bottom:10px}.filters .filter-subset a{display:inline-block;color:#9baec8;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #121a24}.filters .filter-subset a:hover{color:#fff;border-bottom:2px solid #1b2635}.filters .filter-subset a.selected{color:#d8a070;border-bottom:2px solid #d8a070}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#d9e1e8}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#d8a070;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{line-height:20px;padding:15px 0;background:#121a24;border-bottom:1px solid #192432}.log-entry:last-child{border-bottom:0}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;color:#9baec8;font-size:14px;padding:0 10px}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#3e5a7c}.log-entry a,.log-entry .username,.log-entry .target{color:#d9e1e8;text-decoration:none;font-weight:500}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#d9e1e8}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#e87487}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #d8a070}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#e87487}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#9baec8}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#3e5a7c}.report-card{background:#121a24;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#9baec8;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#b5c3d6}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #0b1016}.report-card__summary__item:hover{background:#151f2b}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#9baec8}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#3e5a7c;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#9baec8}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#202e3f;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#e1b590}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#fff}.center-text{text-align:center}.announcements-list{border:1px solid #192432;border-radius:4px}.announcements-list__item{padding:15px 0;background:#121a24;border-bottom:1px solid #192432}.announcements-list__item__title{padding:0 15px;display:block;font-weight:500;font-size:18px;line-height:1.5;color:#d9e1e8;text-decoration:none;margin-bottom:10px}.announcements-list__item__title:hover,.announcements-list__item__title:focus,.announcements-list__item__title:active{color:#fff}.announcements-list__item__meta{padding:0 15px;color:#3e5a7c}.announcements-list__item__action-bar{display:flex;justify-content:space-between;align-items:center}.announcements-list__item:last-child{border-bottom:0}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff)}.hicolor-privacy-icons .status__visibility-icon.fa-globe,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-globe{color:#1976d2}.hicolor-privacy-icons .status__visibility-icon.fa-unlock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-unlock{color:#388e3c}.hicolor-privacy-icons .status__visibility-icon.fa-lock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-lock{color:#ffa000}.hicolor-privacy-icons .status__visibility-icon.fa-envelope,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-envelope{color:#d32f2f}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .composer--publisher{text-align:left}body.rtl .boost-modal__status-time,body.rtl .favourite-modal__status-time{float:left}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .setting-meta__label{float:left}body.rtl .status__avatar{margin-left:10px;margin-right:0;left:auto;right:10px}body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:58px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left;text-align:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(1, 1, 2, 0), #010102)}body.rtl .simple_form select{background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#192432;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#202e3f}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#fff;font-family:sans-serif,sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#9baec8;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#d9e1e8;font-weight:500;text-decoration:none}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a; // Padua\n$error-red: #df405a; // Cerise\n$warning-red: #ff5050; // Sunset Orange\n$gold-star: #ca8f04; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: sans-serif !default;\n$font-display: sans-serif !default;\n$font-monospace: monospace !default;\n\n// Avatar border size (8% default, 100% for rounded avatars)\n$ui-avatar-border-size: 8%;\n\n// More variables\n$dismiss-overlay-width: 4rem;\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n @return '%23' + unquote($color)\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n @include avatar-size(40px);\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1/3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1/3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n @include avatar-size(120px);\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n @include avatar-radius();\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n","@mixin avatar-radius() {\n border-radius: $ui-avatar-border-size;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size:48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin single-column($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .single-column #{$parent} {\n @content;\n }\n}\n\n@mixin limited-single-column($media, $parent: '&') {\n .auto-columns #{$parent}, .single-column #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n}\n\n@mixin multi-columns($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .multi-columns #{$parent} {\n @content;\n }\n}\n\n@mixin fullwidth-gallery {\n &.full-width {\n margin-left: -14px;\n margin-right: -14px;\n width: inherit;\n max-width: none;\n height: 250px;\n border-radius: 0px;\n }\n}\n\n@mixin search-input() {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: none;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout() {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .input.datetime .label_input select {\n display: inline-block;\n width: auto;\n flex: 0;\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n padding: 8px 0;\n padding-bottom: 2px;\n margin: initial;\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n position: absolute;\n margin: initial;\n float: initial;\n width: auto;\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n\n// Styling from upstream's WebUI, as public pages use the same layout\n.embed,\n.public-layout {\n .status {\n .status__info {\n font-size: 15px;\n display: initial;\n }\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding: 6px 0;\n padding-right: 25px;\n margin: initial;\n\n .display-name strong {\n display: inline;\n }\n }\n\n .status__avatar {\n height: 48px;\n position: absolute;\n width: 48px;\n margin: initial;\n }\n }\n}\n\n.rtl {\n .embed,\n .public-layout {\n .status {\n padding-left: 10px;\n padding-right: 68px;\n\n .status__info .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .status__relative-time {\n float: left;\n }\n }\n }\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n text-decoration: none;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.animated-number {\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n overflow: hidden;\n position: relative;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: darken($ui-highlight-color, 3%);\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n transition-property: background-color;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 7%);\n transition: all 200ms ease-out;\n transition-property: background-color;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n color: $darker-text-color;\n text-transform: none;\n background: transparent;\n padding: 3px 15px;\n border-radius: 4px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n transform-origin: 50% 0;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: 0;\n position: absolute;\n\n .fa.star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n a {\n color: inherit;\n text-decoration: inherit;\n }\n\n strong {\n height: 18px;\n font-size: 16px;\n font-weight: 500;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n span {\n display: block;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n > a:hover {\n strong {\n text-decoration: underline;\n }\n }\n\n &.inline {\n padding: 0;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n strong {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n\n span {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n }\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n ul {\n list-style: none;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.static-content {\n padding: 10px;\n padding-top: 20px;\n color: $dark-text-color;\n\n h1 {\n font-size: 16px;\n font-weight: 500;\n margin-bottom: 40px;\n text-align: center;\n }\n\n p {\n font-size: 13px;\n margin-bottom: 20px;\n }\n}\n\n.column,\n.drawer {\n flex: 1 1 100%;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @include multi-columns('screen and (min-width: 631px)') {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $ui-highlight-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n\n span.icon {\n margin-left: 0;\n display: inline;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.getting-started__wrapper,\n.getting_started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.getting-started__wrapper {\n position: relative;\n overflow-y: auto;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n background: $ui-base-color;\n flex: 1 0 auto;\n\n p {\n color: $secondary-text-color;\n }\n\n a {\n color: $dark-text-color;\n }\n\n &__panel {\n height: min-content;\n }\n\n &__panel,\n &__footer {\n padding: 10px;\n padding-top: 20px;\n flex: 0 1 auto;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n color: $darker-text-color;\n background: transparent;\n border: none;\n border-bottom: 2px solid $ui-primary-color;\n box-sizing: border-box;\n display: block;\n font-family: inherit;\n margin-bottom: 10px;\n padding: 7px 0;\n width: 100%;\n\n &:focus,\n &:active {\n color: $primary-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n font-size: 16px;\n }\n\n &.light {\n color: $inverted-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 27%);\n\n &:focus,\n &:active {\n color: $inverted-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.reduce-motion button.icon-button.disabled i.fa-retweet {\n color: darken($action-button-color, 13%);\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.missing-indicator {\n padding-top: 20px + 48px;\n}\n\n.scrollable > div > :first-child .notification__dismiss-overlay > .wrappy {\n border-top: 1px solid $ui-base-color;\n}\n\n.notification__dismiss-overlay {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: -1px;\n padding-left: 15px; // space for the box shadow to be visible\n\n z-index: 999;\n align-items: center;\n justify-content: flex-end;\n cursor: pointer;\n\n display: flex;\n\n .wrappy {\n width: $dismiss-overlay-width;\n align-self: stretch;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: lighten($ui-base-color, 8%);\n border-left: 1px solid lighten($ui-base-color, 20%);\n box-shadow: 0 0 5px black;\n border-bottom: 1px solid $ui-base-color;\n }\n\n .ckbox {\n border: 2px solid $ui-primary-color;\n border-radius: 2px;\n width: 30px;\n height: 30px;\n font-size: 20px;\n color: $darker-text-color;\n text-shadow: 0 0 5px black;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n &:focus {\n outline: 0 !important;\n\n .ckbox {\n box-shadow: 0 0 1px 1px $ui-highlight-color;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: flex;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n align-items: center;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label,\n.setting-radio__label,\n.setting-meta__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.setting-radio {\n display: block;\n line-height: 18px;\n}\n\n.setting-radio__label {\n margin-bottom: 0;\n}\n\n.column-settings__row legend {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-top: 10px;\n}\n\n.setting-radio__input {\n vertical-align: middle;\n}\n\n.setting-meta__label {\n float: right;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n transform-origin: center center;\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.pulse-loading {\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.loading-bar {\n background-color: $ui-highlight-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.icon-badge-wrapper {\n position: relative;\n}\n\n.icon-badge {\n position: absolute;\n display: block;\n right: -.25em;\n top: -.25em;\n background-color: $ui-highlight-color;\n border-radius: 50%;\n font-size: 75%;\n width: 1em;\n height: 1em;\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n cursor: pointer;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n .status__content {\n margin: 0;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.ui .flash-message {\n margin-top: 10px;\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 0;\n min-width: 75%;\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@import 'boost';\n@import 'accounts';\n@import 'domains';\n@import 'status';\n@import 'modal';\n@import 'composer';\n@import 'columns';\n@import 'regeneration_indicator';\n@import 'directory';\n@import 'search';\n@import 'emoji';\n@import 'doodle';\n@import 'drawer';\n@import 'media';\n@import 'sensitive';\n@import 'lists';\n@import 'emoji_picker';\n@import 'local_settings';\n@import 'error_boundary';\n@import 'single_column';\n@import 'announcements';\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant\nbutton.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant for use with DMs\n.status-direct button.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n",".account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n color: inherit;\n text-decoration: none;\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n\n &.small {\n border: none;\n padding: 0;\n\n & > .account__avatar-wrapper { margin: 0 8px 0 0 }\n\n & > .display-name {\n height: 24px;\n line-height: 24px;\n }\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius();\n position: relative;\n cursor: pointer;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n overflow: hidden;\n position: relative;\n\n & div {\n @include avatar-radius;\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\n.account__avatar-overlay {\n position: relative;\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius();\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius();\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__header__wrapper {\n flex: 0 0 auto;\n background: lighten($ui-base-color, 4%);\n}\n\n.account__disclaimer {\n padding: 10px;\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-left: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &:first-child {\n border-left: 0;\n }\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n abbr {\n color: $highlight-text-color;\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.notification__message {\n margin-left: 42px;\n padding: 8px 0 0 26px;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input();\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout();\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n",".domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n","@keyframes spring-flip-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-242.4deg);\n }\n\n 60% {\n transform: rotate(-158.35deg);\n }\n\n 90% {\n transform: rotate(-187.5deg);\n }\n\n 100% {\n transform: rotate(-180deg);\n }\n}\n\n@keyframes spring-flip-out {\n 0% {\n transform: rotate(-180deg);\n }\n\n 30% {\n transform: rotate(62.4deg);\n }\n\n 60% {\n transform: rotate(-21.635deg);\n }\n\n 90% {\n transform: rotate(7.5deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content {\n position: relative;\n margin: 10px 0;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n padding-top: 5px;\n\n &:focus {\n outline: 0;\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .status__content__text,\n .e-content {\n overflow: hidden;\n\n & > ul,\n & > ol {\n margin-bottom: 20px;\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 1.2em;\n }\n\n h2 {\n font-size: 1.1em;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $darker-text-color;\n color: $darker-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n sup {\n font-size: smaller;\n vertical-align: super;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n .status__content__spoiler {\n display: none;\n\n &.status__content__spoiler--visible {\n display: block;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n\n .link-origin-tag {\n color: $gold-star;\n font-size: 0.8em;\n }\n }\n\n .status__content__spoiler-link {\n background: lighten($ui-base-color, 30%);\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: lighten($ui-base-color, 30%);\n border: none;\n color: $inverted-text-color;\n font-weight: 500;\n font-size: 11px;\n padding: 0 5px;\n text-transform: uppercase;\n line-height: inherit;\n cursor: pointer;\n vertical-align: bottom;\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n\n .status__content__spoiler-icon {\n display: inline-block;\n margin: 0 0 0 5px;\n border-left: 1px solid currentColor;\n padding: 0 0 0 4px;\n font-size: 16px;\n vertical-align: -2px;\n }\n}\n\n.notif-cleaning {\n .status,\n .notification-follow,\n .notification-follow-request {\n padding-right: ($dismiss-overlay-width + 0.5rem);\n }\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.notification-follow,\n.notification-follow-request {\n position: relative;\n\n // same like Status\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .account {\n border-bottom: 0 none;\n }\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n &.status.status-direct:not(.read) {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 10px 14px;\n position: relative;\n height: auto;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 28px; // 12px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $lighter-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n color: $light-text-color;\n\n strong {\n color: $inverted-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n\n &.collapsed {\n background-position: center;\n background-size: cover;\n user-select: none;\n\n &.has-background::before {\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-image: linear-gradient(to bottom, rgba($base-shadow-color, .75), rgba($base-shadow-color, .65) 24px, rgba($base-shadow-color, .8));\n pointer-events: none;\n content: \"\";\n }\n\n .display-name:hover .display-name__html {\n text-decoration: none;\n }\n\n .status__content {\n height: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 0;\n\n &:after {\n content: \"\";\n position: absolute;\n top: 0; bottom: 0;\n left: 0; right: 0;\n background: linear-gradient(rgba($ui-base-color, 0), rgba($ui-base-color, 1));\n pointer-events: none;\n }\n \n a:hover {\n text-decoration: none;\n }\n }\n &:focus > .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 4%), 0), rgba(lighten($ui-base-color, 4%), 1));\n }\n &.status-direct:not(.read)> .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 8%), 0), rgba(lighten($ui-base-color, 8%), 1));\n }\n\n .notification__message {\n margin-bottom: 0;\n }\n\n .status__info .notification__message > span {\n white-space: nowrap;\n }\n }\n\n .notification__message {\n margin: -10px 0px 10px 0;\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time {\n display: inline-block;\n flex-grow: 1;\n color: $dark-text-color;\n font-size: 14px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status__display-name {\n color: $dark-text-color;\n overflow: hidden;\n}\n\n.status__info__account .status__display-name {\n display: block;\n max-width: 100%;\n}\n\n.status__info {\n display: flex;\n justify-content: space-between;\n font-size: 15px;\n\n > span {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .notification__message > span {\n word-wrap: break-word;\n }\n}\n\n.status__info__icons {\n display: flex;\n align-items: center;\n height: 1em;\n color: $action-button-color;\n\n .status__media-icon,\n .status__visibility-icon,\n .status__reply-icon {\n padding-left: 2px;\n padding-right: 2px;\n }\n\n .status__collapse-button.active > .fa-angle-double-up {\n transform: rotate(-180deg);\n }\n}\n\n.no-reduce-motion .status__collapse-button {\n &.activate {\n & > .fa-angle-double-up {\n animation: spring-flip-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-angle-double-up {\n animation: spring-flip-out 1s linear;\n }\n }\n}\n\n.status__info__account {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n overflow: hidden;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-top: -10px;\n margin-bottom: 10px;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\na.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\n.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n flex: none;\n margin: 0 10px 0 0;\n height: 48px;\n width: 48px;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a,\n .status__content__text {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-color, 29%);\n text-decoration: none;\n }\n }\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n\n a .fa, a:hover .fa {\n color: inherit;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n.status__wrapper--filtered__button {\n display: inline;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n font-size: inherit;\n line-height: inherit;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n",".modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.onboarding-modal__pager {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 470px;\n\n .react-swipeable-view-container > div {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n user-select: text;\n }\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n@media screen and (max-width: 550px) {\n .onboarding-modal {\n width: 100%;\n height: 100%;\n border-radius: 0;\n }\n\n .onboarding-modal__pager {\n width: 100%;\n height: auto;\n max-width: none;\n max-height: none;\n flex: 1 1 auto;\n }\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.onboarding-modal__dots {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.onboarding-modal__dot {\n width: 14px;\n height: 14px;\n border-radius: 14px;\n background: darken($ui-secondary-color, 16%);\n margin: 0 3px;\n cursor: pointer;\n\n &:hover {\n background: darken($ui-secondary-color, 18%);\n }\n\n &.active {\n cursor: default;\n background: darken($ui-secondary-color, 24%);\n }\n}\n\n.onboarding-modal__page__wrapper {\n pointer-events: none;\n padding: 25px;\n padding-bottom: 0;\n\n &.onboarding-modal__page__wrapper--active {\n pointer-events: auto;\n }\n}\n\n.onboarding-modal__page {\n cursor: default;\n line-height: 21px;\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 20px;\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 4%);\n }\n }\n\n .navigation-bar a {\n color: inherit;\n }\n\n p {\n font-size: 16px;\n color: $lighter-text-color;\n margin-top: 10px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n background: $ui-base-color;\n color: $secondary-text-color;\n border-radius: 4px;\n font-size: 14px;\n padding: 3px 6px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.onboarding-modal__page__wrapper-0 {\n height: 100%;\n padding: 0;\n}\n\n.onboarding-modal__page-one {\n &__lead {\n padding: 65px;\n padding-top: 45px;\n padding-bottom: 0;\n margin-bottom: 10px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n margin-bottom: 8px;\n }\n\n p {\n margin-bottom: 0;\n }\n }\n\n &__extra {\n padding-right: 65px;\n padding-left: 185px;\n text-align: center;\n }\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboarding-modal__page-two,\n.onboarding-modal__page-three,\n.onboarding-modal__page-four,\n.onboarding-modal__page-five {\n p {\n text-align: left;\n }\n\n .figure {\n background: darken($ui-base-color, 8%);\n color: $secondary-text-color;\n margin-bottom: 20px;\n border-radius: 4px;\n padding: 10px;\n text-align: center;\n font-size: 14px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);\n\n .onboarding-modal__image {\n border-radius: 4px;\n margin-bottom: 10px;\n }\n\n &.non-interactive {\n pointer-events: none;\n text-align: left;\n }\n }\n}\n\n.onboarding-modal__page-four__columns {\n .row {\n display: flex;\n margin-bottom: 20px;\n\n & > div {\n flex: 1 1 0;\n margin: 0 10px;\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n\n p {\n text-align: center;\n }\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .column-header {\n color: $primary-text-color;\n }\n}\n\n@media screen and (max-width: 320px) and (max-height: 600px) {\n .onboarding-modal__page p {\n font-size: 14px;\n line-height: 20px;\n }\n\n .onboarding-modal__page-two .figure,\n .onboarding-modal__page-three .figure,\n .onboarding-modal__page-four .figure,\n .onboarding-modal__page-five .figure {\n font-size: 12px;\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .row {\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .column-header {\n padding: 5px;\n font-size: 12px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.favourite-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__display-name {\n display: flex;\n }\n\n .status__avatar {\n height: 48px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container,\n.favourite-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.favourite-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header,\n.favourite-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time,\n.favourite-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n strong {\n display: block;\n font-weight: 500;\n }\n\n max-height: 80vh;\n max-width: 80vw;\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n & > .react-toggle,\n & > .icon,\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__do_not_ask_again {\n padding-left: 20px;\n padding-right: 20px;\n padding-bottom: 10px;\n\n font-size: 14px;\n\n label, input {\n vertical-align: middle;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: 'mastodon-font-monospace', monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.filtered-status-info {\n text-align: start;\n\n .spoiler__text {\n margin-top: 20px;\n }\n\n .account {\n border-bottom: 0;\n }\n\n .account__display-name strong {\n color: $inverted-text-color;\n }\n\n .status__content__spoiler {\n display: none;\n\n &--visible {\n display: flex;\n }\n }\n\n ul {\n padding: 10px;\n margin-left: 12px;\n list-style: disc inside;\n }\n\n .filtered-status-edit-link {\n color: $action-button-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline\n }\n }\n}\n",".composer {\n padding: 10px;\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 0;\n right: 0;\n\n ::-webkit-scrollbar-track:hover,\n ::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .composer--spoiler {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.composer--spoiler {\n height: 0;\n transform-origin: bottom;\n opacity: 0.0;\n\n &.composer--spoiler--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1.0;\n }\n\n input {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px;\n padding: 10px;\n width: 100%;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n }\n}\n\n.composer--warning {\n color: $inverted-text-color;\n margin-bottom: 15px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:active,\n &:focus,\n &:hover { text-decoration: none }\n }\n}\n\n.compose-form__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-left: 5px;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n}\n\n.composer--reply {\n margin: 0 0 10px;\n border-radius: 4px;\n padding: 10px;\n background: $ui-primary-color;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n\n & > header {\n margin-bottom: 5px;\n overflow: hidden;\n\n & > .account.small { color: $inverted-text-color; }\n\n & > .cancel {\n float: right;\n line-height: 24px;\n }\n }\n\n & > .content {\n position: relative;\n margin: 10px 0;\n padding: 0 12px;\n font-size: 14px;\n line-height: 20px;\n color: $inverted-text-color;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n white-space: pre-wrap;\n padding-top: 5px;\n overflow: hidden;\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 18px;\n }\n\n h2 {\n font-size: 16px;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $inverted-text-color;\n color: $inverted-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n\n a {\n color: $lighter-text-color;\n text-decoration: none;\n\n &:hover { text-decoration: underline }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span { text-decoration: underline }\n }\n }\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -5px 0 0;\n }\n}\n\n.compose-form__autosuggest-wrapper,\n.autosuggest-input {\n position: relative;\n width: 100%;\n\n label {\n .autosuggest-textarea__textarea {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px 4px 0 0;\n padding: 10px 32px 0 10px;\n width: 100%;\n min-height: 100px;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: none;\n scrollbar-color: initial;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n &:disabled { background: $ui-secondary-color }\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n }\n}\n\n.composer--textarea--icons {\n display: block;\n position: absolute;\n top: 29px;\n right: 5px;\n bottom: 5px;\n overflow: hidden;\n\n & > .textarea_icon {\n display: block;\n margin: 2px 0 0 2px;\n width: 24px;\n height: 24px;\n color: $lighter-text-color;\n font-size: 18px;\n line-height: 24px;\n text-align: center;\n opacity: .8;\n }\n}\n\n.autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n}\n\n.autosuggest-textarea__suggestions {\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: 100%;\n border-radius: 0 0 4px 4px;\n padding: 6px;\n width: 100%;\n color: $inverted-text-color;\n background: $ui-secondary-color;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n font-size: 14px;\n z-index: 99;\n display: none;\n}\n\n.autosuggest-textarea__suggestions--visible {\n display: block;\n}\n\n.autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected { background: darken($ui-secondary-color, 10%) }\n\n > .account,\n > .emoji,\n > .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n & > .account.small {\n .display-name {\n & > span { color: $lighter-text-color }\n }\n }\n}\n\n.composer--upload_form {\n overflow: hidden;\n\n & > .content {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n font-family: inherit;\n padding: 5px;\n overflow: hidden;\n }\n}\n\n.composer--upload_form--item {\n flex: 1 1 0;\n margin: 5px;\n min-width: 40%;\n\n & > div {\n position: relative;\n border-radius: 4px;\n height: 140px;\n width: 100%;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n overflow: hidden;\n\n textarea {\n display: block;\n position: absolute;\n box-sizing: border-box;\n bottom: 0;\n left: 0;\n margin: 0;\n border: 0;\n padding: 10px;\n width: 100%;\n color: $secondary-text-color;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n font-size: 14px;\n font-family: inherit;\n font-weight: 500;\n opacity: 0;\n z-index: 2;\n transition: opacity .1s ease;\n\n &:focus { color: $white }\n\n &::placeholder {\n opacity: 0.54;\n color: $secondary-text-color;\n }\n }\n\n & > .close { mix-blend-mode: difference }\n }\n\n &.active {\n & > div {\n textarea { opacity: 1 }\n }\n }\n}\n\n.composer--upload_form--actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $ui-secondary-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($ui-secondary-color, 4%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n}\n\n.composer--upload_form--progress {\n display: flex;\n padding: 10px;\n color: $darker-text-color;\n overflow: hidden;\n\n & > .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n & > .message {\n flex: 1 1 auto;\n\n & > span {\n display: block;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n }\n\n & > .backdrop {\n position: relative;\n margin-top: 5px;\n border-radius: 6px;\n width: 100%;\n height: 6px;\n background: $ui-base-lighter-color;\n\n & > .tracker {\n position: absolute;\n top: 0;\n left: 0;\n height: 6px;\n border-radius: 6px;\n background: $ui-highlight-color;\n }\n }\n }\n}\n\n.compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n}\n\n.composer--options-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n height: 27px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n}\n\n.composer--options {\n display: flex;\n flex: 0 0 auto;\n\n & > * {\n display: inline-block;\n box-sizing: content-box;\n padding: 0 3px;\n height: 27px;\n line-height: 27px;\n vertical-align: bottom;\n }\n\n & > hr {\n display: inline-block;\n margin: 0 3px;\n border-width: 0 0 0 1px;\n border-style: none none none solid;\n border-color: transparent transparent transparent darken($simple-background-color, 24%);\n padding: 0;\n width: 0;\n height: 27px;\n background: transparent;\n }\n}\n\n.compose--counter-wrapper {\n align-self: center;\n margin-right: 4px;\n}\n\n.composer--options--dropdown {\n &.open {\n & > .value {\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n color: $primary-text-color;\n background: $ui-highlight-color;\n transition: none;\n }\n &.top {\n & > .value {\n border-radius: 0 0 4px 4px;\n box-shadow: 0 4px 4px rgba($base-shadow-color, 0.1);\n }\n }\n }\n}\n\n.composer--options--dropdown--content {\n position: absolute;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n background: $simple-background-color;\n overflow: hidden;\n transform-origin: 50% 0;\n}\n\n.composer--options--dropdown--content--item {\n display: flex;\n align-items: center;\n padding: 10px;\n color: $inverted-text-color;\n cursor: pointer;\n\n & > .content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n &:not(:first-child) { margin-left: 10px }\n\n strong {\n display: block;\n color: $inverted-text-color;\n font-weight: 500;\n }\n }\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n\n & > .content {\n color: $primary-text-color;\n\n strong { color: $primary-text-color }\n }\n }\n\n &.active:hover { background: lighten($ui-highlight-color, 4%) }\n}\n\n.composer--publisher {\n padding-top: 10px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n justify-content: flex-end;\n flex: 0 0 auto;\n\n & > .primary {\n display: inline-block;\n margin: 0;\n padding: 0 10px;\n text-align: center;\n }\n\n & > .side_arm {\n display: inline-block;\n margin: 0 2px;\n padding: 0;\n width: 36px;\n text-align: center;\n }\n\n &.over {\n & > .count { color: $warning-red }\n }\n}\n",".column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.column {\n overflow: hidden;\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n z-index: 1;\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n bottom: -13px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n\n .announcements {\n z-index: 1;\n position: relative;\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n\n & > button {\n margin: 0;\n border: none;\n padding: 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($ui-highlight-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n\n .wide .columns-area:not(.columns-area--mobile) & {\n flex: auto;\n min-width: 330px;\n max-width: 400px;\n }\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n margin-left: 0;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n\n // glitch - added focus ring for keyboard navigation\n &:focus {\n text-shadow: 0 0 4px darken($ui-highlight-color, 5%);\n }\n}\n\n.column-header__notif-cleaning-buttons {\n display: flex;\n align-items: stretch;\n justify-content: space-around;\n\n button {\n @extend .column-header__button;\n background: transparent;\n text-align: center;\n padding: 10px 0;\n white-space: pre-wrap;\n }\n\n b {\n font-weight: bold;\n }\n}\n\n// The notifs drawer with no padding to have more space for the buttons\n.column-header__collapsible-inner.nopad-drawer {\n padding: 0;\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n z-index: 1;\n position: relative;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n\n // notif cleaning drawer\n &.ncd {\n transition: none;\n &.collapsed {\n max-height: 0;\n opacity: 0.7;\n }\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.column-header__title {\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.empty-column-indicator,\n.error-column,\n.follow_requests-unlocked_explanation {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.follow_requests-unlocked_explanation {\n background: darken($ui-base-color, 4%);\n contain: initial;\n}\n\n.error-column {\n flex-direction: column;\n}\n\n// more fixes for the navbar-under mode\n@mixin fix-margins-for-navbar-under {\n .tabs-bar {\n margin-top: 0 !important;\n margin-bottom: -6px !important;\n }\n}\n\n.single-column.navbar-under {\n @include fix-margins-for-navbar-under;\n}\n\n.auto-columns.navbar-under {\n @media screen and (max-width: $no-gap-breakpoint) {\n @include fix-margins-for-navbar-under;\n }\n}\n\n.auto-columns.navbar-under .react-swipeable-view-container .columns-area,\n.single-column.navbar-under .react-swipeable-view-container .columns-area {\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 100% !important;\n }\n}\n\n.column-inline-form {\n padding: 7px 15px;\n padding-right: 5px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n margin-bottom: 6px;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 5px;\n }\n}\n",".regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n",".directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n",".search {\n position: relative;\n}\n\n.search__input {\n @include search-input();\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: color, transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(0deg);\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n padding: 15px 10px;\n font-size: 14px;\n font-weight: 500;\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n",null,".emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.emoji-button {\n display: block;\n padding: 5px 5px 2px 2px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n","$doodleBg: #d9e1e8;\n.doodle-modal {\n @extend .boost-modal;\n width: unset;\n}\n\n.doodle-modal__container {\n background: $doodleBg;\n text-align: center;\n line-height: 0; // remove weird gap under canvas\n canvas {\n border: 5px solid $doodleBg;\n }\n}\n\n.doodle-modal__action-bar {\n @extend .boost-modal__action-bar;\n\n .filler {\n flex-grow: 1;\n margin: 0;\n padding: 0;\n }\n\n .doodle-toolbar {\n line-height: 1;\n\n display: flex;\n flex-direction: column;\n flex-grow: 0;\n justify-content: space-around;\n\n &.with-inputs {\n label {\n display: inline-block;\n width: 70px;\n text-align: right;\n margin-right: 2px;\n }\n\n input[type=\"number\"],input[type=\"text\"] {\n width: 40px;\n }\n span.val {\n display: inline-block;\n text-align: left;\n width: 50px;\n }\n }\n }\n\n .doodle-palette {\n padding-right: 0 !important;\n border: 1px solid black;\n line-height: .2rem;\n flex-grow: 0;\n background: white;\n\n button {\n appearance: none;\n width: 1rem;\n height: 1rem;\n margin: 0; padding: 0;\n text-align: center;\n color: black;\n text-shadow: 0 0 1px white;\n cursor: pointer;\n box-shadow: inset 0 0 1px rgba(white, .5);\n border: 1px solid black;\n outline-offset:-1px;\n\n &.foreground {\n outline: 1px dashed white;\n }\n\n &.background {\n outline: 1px dashed red;\n }\n\n &.foreground.background {\n outline: 1px dashed red;\n border-color: white;\n }\n }\n }\n}\n",".drawer {\n width: 300px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n padding: 10px 5px;\n flex: none;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n\n @include single-column('screen and (max-width: 630px)') { flex: auto }\n\n @include limited-single-column('screen and (max-width: 630px)') {\n &, &:first-child, &:last-child { padding: 0 }\n }\n\n .wide & {\n min-width: 300px;\n max-width: 400px;\n flex: 1 1 200px;\n }\n\n @include single-column('screen and (max-width: 630px)') {\n :root & { // Overrides `.wide` for single-column view\n flex: auto;\n width: 100%;\n min-width: 0;\n max-width: none;\n padding: 0;\n }\n }\n\n .react-swipeable-view-container & { height: 100% }\n}\n\n.drawer--header {\n display: flex;\n flex-direction: row;\n margin-bottom: 10px;\n flex: none;\n background: lighten($ui-base-color, 8%);\n font-size: 16px;\n\n & > * {\n display: block;\n box-sizing: border-box;\n border-bottom: 2px solid transparent;\n padding: 15px 5px 13px;\n height: 48px;\n flex: 1 1 auto;\n color: $darker-text-color;\n text-align: center;\n text-decoration: none;\n cursor: pointer;\n }\n\n a {\n transition: background 100ms ease-in;\n\n &:focus,\n &:hover {\n outline: none;\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.search {\n position: relative;\n margin-bottom: 10px;\n flex: none;\n\n @include limited-single-column('screen and (max-width: #{$no-gap-breakpoint})') { margin-bottom: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n}\n\n.search-popout {\n @include search-popout();\n}\n\n.drawer--account {\n padding: 10px;\n color: $darker-text-color;\n display: flex;\n align-items: center;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n .acct {\n display: block;\n color: $secondary-text-color;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n overflow: hidden;\n}\n\n.drawer--results {\n background: $ui-base-color;\n overflow-x: hidden;\n overflow-y: auto;\n\n & > header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n & > section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n\n & > .hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n }\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 85%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n > .mastodon {\n display: block;\n width: 100%;\n height: 100%;\n border: none;\n cursor: inherit;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n",".video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n width: 100%;\n height: 100%;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 8%);\n }\n\n .status__content > & {\n margin-top: 15px; // Add margin when used bare for NSFW video player\n }\n @include fullwidth-gallery;\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 500;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n span {\n text-align: center;\n color: $darker-text-color;\n display: flex;\n height: 100%;\n align-items: center;\n\n p {\n width: 100%;\n }\n }\n\n audio {\n width: 100%;\n }\n}\n\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n height: 110px;\n\n @include fullwidth-gallery;\n}\n\n.media-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n .full-width & {\n border-radius: 0;\n }\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n\n &.letterbox {\n background: $base-shadow-color;\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n object-fit: contain;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n width: 100%;\n position: relative;\n z-index: 1;\n object-fit: contain;\n user-select: none;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $white;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $ui-highlight-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n .detailed-status & {\n width: 100%;\n height: 100%;\n }\n\n @include fullwidth-gallery;\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n position: relative;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-shadow-color;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n\n .fa,\n &:active .fa,\n &:hover .fa,\n &:focus .fa {\n color: inherit;\n }\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n",".sensitive-info {\n display: flex;\n flex-direction: row;\n align-items: center;\n position: absolute;\n top: 4px;\n left: 4px;\n z-index: 100;\n}\n\n.sensitive-marker {\n margin: 0 3px;\n border-radius: 2px;\n padding: 2px 6px;\n color: rgba($primary-text-color, 0.8);\n background: rgba($base-overlay-background, 0.5);\n font-size: 12px;\n line-height: 18px;\n text-transform: uppercase;\n opacity: .9;\n transition: opacity .1s ease;\n\n .media-gallery:hover & { opacity: 1 }\n}\n",".list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n",".emoji-mart {\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: 0;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -3px;\n left: 0;\n width: 100%;\n height: 3px;\n background-color: darken($ui-highlight-color, 3%);\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n",".glitch.local-settings {\n position: relative;\n display: flex;\n flex-direction: row;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n height: 80vh;\n width: 80vw;\n max-width: 740px;\n max-height: 450px;\n overflow: hidden;\n\n label, legend {\n display: block;\n font-size: 14px;\n }\n\n .boolean label, .radio_buttons label {\n position: relative;\n padding-left: 28px;\n padding-top: 3px;\n\n input {\n position: absolute;\n left: 0;\n top: 0;\n }\n }\n\n span.hint {\n display: block;\n color: $lighter-text-color;\n }\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n line-height: 24px;\n margin-bottom: 20px;\n }\n\n h2 {\n font-size: 15px;\n font-weight: 500;\n line-height: 20px;\n margin-top: 20px;\n margin-bottom: 10px;\n }\n}\n\n.glitch.local-settings__navigation__item {\n display: block;\n padding: 15px 20px;\n color: inherit;\n background: lighten($ui-secondary-color, 8%);\n border-bottom: 1px $ui-secondary-color solid;\n cursor: pointer;\n text-decoration: none;\n outline: none;\n transition: background .3s;\n\n .text-icon-button {\n color: inherit;\n transition: unset;\n }\n\n &:hover {\n background: $ui-secondary-color;\n }\n\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n\n &.close, &.close:hover {\n background: $error-value-color;\n color: $primary-text-color;\n }\n}\n\n.glitch.local-settings__navigation {\n background: lighten($ui-secondary-color, 8%);\n width: 212px;\n font-size: 15px;\n line-height: 20px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page {\n display: block;\n flex: auto;\n padding: 15px 20px 15px 20px;\n width: 360px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page__item {\n margin-bottom: 2px;\n}\n\n.glitch.local-settings__page__item.string,\n.glitch.local-settings__page__item.radio_buttons {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n@media screen and (max-width: 630px) {\n .glitch.local-settings__navigation {\n width: 40px;\n flex-shrink: 0;\n }\n\n .glitch.local-settings__navigation__item {\n padding: 10px;\n\n span:last-of-type {\n display: none;\n }\n }\n}\n",".error-boundary {\n color: $primary-text-color;\n font-size: 15px;\n line-height: 20px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n font-weight: 400;\n margin-bottom: 8px;\n }\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n }\n\n ul {\n list-style: disc;\n margin-left: 0;\n padding-left: 1em;\n }\n\n textarea.web_app_crash-stacktrace {\n width: 100%;\n resize: none;\n white-space: pre;\n font-family: $font-monospace, monospace;\n }\n}\n",".compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .drawer--account {\n flex: 0 1 48px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .composer {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px;\n min-height: 48px + 2px;\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n padding-top: 15px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .search {\n margin-bottom: 10px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n",".announcements__item__content {\n word-wrap: break-word;\n overflow-y: auto;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 10px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n &.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n.announcements {\n background: lighten($ui-base-color, 8%);\n font-size: 13px;\n display: flex;\n align-items: flex-end;\n\n &__mastodon {\n width: 124px;\n flex: 0 0 auto;\n\n @media screen and (max-width: 124px + 300px) {\n display: none;\n }\n }\n\n &__container {\n width: calc(100% - 124px);\n flex: 0 0 auto;\n position: relative;\n\n @media screen and (max-width: 124px + 300px) {\n width: 100%;\n }\n }\n\n &__item {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n max-height: 50vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &__range {\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n padding-right: 18px;\n }\n\n &__unread {\n position: absolute;\n top: 19px;\n right: 19px;\n display: block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n }\n }\n\n &__pagination {\n padding: 15px;\n color: $darker-text-color;\n position: absolute;\n bottom: 3px;\n right: 0;\n }\n}\n\n.layout-multiple-columns .announcements__mastodon {\n display: none;\n}\n\n.layout-multiple-columns .announcements__container {\n width: 100%;\n}\n\n.reactions-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-top: 15px;\n margin-left: -2px;\n width: calc(100% - (90px - 33px));\n\n &__item {\n flex-shrink: 0;\n background: lighten($ui-base-color, 12%);\n border: 0;\n border-radius: 3px;\n margin: 2px;\n cursor: pointer;\n user-select: none;\n padding: 0 6px;\n display: flex;\n align-items: center;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &__emoji {\n display: block;\n margin: 3px 0;\n width: 16px;\n height: 16px;\n\n img {\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n min-width: auto;\n min-height: auto;\n vertical-align: bottom;\n object-fit: contain;\n }\n }\n\n &__count {\n display: block;\n min-width: 9px;\n font-size: 13px;\n font-weight: 500;\n text-align: center;\n margin-left: 6px;\n color: $darker-text-color;\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 16%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n\n &__count {\n color: lighten($darker-text-color, 4%);\n }\n }\n\n &.active {\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%);\n\n .reactions-bar__item__count {\n color: lighten($highlight-text-color, 8%);\n }\n }\n }\n\n .emoji-picker-dropdown {\n margin: 2px;\n }\n\n &:hover .emoji-button {\n opacity: 0.85;\n }\n\n .emoji-button {\n color: $darker-text-color;\n margin: 0;\n font-size: 16px;\n width: auto;\n flex-shrink: 0;\n padding: 0 6px;\n height: 22px;\n display: flex;\n align-items: center;\n opacity: 0.5;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n opacity: 1;\n color: lighten($darker-text-color, 4%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n }\n\n &--empty {\n .emoji-button {\n padding: 0;\n }\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n ul,\n .e-content & ul {\n margin: 0;\n list-style: none;\n }\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n border-radius: 4px;\n display: block;\n background: darken($ui-primary-color, 5%);\n height: 5px;\n min-width: 1%;\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__option {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n &__text {\n display: inline-block;\n word-wrap: break-word;\n overflow-wrap: break-word;\n max-width: calc(100% - 45px - 25px);\n }\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n display: block;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($valid-value-color, 15%);\n border-width: 4px;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 45px;\n font-weight: 700;\n flex: 0 0 45px;\n }\n\n &__voted {\n padding: 0 5px;\n display: inline-block;\n\n &__mark {\n font-size: 18px;\n }\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n overflow-x: hidden;\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n width: 100%;\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__option {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n @include avatar-size(80px);\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n @include avatar-radius();\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n @include avatar-size(44px);\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: none;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &--with-select strong {\n display: block;\n margin-bottom: 10px;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n line-height: 20px;\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: $darker-text-color;\n font-size: 14px;\n padding: 0 10px;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n\n.announcements-list {\n border: 1px solid lighten($ui-base-color, 4%);\n border-radius: 4px;\n\n &__item {\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &__title {\n padding: 0 15px;\n display: block;\n font-weight: 500;\n font-size: 18px;\n line-height: 1.5;\n color: $secondary-text-color;\n text-decoration: none;\n margin-bottom: 10px;\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n }\n\n &__meta {\n padding: 0 15px;\n color: $dark-text-color;\n }\n\n &__action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n}\n","$emojis-requiring-outlines: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash' !default;\n\n%emoji-outline {\n filter: drop-shadow(1px 1px 0 $primary-text-color) drop-shadow(-1px 1px 0 $primary-text-color) drop-shadow(1px -1px 0 $primary-text-color) drop-shadow(-1px -1px 0 $primary-text-color);\n}\n\n.emojione {\n @each $emoji in $emojis-requiring-outlines {\n &[title=':#{$emoji}:'] {\n @extend %emoji-outline;\n }\n }\n}\n\n.hicolor-privacy-icons {\n .status__visibility-icon.fa-globe,\n .composer--options--dropdown--content--item .fa-globe {\n color: #1976D2;\n }\n\n .status__visibility-icon.fa-unlock,\n .composer--options--dropdown--content--item .fa-unlock {\n color: #388E3C;\n }\n\n .status__visibility-icon.fa-lock,\n .composer--options--dropdown--content--item .fa-lock {\n color: #FFA000;\n }\n\n .status__visibility-icon.fa-envelope,\n .composer--options--dropdown--content--item .fa-envelope {\n color: #D32F2F;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .composer--publisher {\n text-align: left;\n }\n\n .boost-modal__status-time,\n .favourite-modal__status-time {\n float: left;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .setting-meta__label {\n float: left;\n }\n\n .status__avatar {\n margin-left: 10px;\n margin-right: 0;\n\n // Those are used for public pages\n left: auto;\n right: 10px;\n }\n\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 58px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n text-align: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/flavours/glitch/common.js b/priv/static/packs/flavours/glitch/common.js index ac5adaf84..6535dc828 100644 Binary files a/priv/static/packs/flavours/glitch/common.js and b/priv/static/packs/flavours/glitch/common.js differ diff --git a/priv/static/packs/flavours/glitch/common.js.map b/priv/static/packs/flavours/glitch/common.js.map index f079b32e5..4090e336c 100644 Binary files a/priv/static/packs/flavours/glitch/common.js.map and b/priv/static/packs/flavours/glitch/common.js.map differ diff --git a/priv/static/packs/flavours/glitch/embed.js b/priv/static/packs/flavours/glitch/embed.js index d72d5eb4a..fa84055a4 100644 Binary files a/priv/static/packs/flavours/glitch/embed.js and b/priv/static/packs/flavours/glitch/embed.js differ diff --git a/priv/static/packs/flavours/glitch/embed.js.LICENSE b/priv/static/packs/flavours/glitch/embed.js.LICENSE.txt similarity index 91% rename from priv/static/packs/flavours/glitch/embed.js.LICENSE rename to priv/static/packs/flavours/glitch/embed.js.LICENSE.txt index 448b94017..2196b2def 100644 --- a/priv/static/packs/flavours/glitch/embed.js.LICENSE +++ b/priv/static/packs/flavours/glitch/embed.js.LICENSE.txt @@ -1,22 +1,10 @@ -/** @license React v16.12.0 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ -/** @license React v16.12.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v0.18.0 +/** @license React v0.19.0 * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -34,8 +22,20 @@ * LICENSE file in the root directory of this source tree. */ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ +/** @license React v16.13.0 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/priv/static/packs/flavours/glitch/embed.js.map b/priv/static/packs/flavours/glitch/embed.js.map index 72ef31ea0..18537f622 100644 Binary files a/priv/static/packs/flavours/glitch/embed.js.map and b/priv/static/packs/flavours/glitch/embed.js.map differ diff --git a/priv/static/packs/flavours/glitch/error.js b/priv/static/packs/flavours/glitch/error.js index 6cd2b3257..4b17ae7a4 100644 Binary files a/priv/static/packs/flavours/glitch/error.js and b/priv/static/packs/flavours/glitch/error.js differ diff --git a/priv/static/packs/flavours/glitch/home.js b/priv/static/packs/flavours/glitch/home.js index b1d7f479a..030a30c4d 100644 Binary files a/priv/static/packs/flavours/glitch/home.js and b/priv/static/packs/flavours/glitch/home.js differ diff --git a/priv/static/packs/flavours/glitch/home.js.LICENSE b/priv/static/packs/flavours/glitch/home.js.LICENSE.txt similarity index 98% rename from priv/static/packs/flavours/glitch/home.js.LICENSE rename to priv/static/packs/flavours/glitch/home.js.LICENSE.txt index c81616ce6..41a8734c9 100644 --- a/priv/static/packs/flavours/glitch/home.js.LICENSE +++ b/priv/static/packs/flavours/glitch/home.js.LICENSE.txt @@ -1,3 +1,9 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + /*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see @@ -12,31 +18,152 @@ * MIT Licensed */ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/** @license React v16.12.0 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. +/*! + * wavesurfer.js 3.3.1 (2020-01-14) + * https://github.com/katspaugh/wavesurfer.js + * @license BSD-3-Clause */ -/** @license React v16.12.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. +/*! ./ajax */ + +/*! ./drawer */ + +/*! ./drawer.canvasentry */ + +/*! ./drawer.multicanvas */ + +/*! ./extend */ + +/*! ./fetch */ + +/*! ./frame */ + +/*! ./get-id */ + +/*! ./max */ + +/*! ./mediaelement */ + +/*! ./mediaelement-webaudio */ + +/*! ./min */ + +/*! ./observer */ + +/*! ./peakcache */ + +/*! ./prevent-click */ + +/*! ./request-animation-frame */ + +/*! ./style */ + +/*! ./util */ + +/*! ./util/get-id */ + +/*! ./util/style */ + +/*! ./webaudio */ + +/*! debounce */ + +/*! https://mths.be/punycode v1.4.1 by @mathias */ + +/*! no static exports found */ + +/*!***********************!*\ + !*** ./src/drawer.js ***! + \***********************/ + +/*!*************************!*\ + !*** ./src/util/max.js ***! + \*************************/ + +/*!*************************!*\ + !*** ./src/util/min.js ***! + \*************************/ + +/*!*************************!*\ + !*** ./src/webaudio.js ***! + \*************************/ + +/*!**************************!*\ + !*** ./src/peakcache.js ***! + \**************************/ + +/*!**************************!*\ + !*** ./src/util/ajax.js ***! + \**************************/ + +/*!***************************!*\ + !*** ./src/util/fetch.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/frame.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/index.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/style.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/wavesurfer.js ***! + \***************************/ + +/*!****************************!*\ + !*** ./src/util/extend.js ***! + \****************************/ + +/*!****************************!*\ + !*** ./src/util/get-id.js ***! + \****************************/ + +/*!*****************************!*\ + !*** ./src/mediaelement.js ***! + \*****************************/ + +/*!******************************!*\ + !*** ./src/util/observer.js ***! + \******************************/ + +/*!***********************************!*\ + !*** ./src/drawer.canvasentry.js ***! + \***********************************/ + +/*!***********************************!*\ + !*** ./src/drawer.multicanvas.js ***! + \***********************************/ + +/*!***********************************!*\ + !*** ./src/util/prevent-click.js ***! + \***********************************/ + +/*!**************************************!*\ + !*** ./src/mediaelement-webaudio.js ***! + \**************************************/ + +/*!****************************************!*\ + !*** ./node_modules/debounce/index.js ***! + \****************************************/ + +/*!*********************************************!*\ + !*** ./src/util/request-animation-frame.js ***! + \*********************************************/ + +/** + * @license MIT + * @fileOverview Favico animations + * @author Miroslav Magda, http://blog.ejci.net + * @version 0.3.10 */ -/** @license React v0.18.0 +/** @license React v0.19.0 * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -54,149 +181,22 @@ object-assign * LICENSE file in the root directory of this source tree. */ -/*! - * wavesurfer.js 3.3.1 (2020-01-14) - * https://github.com/katspaugh/wavesurfer.js - * @license BSD-3-Clause +/** @license React v16.13.0 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ -/*!****************************************!*\ - !*** ./node_modules/debounce/index.js ***! - \****************************************/ - -/*! no static exports found */ - -/*!***********************************!*\ - !*** ./src/drawer.canvasentry.js ***! - \***********************************/ - -/*! ./util/style */ - -/*! ./util/get-id */ - -/*!***********************!*\ - !*** ./src/drawer.js ***! - \***********************/ - -/*! ./util */ - -/*!***********************************!*\ - !*** ./src/drawer.multicanvas.js ***! - \***********************************/ - -/*! ./drawer */ - -/*! ./drawer.canvasentry */ - -/*!**************************************!*\ - !*** ./src/mediaelement-webaudio.js ***! - \**************************************/ - -/*! ./mediaelement */ - -/*!*****************************!*\ - !*** ./src/mediaelement.js ***! - \*****************************/ - -/*! ./webaudio */ - -/*!**************************!*\ - !*** ./src/peakcache.js ***! - \**************************/ - -/*!**************************!*\ - !*** ./src/util/ajax.js ***! - \**************************/ - -/*! ./observer */ - -/*!****************************!*\ - !*** ./src/util/extend.js ***! - \****************************/ - -/*!***************************!*\ - !*** ./src/util/fetch.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/frame.js ***! - \***************************/ - -/*! ./request-animation-frame */ - -/*!****************************!*\ - !*** ./src/util/get-id.js ***! - \****************************/ - -/*!***************************!*\ - !*** ./src/util/index.js ***! - \***************************/ - -/*! ./ajax */ - -/*! ./get-id */ - -/*! ./max */ - -/*! ./min */ - -/*! ./extend */ - -/*! ./style */ - -/*! ./frame */ - -/*! debounce */ - -/*! ./prevent-click */ - -/*! ./fetch */ - -/*!*************************!*\ - !*** ./src/util/max.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/util/min.js ***! - \*************************/ - -/*!******************************!*\ - !*** ./src/util/observer.js ***! - \******************************/ - -/*!***********************************!*\ - !*** ./src/util/prevent-click.js ***! - \***********************************/ - -/*!*********************************************!*\ - !*** ./src/util/request-animation-frame.js ***! - \*********************************************/ - -/*!***************************!*\ - !*** ./src/util/style.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/wavesurfer.js ***! - \***************************/ - -/*! ./drawer.multicanvas */ - -/*! ./peakcache */ - -/*! ./mediaelement-webaudio */ - -/*!*************************!*\ - !*** ./src/webaudio.js ***! - \*************************/ - -/*! https://mths.be/punycode v1.4.1 by @mathias */ - -/** - * @license MIT - * @fileOverview Favico animations - * @author Miroslav Magda, http://blog.ejci.net - * @version 0.3.10 +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ /*@cc_on!@*/ diff --git a/priv/static/packs/flavours/glitch/home.js.map b/priv/static/packs/flavours/glitch/home.js.map index 09e328ab8..5a58c58f0 100644 Binary files a/priv/static/packs/flavours/glitch/home.js.map and b/priv/static/packs/flavours/glitch/home.js.map differ diff --git a/priv/static/packs/flavours/glitch/public.js b/priv/static/packs/flavours/glitch/public.js index 4bef46655..c983e7f64 100644 Binary files a/priv/static/packs/flavours/glitch/public.js and b/priv/static/packs/flavours/glitch/public.js differ diff --git a/priv/static/packs/flavours/glitch/public.js.LICENSE b/priv/static/packs/flavours/glitch/public.js.LICENSE.txt similarity index 91% rename from priv/static/packs/flavours/glitch/public.js.LICENSE rename to priv/static/packs/flavours/glitch/public.js.LICENSE.txt index 448b94017..2196b2def 100644 --- a/priv/static/packs/flavours/glitch/public.js.LICENSE +++ b/priv/static/packs/flavours/glitch/public.js.LICENSE.txt @@ -1,22 +1,10 @@ -/** @license React v16.12.0 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ -/** @license React v16.12.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v0.18.0 +/** @license React v0.19.0 * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -34,8 +22,20 @@ * LICENSE file in the root directory of this source tree. */ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ +/** @license React v16.13.0 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/priv/static/packs/flavours/glitch/public.js.map b/priv/static/packs/flavours/glitch/public.js.map index d55977ee9..b34718a35 100644 Binary files a/priv/static/packs/flavours/glitch/public.js.map and b/priv/static/packs/flavours/glitch/public.js.map differ diff --git a/priv/static/packs/flavours/glitch/settings.js b/priv/static/packs/flavours/glitch/settings.js index 1a4cc7926..2cf26d61e 100644 Binary files a/priv/static/packs/flavours/glitch/settings.js and b/priv/static/packs/flavours/glitch/settings.js differ diff --git a/priv/static/packs/flavours/glitch/settings.js.map b/priv/static/packs/flavours/glitch/settings.js.map index a787cb63f..41ba698a5 100644 Binary files a/priv/static/packs/flavours/glitch/settings.js.map and b/priv/static/packs/flavours/glitch/settings.js.map differ diff --git a/priv/static/packs/flavours/glitch/share.js b/priv/static/packs/flavours/glitch/share.js index 7af26420d..67e6ff793 100644 Binary files a/priv/static/packs/flavours/glitch/share.js and b/priv/static/packs/flavours/glitch/share.js differ diff --git a/priv/static/packs/flavours/glitch/share.js.LICENSE b/priv/static/packs/flavours/glitch/share.js.LICENSE.txt similarity index 98% rename from priv/static/packs/flavours/glitch/share.js.LICENSE rename to priv/static/packs/flavours/glitch/share.js.LICENSE.txt index 0a0301353..90a9a7678 100644 --- a/priv/static/packs/flavours/glitch/share.js.LICENSE +++ b/priv/static/packs/flavours/glitch/share.js.LICENSE.txt @@ -1,3 +1,9 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + /*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see @@ -12,31 +18,145 @@ * MIT Licensed */ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/** @license React v16.12.0 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. +/*! + * wavesurfer.js 3.3.1 (2020-01-14) + * https://github.com/katspaugh/wavesurfer.js + * @license BSD-3-Clause */ -/** @license React v16.12.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ +/*! ./ajax */ -/** @license React v0.18.0 +/*! ./drawer */ + +/*! ./drawer.canvasentry */ + +/*! ./drawer.multicanvas */ + +/*! ./extend */ + +/*! ./fetch */ + +/*! ./frame */ + +/*! ./get-id */ + +/*! ./max */ + +/*! ./mediaelement */ + +/*! ./mediaelement-webaudio */ + +/*! ./min */ + +/*! ./observer */ + +/*! ./peakcache */ + +/*! ./prevent-click */ + +/*! ./request-animation-frame */ + +/*! ./style */ + +/*! ./util */ + +/*! ./util/get-id */ + +/*! ./util/style */ + +/*! ./webaudio */ + +/*! debounce */ + +/*! https://mths.be/punycode v1.4.1 by @mathias */ + +/*! no static exports found */ + +/*!***********************!*\ + !*** ./src/drawer.js ***! + \***********************/ + +/*!*************************!*\ + !*** ./src/util/max.js ***! + \*************************/ + +/*!*************************!*\ + !*** ./src/util/min.js ***! + \*************************/ + +/*!*************************!*\ + !*** ./src/webaudio.js ***! + \*************************/ + +/*!**************************!*\ + !*** ./src/peakcache.js ***! + \**************************/ + +/*!**************************!*\ + !*** ./src/util/ajax.js ***! + \**************************/ + +/*!***************************!*\ + !*** ./src/util/fetch.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/frame.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/index.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/style.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/wavesurfer.js ***! + \***************************/ + +/*!****************************!*\ + !*** ./src/util/extend.js ***! + \****************************/ + +/*!****************************!*\ + !*** ./src/util/get-id.js ***! + \****************************/ + +/*!*****************************!*\ + !*** ./src/mediaelement.js ***! + \*****************************/ + +/*!******************************!*\ + !*** ./src/util/observer.js ***! + \******************************/ + +/*!***********************************!*\ + !*** ./src/drawer.canvasentry.js ***! + \***********************************/ + +/*!***********************************!*\ + !*** ./src/drawer.multicanvas.js ***! + \***********************************/ + +/*!***********************************!*\ + !*** ./src/util/prevent-click.js ***! + \***********************************/ + +/*!**************************************!*\ + !*** ./src/mediaelement-webaudio.js ***! + \**************************************/ + +/*!****************************************!*\ + !*** ./node_modules/debounce/index.js ***! + \****************************************/ + +/*!*********************************************!*\ + !*** ./src/util/request-animation-frame.js ***! + \*********************************************/ + +/** @license React v0.19.0 * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -54,140 +174,20 @@ object-assign * LICENSE file in the root directory of this source tree. */ -/*! - * wavesurfer.js 3.3.1 (2020-01-14) - * https://github.com/katspaugh/wavesurfer.js - * @license BSD-3-Clause +/** @license React v16.13.0 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ -/*!****************************************!*\ - !*** ./node_modules/debounce/index.js ***! - \****************************************/ - -/*! no static exports found */ - -/*!***********************************!*\ - !*** ./src/drawer.canvasentry.js ***! - \***********************************/ - -/*! ./util/style */ - -/*! ./util/get-id */ - -/*!***********************!*\ - !*** ./src/drawer.js ***! - \***********************/ - -/*! ./util */ - -/*!***********************************!*\ - !*** ./src/drawer.multicanvas.js ***! - \***********************************/ - -/*! ./drawer */ - -/*! ./drawer.canvasentry */ - -/*!**************************************!*\ - !*** ./src/mediaelement-webaudio.js ***! - \**************************************/ - -/*! ./mediaelement */ - -/*!*****************************!*\ - !*** ./src/mediaelement.js ***! - \*****************************/ - -/*! ./webaudio */ - -/*!**************************!*\ - !*** ./src/peakcache.js ***! - \**************************/ - -/*!**************************!*\ - !*** ./src/util/ajax.js ***! - \**************************/ - -/*! ./observer */ - -/*!****************************!*\ - !*** ./src/util/extend.js ***! - \****************************/ - -/*!***************************!*\ - !*** ./src/util/fetch.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/frame.js ***! - \***************************/ - -/*! ./request-animation-frame */ - -/*!****************************!*\ - !*** ./src/util/get-id.js ***! - \****************************/ - -/*!***************************!*\ - !*** ./src/util/index.js ***! - \***************************/ - -/*! ./ajax */ - -/*! ./get-id */ - -/*! ./max */ - -/*! ./min */ - -/*! ./extend */ - -/*! ./style */ - -/*! ./frame */ - -/*! debounce */ - -/*! ./prevent-click */ - -/*! ./fetch */ - -/*!*************************!*\ - !*** ./src/util/max.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/util/min.js ***! - \*************************/ - -/*!******************************!*\ - !*** ./src/util/observer.js ***! - \******************************/ - -/*!***********************************!*\ - !*** ./src/util/prevent-click.js ***! - \***********************************/ - -/*!*********************************************!*\ - !*** ./src/util/request-animation-frame.js ***! - \*********************************************/ - -/*!***************************!*\ - !*** ./src/util/style.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/wavesurfer.js ***! - \***************************/ - -/*! ./drawer.multicanvas */ - -/*! ./peakcache */ - -/*! ./mediaelement-webaudio */ - -/*!*************************!*\ - !*** ./src/webaudio.js ***! - \*************************/ - -/*! https://mths.be/punycode v1.4.1 by @mathias */ +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/priv/static/packs/flavours/glitch/share.js.map b/priv/static/packs/flavours/glitch/share.js.map index 7e35c663a..92384b100 100644 Binary files a/priv/static/packs/flavours/glitch/share.js.map and b/priv/static/packs/flavours/glitch/share.js.map differ diff --git a/priv/static/packs/flavours/vanilla/about.js b/priv/static/packs/flavours/vanilla/about.js index be2b2196b..715247a5e 100644 Binary files a/priv/static/packs/flavours/vanilla/about.js and b/priv/static/packs/flavours/vanilla/about.js differ diff --git a/priv/static/packs/flavours/vanilla/home.js.LICENSE b/priv/static/packs/flavours/vanilla/about.js.LICENSE.txt similarity index 98% rename from priv/static/packs/flavours/vanilla/home.js.LICENSE rename to priv/static/packs/flavours/vanilla/about.js.LICENSE.txt index 0a0301353..90a9a7678 100644 --- a/priv/static/packs/flavours/vanilla/home.js.LICENSE +++ b/priv/static/packs/flavours/vanilla/about.js.LICENSE.txt @@ -1,3 +1,9 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + /*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see @@ -12,31 +18,145 @@ * MIT Licensed */ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/** @license React v16.12.0 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. +/*! + * wavesurfer.js 3.3.1 (2020-01-14) + * https://github.com/katspaugh/wavesurfer.js + * @license BSD-3-Clause */ -/** @license React v16.12.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ +/*! ./ajax */ -/** @license React v0.18.0 +/*! ./drawer */ + +/*! ./drawer.canvasentry */ + +/*! ./drawer.multicanvas */ + +/*! ./extend */ + +/*! ./fetch */ + +/*! ./frame */ + +/*! ./get-id */ + +/*! ./max */ + +/*! ./mediaelement */ + +/*! ./mediaelement-webaudio */ + +/*! ./min */ + +/*! ./observer */ + +/*! ./peakcache */ + +/*! ./prevent-click */ + +/*! ./request-animation-frame */ + +/*! ./style */ + +/*! ./util */ + +/*! ./util/get-id */ + +/*! ./util/style */ + +/*! ./webaudio */ + +/*! debounce */ + +/*! https://mths.be/punycode v1.4.1 by @mathias */ + +/*! no static exports found */ + +/*!***********************!*\ + !*** ./src/drawer.js ***! + \***********************/ + +/*!*************************!*\ + !*** ./src/util/max.js ***! + \*************************/ + +/*!*************************!*\ + !*** ./src/util/min.js ***! + \*************************/ + +/*!*************************!*\ + !*** ./src/webaudio.js ***! + \*************************/ + +/*!**************************!*\ + !*** ./src/peakcache.js ***! + \**************************/ + +/*!**************************!*\ + !*** ./src/util/ajax.js ***! + \**************************/ + +/*!***************************!*\ + !*** ./src/util/fetch.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/frame.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/index.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/style.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/wavesurfer.js ***! + \***************************/ + +/*!****************************!*\ + !*** ./src/util/extend.js ***! + \****************************/ + +/*!****************************!*\ + !*** ./src/util/get-id.js ***! + \****************************/ + +/*!*****************************!*\ + !*** ./src/mediaelement.js ***! + \*****************************/ + +/*!******************************!*\ + !*** ./src/util/observer.js ***! + \******************************/ + +/*!***********************************!*\ + !*** ./src/drawer.canvasentry.js ***! + \***********************************/ + +/*!***********************************!*\ + !*** ./src/drawer.multicanvas.js ***! + \***********************************/ + +/*!***********************************!*\ + !*** ./src/util/prevent-click.js ***! + \***********************************/ + +/*!**************************************!*\ + !*** ./src/mediaelement-webaudio.js ***! + \**************************************/ + +/*!****************************************!*\ + !*** ./node_modules/debounce/index.js ***! + \****************************************/ + +/*!*********************************************!*\ + !*** ./src/util/request-animation-frame.js ***! + \*********************************************/ + +/** @license React v0.19.0 * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -54,140 +174,20 @@ object-assign * LICENSE file in the root directory of this source tree. */ -/*! - * wavesurfer.js 3.3.1 (2020-01-14) - * https://github.com/katspaugh/wavesurfer.js - * @license BSD-3-Clause +/** @license React v16.13.0 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ -/*!****************************************!*\ - !*** ./node_modules/debounce/index.js ***! - \****************************************/ - -/*! no static exports found */ - -/*!***********************************!*\ - !*** ./src/drawer.canvasentry.js ***! - \***********************************/ - -/*! ./util/style */ - -/*! ./util/get-id */ - -/*!***********************!*\ - !*** ./src/drawer.js ***! - \***********************/ - -/*! ./util */ - -/*!***********************************!*\ - !*** ./src/drawer.multicanvas.js ***! - \***********************************/ - -/*! ./drawer */ - -/*! ./drawer.canvasentry */ - -/*!**************************************!*\ - !*** ./src/mediaelement-webaudio.js ***! - \**************************************/ - -/*! ./mediaelement */ - -/*!*****************************!*\ - !*** ./src/mediaelement.js ***! - \*****************************/ - -/*! ./webaudio */ - -/*!**************************!*\ - !*** ./src/peakcache.js ***! - \**************************/ - -/*!**************************!*\ - !*** ./src/util/ajax.js ***! - \**************************/ - -/*! ./observer */ - -/*!****************************!*\ - !*** ./src/util/extend.js ***! - \****************************/ - -/*!***************************!*\ - !*** ./src/util/fetch.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/frame.js ***! - \***************************/ - -/*! ./request-animation-frame */ - -/*!****************************!*\ - !*** ./src/util/get-id.js ***! - \****************************/ - -/*!***************************!*\ - !*** ./src/util/index.js ***! - \***************************/ - -/*! ./ajax */ - -/*! ./get-id */ - -/*! ./max */ - -/*! ./min */ - -/*! ./extend */ - -/*! ./style */ - -/*! ./frame */ - -/*! debounce */ - -/*! ./prevent-click */ - -/*! ./fetch */ - -/*!*************************!*\ - !*** ./src/util/max.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/util/min.js ***! - \*************************/ - -/*!******************************!*\ - !*** ./src/util/observer.js ***! - \******************************/ - -/*!***********************************!*\ - !*** ./src/util/prevent-click.js ***! - \***********************************/ - -/*!*********************************************!*\ - !*** ./src/util/request-animation-frame.js ***! - \*********************************************/ - -/*!***************************!*\ - !*** ./src/util/style.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/wavesurfer.js ***! - \***************************/ - -/*! ./drawer.multicanvas */ - -/*! ./peakcache */ - -/*! ./mediaelement-webaudio */ - -/*!*************************!*\ - !*** ./src/webaudio.js ***! - \*************************/ - -/*! https://mths.be/punycode v1.4.1 by @mathias */ +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/priv/static/packs/flavours/vanilla/about.js.map b/priv/static/packs/flavours/vanilla/about.js.map index df789e98d..42e76990e 100644 Binary files a/priv/static/packs/flavours/vanilla/about.js.map and b/priv/static/packs/flavours/vanilla/about.js.map differ diff --git a/priv/static/packs/flavours/vanilla/admin.js b/priv/static/packs/flavours/vanilla/admin.js index 1187d5f1d..5fbc17639 100644 Binary files a/priv/static/packs/flavours/vanilla/admin.js and b/priv/static/packs/flavours/vanilla/admin.js differ diff --git a/priv/static/packs/flavours/vanilla/admin.js.LICENSE b/priv/static/packs/flavours/vanilla/admin.js.LICENSE.txt similarity index 91% rename from priv/static/packs/flavours/vanilla/admin.js.LICENSE rename to priv/static/packs/flavours/vanilla/admin.js.LICENSE.txt index 487bc60d8..2196b2def 100644 --- a/priv/static/packs/flavours/vanilla/admin.js.LICENSE +++ b/priv/static/packs/flavours/vanilla/admin.js.LICENSE.txt @@ -4,25 +4,7 @@ object-assign @license MIT */ -/** @license React v16.12.0 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v0.18.0 +/** @license React v0.19.0 * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -39,3 +21,21 @@ object-assign * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ + +/** @license React v16.13.0 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/priv/static/packs/flavours/vanilla/admin.js.map b/priv/static/packs/flavours/vanilla/admin.js.map index 742c31b83..781e07de0 100644 Binary files a/priv/static/packs/flavours/vanilla/admin.js.map and b/priv/static/packs/flavours/vanilla/admin.js.map differ diff --git a/priv/static/packs/flavours/vanilla/common.css b/priv/static/packs/flavours/vanilla/common.css index ce2318757..5f844cca6 100644 Binary files a/priv/static/packs/flavours/vanilla/common.css and b/priv/static/packs/flavours/vanilla/common.css differ diff --git a/priv/static/packs/flavours/vanilla/common.css.map b/priv/static/packs/flavours/vanilla/common.css.map index 4a6d0a5e6..9f54b0023 100644 --- a/priv/static/packs/flavours/vanilla/common.css.map +++ b/priv/static/packs/flavours/vanilla/common.css.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///application.scss","webpack:///./app/javascript/styles/mastodon/reset.scss","webpack:///./app/javascript/styles/mastodon/variables.scss","webpack:///./app/javascript/styles/mastodon/basics.scss","webpack:///./app/javascript/styles/mastodon/containers.scss","webpack:///./app/javascript/styles/mastodon/lists.scss","webpack:///./app/javascript/styles/mastodon/footer.scss","webpack:///./app/javascript/styles/mastodon/compact_header.scss","webpack:///./app/javascript/styles/mastodon/widgets.scss","webpack:///./app/javascript/styles/mastodon/forms.scss","webpack:///./app/javascript/styles/mastodon/accounts.scss","webpack:///./app/javascript/styles/mastodon/statuses.scss","webpack:///./app/javascript/styles/mastodon/boost.scss","webpack:///./app/javascript/styles/mastodon/components.scss","webpack:///","webpack:///./app/javascript/styles/mastodon/_mixins.scss","webpack:///./app/javascript/styles/mastodon/polls.scss","webpack:///./app/javascript/styles/mastodon/modal.scss","webpack:///./app/javascript/styles/mastodon/emoji_picker.scss","webpack:///./app/javascript/styles/mastodon/about.scss","webpack:///./app/javascript/styles/mastodon/tables.scss","webpack:///./app/javascript/styles/mastodon/admin.scss","webpack:///./app/javascript/styles/mastodon/dashboard.scss","webpack:///./app/javascript/styles/mastodon/rtl.scss","webpack:///./app/javascript/styles/mastodon/accessibility.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,sCACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,0BACA,CCtEW,iED6Eb,kBC7Ea,4BDiFb,sBACE,MErFF,iDACE,mBACA,eACA,iBACA,gBACA,WDXM,kCCaN,6BACA,8BACA,CADA,0BACA,CADA,yBACA,CADA,qBACA,0CACA,wCACA,kBAEA,iKAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBD7CW,kBCiDX,iBACE,kBACA,0BAEA,iBACE,aAIJ,iBACE,YAGF,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cD3EoB,mBAPX,WCqFT,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,sCAGE,aACE,gBACA,WACA,YACA,kBACA,uBAIJ,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,kDAKF,YAGE,WACA,mBACA,uBACA,oBACA,sBAGF,YACE,yEAKF,gBAEE,+EAKF,WAEE,sCAIJ,qBAEE,eACA,gBACA,gBACA,cACA,kBACA,8CAEA,eACE,0CAGF,mBACE,gEAEA,eACE,0CAIJ,aDtKwB,kKCyKtB,oBAGE,sDAIJ,aDpKsB,eCsKpB,0DAEA,aDxKoB,oDC6KtB,cACE,SACA,uBACA,cDhLoB,aCkLpB,UACA,SACA,oBACA,eACA,UACA,4BACA,0BACA,gMAEA,oBAGE,kEAGF,aD9NY,gBCgOV,gBCnON,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SFrBI,YEuBF,kBACA,sBAGF,YACE,uBACA,mBACA,WF9BE,qBEgCF,UACA,kBACA,iBACA,6CACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAGF,UACE,YACA,iBACA,6BAEA,UACE,YACA,cACA,SACA,kBACA,uBAIJ,aACE,cF7EsB,wBE+EtB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UFxUA,qCE2UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cF7UkB,mBE+UlB,kBACA,uHAEA,yBAGE,WFrWA,qCEyWF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBFtaoB,8CE2atB,yBACE,gBACA,aACA,kBACA,gBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,YACA,aACA,kBACA,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,qCAIJ,2CArCF,YAsCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAGF,UACE,YACA,CACA,sBACA,wDAEA,QACE,kBACA,2DAGF,mDAXF,YAYI,sCAKN,2CAhEF,eAiEI,sCAGF,2CApEF,cAqEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WF1kBF,gBE4kBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WFplBJ,gBEslBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aF5lBY,oDEmmBlB,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cFxnBc,aE0nBd,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BFzpBc,wEE+pBd,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WFnsBJ,6CEqsBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cFztBgB,uDE4tBhB,oBACE,cF7tBc,qBE+tBd,aACA,gBACA,8DAEA,eACE,WFpvBJ,qCE0vBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aFryBU,8DE2yBV,mBACA,WF7yBE,qFEizBJ,YAEE,eACA,cFpyBkB,2CEwyBpB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBF32BK,+IE82BH,kBAGE,WC53BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,wBCfF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,eACE,kBACA,cJ/EkB,6BIkFlB,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBCjIR,cACE,iBACA,cLeoB,gBKbpB,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cLFoB,wBKMtB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBNPI,uBMUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBNVW,aMYT,0BACA,eACA,cNPoB,iBMSpB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aNtCsB,qBMwCpB,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,gBACA,eACA,cN7DoB,+BMiEtB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aN1FsB,aM+FxB,YACE,kBACA,mBNxGW,mCM0GX,qBAGF,YACE,kBACA,0BACA,kBACA,cN1GsB,mBM4GtB,iBAGF,eACE,eACA,cNjHsB,iBMmHtB,qBACA,gBACA,UACA,oBAEA,YACE,gBACA,eACA,cN3HoB,0BM+HtB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cNxIoB,qBM0IpB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBNjKW,mCMmKX,cN3JwB,gBM6JxB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cNvMkB,8DM6MpB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eNhPM,CMkPN,cACA,cNlOsB,mBMoOtB,+BANA,iBACA,CNhPM,kCM8PN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,UN/PM,eMiQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cNxPoB,qCM4PtB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBN7Qa,kBM+QX,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBN1RO,kBM4RP,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBNlSsB,eMoSpB,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WNjUE,mBMmUF,gBACA,uBACA,wBAEA,aNvTkB,0BM2TlB,aACE,gBACA,eACA,eACA,cN/TgB,0IMqUlB,UNrVE,+BM6VJ,aACE,YACA,uDAGF,oBNhVsB,wCMoVtB,eACE,eAKN,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,cNrYoB,gBMuYpB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WN7aI,8BMgbJ,aACE,cNjakB,gBMmalB,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aNlgBsB,iCMigBxB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cNrhBsB,4JMwhBtB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WNhkBI,gCMkkBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MCjlBJ,+CACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WPhDA,cOkDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aPnDoB,0BOqDlB,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aPpFsB,sBOuFpB,aPrFsB,yBOyFtB,iBACE,kBACA,gBACA,uBAGF,eACE,iBACA,sBAIJ,kBACE,wBAGF,aACE,eACA,eACA,qBAGF,kBACE,cPlHoB,iCOqHpB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WPlKA,gBOoKA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WPxLE,cO0LF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WP9ME,cOgNF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,6BAIJ,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WP5RI,cO8RJ,WACA,2CAKE,mBACE,eACA,WPtSA,qBOwSA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WPtUI,cOwUJ,WACA,UACA,oBACA,gBACA,mBACA,sBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,wQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBP7VY,oLOiWZ,iBACE,4WAGF,oBPpVsB,mBOuVpB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBPrYsB,WAlBlB,eO0ZJ,oBACA,YACA,aACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBPpaoB,gGOwapB,kBPtbQ,kHOybN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WPzcI,cO2cJ,WACA,UACA,oBACA,gBACA,wXACA,sBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cPzckB,oBO2clB,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,8DACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,8BACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UPvhBF,aOiiBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cPzhBsB,kBO2hBtB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cPjjBY,sBOqjBd,mCACE,+BACA,cPtjBQ,kBO0jBV,oBACE,cP7iBoB,qBO+iBpB,wBAEA,UPjkBI,0BOmkBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBPzkBS,WATL,eOqlBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aP1mBsB,qBO4mBpB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aP5nBwB,qBO8nBtB,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cP7oBsB,oCOgpBtB,cACE,mBACA,kBACA,4CAGF,aPrpBwB,gBOupBtB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBP7rBM,YO+rBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cP1rBwB,WO4rBxB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WPzuBI,qCO2uBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UPjvBI,0BOmvBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cPhxBsB,0BOmxBtB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WP7yBI,kBO+yBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aPvzBc,0SOi0BZ,+CACE,aAIJ,kBACE,sBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gDACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBP32Bc,gBO62BZ,2BAEA,kBP/2BY,gBOi3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SCl7BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,gBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,WACA,YACA,gBACA,wBAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WR7EA,gBQ+EA,gBACA,uBACA,+BAGF,aACE,eACA,cRtEgB,gBQwEhB,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WR3GI,gBQ6GJ,qBACA,iBACA,qBACA,sBAGF,eRnHM,oBQqHJ,cR5GS,eQ8GT,cACA,kBAGF,cACE,uCAGF,aR9GwB,oBQmHxB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,cACA,qCAGF,YA7DF,iBA8DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBRlKa,mCQoKX,cR7JsB,eQ+JtB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cR3LwB,sCQ6LxB,sCACA,6DAEA,aRhNc,sCQkNZ,kCACA,qDAGF,aACE,sCACA,kCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cR1OsB,0BQ4OtB,6BAGF,aACE,cRjPoB,4BQqPtB,aRnPwB,qBQqPtB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aRnRY,gBQqRV,0CAGF,aRxRY,wCQ6Rd,eACE,wCAIJ,UACE,0BAIA,aRxRsB,4BQ2RpB,aR1RsB,qBQ4RpB,qGAEA,yBAGE,iCAIJ,URtTI,gBQwTF,wBAIJ,eACE,kBC/TJ,kCACE,kBACA,gBACA,mBACA,8BAEA,yBACE,qCAGF,iBAVF,eAWI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBTpBW,6GSuBT,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBT7DwB,WAlBlB,oBSkFN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UT5FI,gFSgGN,kBAGE,qNAKA,kBTxFoB,4ISgGpB,kBT9GQ,qCSqHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAGF,gBACE,iBACA,mFAGF,UACE,qMAGF,eAGE,iCC/JN,u+KACE,uCAEA,u+KACE,0CAIJ,u+KACE,WCTF,gCACE,4CACA,cAGF,aACE,eACA,iBACA,cXYwB,SWVxB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,aXFsB,eWIpB,SAIJ,wBXN0B,YWQxB,kBACA,sBACA,WX5BM,eW8BN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,qBACA,uBACA,2BACA,mBACA,WACA,4CAEA,wBAGE,4BACA,sBAGF,eACE,mFAEA,wBXxDQ,gBW4DN,mCAIJ,wBXlDsB,eWqDpB,2BAGF,QACE,wDAGF,mBAGE,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,aXpFW,mBAOW,qGWiFpB,wBAGE,8BAIJ,kBX1EsB,2GW6EpB,wBAGE,0BAIJ,aXlGsB,uBWoGpB,iBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,kBAIJ,YACE,cACA,kBACA,cAGF,oBACE,UACA,cXpHsB,SWsHtB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,qCACA,4BACA,2CACA,oBAGF,mCACE,uBAGF,aACE,6BACA,eACA,qBAGF,aX5JwB,gCWgKxB,QACE,uEAGF,mBAGE,uBAGF,aX9JsB,sFWiKpB,aAGE,qCACA,6BAGF,mCACE,gCAGF,aACE,6BACA,8BAGF,aX7LsB,uCWgMpB,aACE,wBAKN,sBACE,0BACA,yBACA,kBACA,YACA,8BAEA,yBACE,mBAKN,aXvMwB,SWyMtB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,qCACA,4BACA,2CACA,yBAGF,mCACE,4BAGF,aACE,6BACA,eACA,0BAGF,aXpPwB,qCWwPxB,QACE,sFAGF,mBAGE,CAKF,0BADF,iBAUE,CATA,WAGF,WACE,cACA,qBACA,QACA,SAEA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,eAIJ,YACE,iCAGE,mBACA,eAEA,gBACA,wCAEA,aXzSsB,sDW6StB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBX9ToB,yDWqUxB,aX9UW,mBWgVT,mBXzUoB,oCW2UpB,iBACA,kBACA,eACA,gBACA,6CAEA,aXxVS,gBW0VP,CAII,kRADF,eACE,wCAKN,aX9UoB,gBWgVlB,0BACA,yIAEA,oBAGE,sCAKN,iBACE,QACA,UACA,kDAGF,iBACE,mGAGF,iBAGE,WACA,8BAGF,QACE,wBACA,UACA,qDAEA,WACE,mBACA,UACA,mFAIJ,aAEE,sBACA,WACA,SACA,cXlZS,gBATL,aW8ZJ,oBACA,eACA,gBACA,SACA,UACA,yIAEA,aXvYoB,CWqYpB,sHAEA,aXvYoB,CWqYpB,8HAEA,aXvYoB,CWqYpB,gIAEA,aXvYoB,CWqYpB,4GAEA,aXvYoB,+FW2YpB,SACE,qCAGF,kFAvBF,cAwBI,sCAIJ,iBACE,+CAGF,gBACE,0BACA,iBACA,mBACA,YACA,qBACA,kEAEA,SACE,qCAGF,8CAZF,sBAaI,gBACA,2DAIJ,iBACE,SACA,kDAGF,qBACE,aACA,kBACA,SACA,WACA,WACA,sCACA,mBXncsB,0BWqctB,cX7cS,eW+cT,YACA,6FAEA,aACE,wDAIJ,YACE,eACA,kBACA,yPAEA,kBAIE,wGAIJ,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,oCAGF,6BACE,0CAEA,aACE,gBACA,uBACA,mBACA,2CAGF,eACE,0CAGF,aACE,iBACA,gBACA,uBACA,mBACA,8EAIJ,aAEE,iBACA,WACA,YACA,2DAGF,aXzfsB,wCW6ftB,aXlhBW,oBWohBT,eACA,gBX9hBI,sEWiiBJ,eACE,uEAGF,YACE,mBACA,YACA,eACA,8DAGF,UACE,cACA,WACA,uEAEA,iFACE,aACA,uBACA,8BACA,UACA,4BACA,oFAEA,aACE,cXziBgB,eW2iBhB,gBACA,aACA,oBACA,6QAEA,aAGE,8EAIJ,SACE,0EAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,gFACA,aACA,UACA,4BACA,mFAEA,sBACE,cXzkBgB,SW2kBhB,UACA,SACA,WACA,oBACA,eACA,gBACA,yFAEA,UXpmBF,8GWwmBE,WACE,cXxlBc,CAjBlB,oGWwmBE,WACE,cXxlBc,CAjBlB,wGWwmBE,WACE,cXxlBc,CAjBlB,yGWwmBE,WACE,cXxlBc,CAjBlB,+FWwmBE,WACE,cXxlBc,iFW6lBlB,SACE,wEAKN,iBACE,sBXtnBE,wBWwnBF,sBACA,4BACA,aACA,WACA,gBACA,8CAIJ,YACE,mBACA,0BACA,aACA,8BACA,cACA,qEAEA,YACE,uGAEA,gBACE,qGAGF,YACE,6IAEA,aACE,2IAGF,gBACE,0HAKN,sBAEE,cACA,0EAGF,iBACE,iBACA,sCAIJ,YACE,yBACA,YACA,cACA,4EAEA,eACE,iBACA,oBAKN,cACE,kDACA,eACA,gBACA,cX3pBsB,4CW8pBtB,aXzrBY,kCW8rBd,2CACE,WCpsBF,8DDysBE,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,kBAIJ,iBACE,mBACA,mBXpsBsB,aWssBtB,gBACA,gBACA,cACA,0BAGF,iBACE,gBACA,0BAGF,WACE,iBACA,gCAGF,aX7tBa,cW+tBX,eACA,iBACA,gBACA,mBACA,qBACA,kCAGF,UACE,iBACA,+BAGF,cACE,4CAGF,iBAEE,eACA,iBACA,qBACA,gBACA,gBACA,uBACA,gBACA,WXlwBM,wDWqwBN,SACE,wGAGF,kBACE,sJAEA,oBACE,gEAIJ,UACE,YACA,gBACA,oDAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,gDAGF,kBACE,qBACA,sEAEA,eACE,gDAIJ,aX1xBc,qBW4xBZ,4DAEA,yBACE,oEAEA,aACE,4EAKF,oBACE,sFAEA,yBACE,wDAKN,aX9xBoB,8EWmyBtB,aACE,0GAGF,kBXvyBsB,sHW0yBpB,kBACE,qBACA,8IAGF,QACE,0XAGF,mBAGE,0FAIJ,YACE,wJAEA,aACE,6CAKN,gBACE,oCAGF,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,oFAEA,yBAEE,gCAIJ,oBACE,kBACA,uBACA,SACA,cXh3BW,gBWk3BX,eACA,cACA,iBACA,eACA,sBACA,4BAGF,aXr2BwB,SWu2BtB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,kBAIA,SACE,mBACA,wCAEA,kBACE,8CAEA,sBACE,iFAIJ,kBAEE,SAMJ,yBACA,kBACA,gBACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QARF,kBAWI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,aX37BoB,CAPX,uEW28BP,aX38BO,kCW+8BP,aXx8BkB,gCW68BpB,aXp9BS,kCWu9BP,aX98BoB,gEWk9BpB,UXp+BE,mBAgBgB,sEWw9BhB,kBACE,+CAQR,sBACE,qEAEA,aACE,qDAKN,aX59BwB,YW+9BtB,eACA,uBAGF,aXn+BwB,qCWu+BxB,aACE,eACA,mBACA,eAGF,cACE,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,cXvhCsB,CWyhCtB,iBACA,eACA,kBACA,+CAEA,aX9hCsB,uBWkiCtB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cX3jCkB,4BWikCxB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,kEAGF,gBACE,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cXznCsB,eW2nCtB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,2BAGF,aX1qCa,eW4qCX,6BAEA,aXzpCsB,SW8pCxB,YACE,gCACA,8BAEA,aACE,cACA,WXlsCI,qBWosCJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,UAGF,YACE,gCACA,kBAEA,SACE,gBACA,2CAEA,aACE,iCAIJ,aACE,cACA,cXntCoB,gBWqtCpB,qBACA,eACA,mBAIJ,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,iBEtvCE,iCACA,wBACA,4BACA,kBFqvCA,yBAEA,oBACE,sBACA,iBACA,4BAGF,iBEhwCA,iCACA,wBACA,4BACA,kBF+vCE,gBACA,kBACA,eACA,gCAEA,UACE,kBACA,sBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WXjxCE,6BWmxCF,gBACA,eACA,oBAKN,cACE,0BAGF,UACuB,sCEvxCrB,+BFyxCA,iBElyCA,iCACA,wBACA,4BACA,WFiyCuB,sCE3xCvB,kCF8xCA,iBEvyCA,iCACA,wBACA,4BACA,WFsyCuB,sCEhyCvB,kBFkyCE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,sBAGF,YACE,6BACA,cX3xCsB,6BW8xCtB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,+BAGF,YACE,4CAEA,qBACE,oFAIA,QACE,WACA,uDAGF,WACE,iBACA,gBACA,WACA,4BAKN,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,+BACA,eACA,oCACA,kCAEA,+BACE,gCAGF,aACE,eACA,cXv3CoB,kCW23CtB,aACE,eACA,gBACA,WX94CI,CWm5CA,2NADF,eACE,oBAMR,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,6JAGF,oBAME,4DAKA,UXn7CM,kBWy7CN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,aXr8C0B,cWu8CxB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WXr+CI,kCW0+CR,UACE,kBACA,iBAGF,WACE,UACA,kBACA,SACA,WACA,iBAGF,UACE,kBACA,OACA,MACA,YACA,eACA,CX/9CsB,gHWy+CtB,aXz+CsB,wBW6+CtB,UACE,wCAGF,kBXj/CsB,cArBX,8CW0gDT,kBACE,qBACA,wBAKN,oBACE,gBACA,eACA,cX7gDsB,eW+gDtB,iBACA,kBACA,4BAEA,aXjhDwB,6BWqhDxB,cACE,gBACA,uBACA,uCAIJ,UACE,kBACA,CX5iDU,mEWmjDZ,aXnjDY,uBWujDZ,aXxjDc,4DW8jDV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UXllDM,0BWolDJ,8BAIJ,WACE,eAGF,aACE,eACA,gBACA,uBACA,mBACA,qBAGF,eACE,wBAGF,cACE,+DAKA,yBACE,eAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cXzkD4B,eAEC,0DW0kD3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cXjmD4B,eAEC,WWkmD3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,iBAIJ,YACE,aACA,mBACA,cACA,eACA,cXlpDsB,wBWqpDtB,aXppDwB,mBWwpDxB,aACE,4BAGF,oBACE,0CAGF,iBACE,6DAEA,iBACE,oBACA,qCACA,UACA,4EAGF,mBACE,gCACA,UACA,0BAKN,aACE,gBACA,iBACA,gBACA,gBACA,kCAGF,aACE,gBACA,gBACA,uBACA,+BAGF,aACE,qBACA,WAGF,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBXrtD0B,cWutDxB,kBACA,uCACA,aACA,mBAEA,eACE,qBAGF,yBACE,oBAGF,yBACE,uBAGF,sBACE,sBAGF,sBACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BX1vDsB,2BW8vDxB,WACE,iBACA,uBACA,yBXjwDsB,8BWqwDxB,QACE,iBACA,uBACA,4BXxwDsB,6BW4wDxB,SACE,gBACA,2BACA,2BX/wDsB,wBWqxDxB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBX3xDsB,cARb,gBWsyDT,uBACA,mBACA,yFAEA,kBXjyDsB,cADA,UWuyDpB,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBXrzDsB,cWuzDtB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBX90DsB,cARb,gBWy1DT,uBACA,mBACA,oDAEA,SACE,oDAGF,kBXx1DsB,cADA,iBWg2D1B,qBACE,eAGF,YACE,cACA,mBACA,2BACA,gBACA,kBACA,4BAEA,iBACE,uBAGF,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,gKAMJ,WAIE,mCAIJ,YACE,mBACA,uBACA,YACA,SAGF,WACE,kBACA,sBACA,aACA,sBACA,qBAEA,kBX78DW,8BW+8DT,+BACA,KAIJ,aACE,CACA,qBACA,WACA,YACA,aAJA,YAYA,CARA,QAGF,WACE,sBACA,CACA,qBACA,kBACA,cAGF,aACE,cACA,sBACA,cXh+DsB,qBWk+DtB,kBACA,eACA,oCACA,iBAGF,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WXxiEM,qBW0iEN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCAMA,mEAHF,kBAII,4BACA,yBAIJ,+BACE,cX/iEsB,sBWmjExB,eACE,aACA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,YACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,2BACE,gBACA,uCAEA,SACE,SACA,wCAGF,eACE,wCAGF,gBACE,iBACA,qDAGF,UACE,gLAGF,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,iBACA,6DAGF,UACE,CAIA,yFAGF,eACE,8DAGF,gBACE,kBACA,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WX/uEM,kBWivEN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,4DAGF,kBAGE,yBAGF,aACE,iBAGF,eAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,mBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBXxyEsB,yBW0yEtB,gBACA,kBACA,eACA,gBACA,iBACA,WXj0EI,mDWs0ER,oBACE,gBAGF,WACE,gBACA,aACA,sBACA,yBACA,kBACA,gCAEA,gBACE,oBACA,cACA,gBACA,6BAGF,sBACE,8BAGF,MACE,kBACA,aACA,sBACA,iBACA,oBACA,oBACA,mDAGF,eACE,sBXx2EI,0BW02EJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,gBAMF,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAiBA,CAhBA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,kBACA,uBAEA,kBX/5EW,0BWo6Eb,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,WACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,sCAGF,yBAjBF,aAkBI,iBAIJ,kBACE,eACA,gBACA,iBAGF,aACE,eACA,mBACA,mBACA,aACA,mBACA,kBACA,mBAEA,iCACE,yBAEA,kBACE,mCACA,aAKN,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,sBAIJ,qBACE,WACA,mBACA,cX7+EwB,eW++ExB,cACA,eACA,oBACA,SACA,iBACA,aACA,SACA,UACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cXlgFwB,eWogFxB,mBACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,eAGF,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,0CACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBXhlFW,qCWklFX,sEAGF,wBACE,4CAGF,wBXhlF0B,+EWolF1B,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,yBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBX5oFwB,cWgpF1B,kBACE,WXnqFM,cWqqFN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cXpqFsB,kGWuqFtB,sBAGE,WX3rFE,kCW+rFJ,aX7qFsB,oBWmrF1B,oBACE,iBACA,qBAGF,oBACE,kBACA,eACA,iBACA,gBACA,mBXtsFW,gBWwsFX,iBACA,oBAGF,kBX5sFa,cAqBW,iBW0rFtB,eACA,gBACA,eACA,yDAGF,kBXrtFa,cW2tFb,aACE,kBAGF,aX1sFwB,cW4sFtB,8BACA,+BACA,4EAEA,0BAGE,CAHF,uBAGE,CAHF,kBAGE,kDAMA,sBACA,YACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,cACE,0DAEA,aXxuFkB,0BW0uFhB,sDAIJ,oBACE,cX7vFkB,sMWgwFlB,yBAGE,oDAKN,aX1vFsB,0BWgwFtB,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,cXrxFkB,aWuxFlB,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA1BF,YA2BI,yCAGF,eACE,aACA,iDAEA,aXhzFkB,qBWuzFxB,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,aACE,sBACA,WACA,SACA,cXv1FW,gBATL,aWm2FN,oBACA,eACA,gBACA,SACA,UACA,kBACA,qBAEA,SACE,qCAGF,cAnBF,cAoBI,oDAIJ,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAKJ,uBACE,2BACA,gDAGF,aXz2FwB,6BW22FtB,uDAGF,aX13F0B,cW83F1B,YACE,eACA,yBACA,kBACA,cXt3FsB,gBWw3FtB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cX/5FoB,uBWi6FpB,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UXz7FE,yBWg8FJ,cACE,kBACA,YACA,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACA,YACA,SACA,2BAIA,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cXn9FsB,gBWq9FtB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,aXj+FwB,oBWq+FxB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,YAGF,aACE,cXpiGsB,6BWsiGtB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,yBAGF,iBACE,eACA,gBACA,cX9jGsB,mBArBX,eWslGX,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,cX5lGkB,qCWgmGpB,cACE,gBACA,yBAKN,iBACE,cACA,uCAGE,aACE,WACA,kBACA,SACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,oFACA,gBAKN,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,2BACA,4BACA,uBAEA,QACE,SACA,yBACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,aXpqGwB,uBWwqGxB,uCACE,4CAEA,aX3qGsB,0CW6qGpB,4CAIJ,SAEE,yBAIJ,WACE,aACA,uBAGF,kBACE,iCAGF,iBACE,wBAGF,kBACE,SACA,cXxsGsB,eW0sGtB,eACA,eACA,8BAEA,aACE,CAKA,kEAEA,UXtuGI,mBWwuGF,6BAKN,eACE,gBACA,gBACA,cXhuGsB,0DWkuGtB,UACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,mCAIJ,kBACE,aACA,mCAIA,aX7vGsB,0BW+vGpB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,sBAGF,oBACE,iBACA,oBAGF,aXjxGwB,eWmxGtB,gBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,gCAGF,kBACE,gBXz6GM,WACA,eW26GN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,eXv7GQ,cAiBgB,SWy6GtB,UACA,WACA,YACA,kBACA,wBACA,CADA,oBACA,CADA,eACA,iEAEA,SAGE,cACA,yBAIJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,iBAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,aACE,SACA,QACA,WACA,YACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,0BACA,kBACA,iBACA,WXt/GE,gBWw/GF,eACA,+LAMA,yBACE,mEAKF,yBACE,6BAMR,kBACE,iBAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,aXphHwB,eWshHtB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SEtiHF,sBACA,WACA,SACA,gBACA,oBACA,mBbRW,cAOW,eaItB,SACA,+EFgiHI,aACE,CEjiHN,qEFgiHI,aACE,CEjiHN,yEFgiHI,aACE,CEjiHN,0EFgiHI,aACE,CEjiHN,gEFgiHI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,aX9iHoB,iBWgjHlB,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,aXrlHoB,0HW0lHpB,cAEE,gBACA,cX/kHkB,kZWklHlB,aAGE,gEAIJ,wBACE,iDAGF,eX3nHI,kBa0BN,CAEA,eACA,cbbsB,uCaetB,UF8lHI,mBX5mHoB,oDagBxB,abjBsB,eamBpB,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,cbxCS,sDWwnHT,WACE,mDAGF,aX5nHS,kBW8nHP,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UXxpHQ,kBW0pHN,cACA,mBACA,sBX7pHM,eW+pHN,gBACA,YACA,kBACA,WACA,yBAEA,SACE,iBAIJ,aACE,iBACA,wBAGF,aX9pHwB,qBWgqHtB,mBACA,gBACA,sBACA,uCAGF,aXxpHwB,mBArBX,kBWirHX,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBAEA,sCAdF,cAeI,kDAGF,eACE,2CAGF,aX1rHwB,qBW4rHtB,uDAEA,yBACE,eAKN,qBACE,8BAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA1BF,qBAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,mCAIJ,8BACE,2DACA,CADA,kDACA,iCAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,EA/BF,wBAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,kCAIJ,yBACE,8EACA,CADA,qEACA,8BAGF,eX/xHQ,kBWiyHN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBX3zHM,kBW6zHN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,+BAGE,2DAIJ,WACE,wBAKF,2BACE,cAIJ,kBACE,0BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBXp3HW,kCWs3HX,uBAGF,MACE,aACA,mBACA,uBACA,cXr3HwB,eWu3HxB,gBACA,0BACA,kBACA,kBAGF,YACE,cXj3HsB,gBWm3HtB,aACA,sBAEA,cACE,kBACA,uBAGF,cACE,gBACA,cACA,0BAIJ,aACE,4BAGF,UACE,WACA,kBACA,mBXz4HsB,kBW24HtB,eACA,2BAGF,iBACE,OACA,MACA,WACA,mBX/5HwB,kBWi6HxB,eAGF,aACE,eACA,iBACA,gBACA,WACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,CACA,UACA,YACA,eACA,CAQE,6GAKN,SACE,oBACA,CADA,WACA,6BAGF,iBACE,gBX99HM,uCWg+HN,kBACA,iBACA,gBACA,iCAEA,yBACE,oCAGF,sBACE,2BAIJ,aXr+Ha,aWu+HX,eACA,aACA,kEAEA,kBXl+HwB,WAlBlB,UWw/HJ,CXx/HI,4RW6/HF,UX7/HE,wCWmgIN,kBACE,iCAIJ,YACE,mBACA,uBACA,kBACA,oCAGF,aACE,cXl/HsB,2CWq/HtB,eACE,cACA,cX5gIS,CWihIL,wQADF,eACE,mDAON,eXjiIM,0BWmiIJ,qCACA,gEAEA,eACE,0DAGF,kBXxhIsB,uEW2hIpB,UX7iIE,uDWmjIN,yBACE,sDAGF,aACE,sCACA,SAIJ,iBACE,gBAGF,SErjIE,sBACA,WACA,SACA,gBACA,oBACA,mBbRW,cAOW,eaItB,SACA,cF+iIA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,sCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,sCACA,eACA,WACA,YACA,cXrmIsB,eWumItB,oBACA,0BAEA,mBACE,WACA,0BAIJ,uBACE,iCAEA,mBACE,uBACA,gCAIJ,QACE,uBACA,cX9mIoB,eWgnIpB,uCAEA,uBACE,sCAGF,aACE,yBAKN,aX5nIwB,mBW8nItB,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,cXppIoB,iCWupIpB,oBACE,iBACA,8FAIJ,eAEE,0BAIJ,aACE,aACA,cXlrIwB,qBWorIxB,+FAEA,aAGE,0BACA,uBAIJ,YACE,cXhsIsB,kBWksItB,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,0BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,cX7tI0B,eAEC,CWuuI7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,yBACE,sBACA,SACA,WXzzIM,eW2zIN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,cXt1IsB,mFWy1ItB,yBAGE,wBAKN,oBACE,sBAGF,qBXt3IQ,YWw3IN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wBX/2I0B,qBWm3I1B,iBACE,UACA,QACA,YACA,6CAGF,kBX33I0B,cARb,kBWw4IX,gBACA,aACA,sBACA,oBAGF,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,mDAGF,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,aXr6IsB,SWw6IpB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,qiBAGF,aX98IS,qwDWk9IP,aAGE,sBAMR,sBACE,eAGF,iBACE,eACA,mBACA,sBAEA,eACE,cXr+IS,kBWu+IT,eACA,qBAGF,kBX3+IW,cAQa,gBWs+ItB,aACA,kBACA,kBAIJ,oBACE,eACA,gBACA,iBACA,wFAGF,kBAME,cXjgJW,kBWmgJX,gBACA,eACA,YACA,kBACA,sBACA,4NAEA,aACE,eACA,mBACA,wLAGF,WACE,UACA,kBACA,SACA,WACA,kRAGF,aACE,wBAKF,eXviJM,CAiBkB,gBWyhJtB,oBACA,iEX3iJI,2BAiBkB,yBWkiJ1B,iBACE,aACA,iCAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,2GAIJ,YAIE,8BACA,mBXjjJwB,aWmjJxB,iBACA,2HAEA,aACE,iBACA,cX3iJoB,mBW6iJpB,2IAGF,aACE,6BAIJ,cACE,2BAGF,WACE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,aXrnJwB,iLWynJxB,aXloJW,qCWuoJX,oDAjBF,eAkBI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,aXjqJS,gBATL,aW6qJJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,eX7rJI,yBW+rJF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,aXpsJO,oBWssJL,eACA,gBXhtJA,+CWqtJJ,YACE,8BACA,mBACA,4CAIJ,aACE,cXptJS,eWstJT,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,aX/tJS,eWiuJP,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eACE,eACA,wBAEA,eACE,iBACA,2CAGF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,aX3wJO,aW6wJL,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBXnxJgB,WAlBlB,uDW4yJA,iBACE,oMAUR,aACE,iIAIJ,4BAIE,cXlyJsB,eWoyJtB,gBACA,6cAEA,aAGE,6BACA,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,aXv2JS,CWy2JP,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,wBX/2J0B,WWi3JxB,kBACA,MACA,OACA,aACA,6BAGF,aACE,kBACA,WX54JM,0BW84JN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,2DAKE,YACE,wDAKF,SACE,uBAKN,eACE,6BAEA,UACE,kBAIJ,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cX75JoB,iBW+5JpB,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cX37JkB,gBW67JlB,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,aX98JoB,gBWs9JtB,cACA,CACA,iBACA,CACA,UACA,qCANF,qBACE,CACA,eACA,CACA,iBAYA,CAVA,qBAGF,QACE,CACA,aACA,WACA,CACA,iBAEA,qEAGE,cACE,MACA,gCAKN,cACE,cACA,qBACA,cX//JwB,kBWigKxB,UACA,mEAEA,WAEE,WACA,CAIA,2DADF,mBACE,CADF,8BACE,CADF,gBX5hKM,CW6hKJ,wBAIJ,UACE,YACA,CACA,iBACA,MACA,OACA,UACA,gBXxiKM,iCW2iKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,qCAGF,cACE,YACA,oBACA,CADA,8BACA,CADA,gBACA,kBACA,QACA,2BACA,WACA,UACA,sCAGF,0BACE,2BACA,gBACA,kBACA,qKAMA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,qCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gBXxoKM,eW0oKN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,qBAGF,eACE,gBACA,UACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gBXrtKI,cAiBgB,gBWusKpB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,0DAEA,aACE,wBAIJ,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,UXpxKE,+EW4xKN,cAGE,gBACA,6BAGF,UXnyKM,iBWqyKJ,yBAGF,oBACE,aACA,mDAGF,UX7yKM,uBWkzKN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,WXl2KE,sFWq2KF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,kBAON,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,gBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WX5/KF,gBW8/KE,gBACA,uBACA,0CAGF,aACE,eACA,cXr/Kc,gBWu/Kd,gBACA,uBACA,yBAKN,kBXrgLS,aWugLP,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,6BAOV,YACE,eACA,gBACA,wBAGF,QACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cX7kLoB,eW+kLpB,eACA,gBACA,kBACA,qBACA,kBACA,yJAEA,aXrlLsB,qWWwlLpB,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,cAOV,kBXzoLa,sBW4oLX,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,2BAKN,eACE,gBAGF,eXvsLQ,kBa0BN,CACA,sBACA,gBACA,cbbsB,uCaetB,mBAEA,abjBsB,eamBpB,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,cbxCS,UWksLb,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cXrsLsB,gBWusLtB,gBAEA,aXxsLsB,0BW0sLpB,sBAEA,oBACE,4BAMR,GACE,cACA,eACA,WATM,mBAMR,GACE,cACA,eACA,qEAGF,kBAIE,sBAEE,8BACA,iBAGF,0BACE,kCACA,+BAIA,qDACE,uEACA,+CAGF,sBACE,8BACA,6DAIA,6BACE,6CACA,4EAIF,6BACE,6CACA,+CAOJ,gBAEE,+BAGF,gBACE,6CAEA,0BACE,wDAGF,eACE,6DAGF,iBACE,iBACA,2EAIA,mBACE,UACA,gCACA,WACA,0FAGF,mBACE,UACA,oCACA,eAOV,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBX70LO,WATL,eWy1LF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,sBAMJ,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cXt2LoB,CWy2LpB,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,qBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,uCAEA,SACE,kCAKN,aACE,cACA,mBAIJ,cACE,kBACA,MACA,OACA,WACA,YACA,0BACA,cAGF,kBX37La,sBW67LX,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kBXj/La,sBWm/LX,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,cAIJ,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBX3iMM,yDW8iMN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBXtjMI,uBW0jMN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UXvlMI,eWylMF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,4BAKN,aXjmMwB,eWmmMtB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WXruMA,gBWuuMA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cX9tMc,gBWguMd,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,WXlwME,gDWswMJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,aXjxMU,yBWuxMd,cACE,gCAEA,cACE,cX5wMkB,eW8wMlB,kCAEA,oBACE,cXjxMgB,qBWmxMhB,iBACA,gBACA,yCAEA,eACE,WXxyMF,iBWizMN,aXnxMsB,mBWqxMpB,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cX7yMkB,gBW+yMlB,uBACA,mBACA,4BAEA,eACE,uBAGF,aXr0MkB,qBWu0MhB,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cX/1MoB,0BWm2MtB,aACE,WACA,2CAEA,oCACE,yBACA,0CAGF,wBACE,eAMR,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,uBAGF,oBACE,mBXr4MsB,kBWu4MtB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cX75MkB,kBW+5MlB,+BAGF,aXl6MoB,eWo6MlB,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UX57ME,qBW87MA,oHAEA,yBAGE,0BAKN,qBACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UXx9MI,OcFR,eACE,eACA,UAEA,kBACE,kBACA,cAGF,iBACE,MACA,OACA,YACA,qBACA,kBACA,mBACA,sBAEA,kBdEsB,acGxB,iBACE,aACA,cACA,iBACA,eACA,gBACA,gEAEA,YAEE,gCAGF,aACE,8BAGF,aACE,sBACA,WACA,eACA,cdjCO,UcmCP,oBACA,gBd7CE,yBc+CF,kBACA,iBACA,oCAEA,oBdjCoB,wBcsCtB,cACE,sBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBdtFY,8Ec2FZ,gBAGE,gBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,CACA,oBACA,iBACA,gBACA,mBACA,cACA,mBAGF,UACE,iBACA,eAGF,eACE,mBACA,cdnGoB,acuGtB,cACE,uBACA,UACA,SACA,SACA,cd5GoB,0Bc8GpB,kBACA,mBAEA,oBACE,sCAGF,mCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,4BACE,gCAEA,YACE,2CAGF,4BACE,aACA,aACA,mBACA,mGAEA,YAEE,+GAEA,oBdhKoB,sDcsKxB,cACE,gBACA,iBACA,YACA,oBACA,cd/JoB,sCckKpB,gCAGF,YACE,mBACA,4CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,cdxMS,qBc0MT,WACA,UACA,oBACA,qXACA,yBACA,kBACA,CACA,yBACA,mDAGF,aACE,cAIJ,adrMwB,qBcwMtB,+BACE,6BAEA,+BACE,eC5ON,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,cCtBJ,cACE,qBACA,chBSW,2BgBNX,qBAEE,iBACA,+BAGF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mBhBHsB,4BgBOxB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,chBLsB,cgBOtB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,ahBpC0B,mCgBuCxB,aACE,oDAGF,WACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBhBrDwB,uBgB0DxB,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gBhB5FM,sBgB8FN,sGAEA,+BAEE,oBAKF,2BACA,gBhBxGM,0BgB2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,gCACA,chBzGS,yBgB2GT,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,sCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gBhBpKI,mBgByKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,chBvKsB,mDgB0KtB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,YCrMF,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,iDACE,eACA,gBACA,gBACA,qBACA,cjBJsB,oBiBOtB,ajBLwB,0BiBOtB,6EAEA,oBAGE,wCAIJ,ajBlBsB,oBiBuBtB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,cjBhCsB,qBiBoCxB,iBACE,cjBrCsB,uBiByCxB,eACE,mBACA,kBACA,kBACA,yHAGF,4CAME,mBACA,oBACA,gBACA,cjBzDsB,qBiB6DxB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,cjBrIkB,iCiByIpB,uBACE,gBACA,gBACA,cjB9HkB,qDiBkIpB,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,kDACA,eACA,iBACA,WjBpNI,iBiBsNJ,kBACA,qEAEA,aAEE,6CAIA,ajB9MoB,oCiBmNtB,4CACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,4CACE,eACA,iBACA,gBACA,cjB/OkB,mBiBiPlB,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAEA,UACE,YACA,CACA,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iCAIJ,cACE,mCAEA,aACE,WjBzSA,qBiB2SA,uDAGE,yBACE,2CAKN,aACE,cjBrSgB,kCiB6StB,iDAEE,CACA,eACA,eACA,iBACA,mBACA,cjBpToB,sCiBuTpB,ajBrTsB,0BiBuTpB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,4CACE,eACA,iBACA,gBACA,mBACA,cjB7UsB,wBiBgVtB,iDACE,cACA,eACA,gBACA,cACA,kBAIJ,4CACE,eACA,iBACA,gBACA,mBACA,cjB9VsB,kBiBmWtB,cjBnWsB,mCiBkWxB,4CACE,CACA,gBACA,gBACA,mBACA,cjBvWsB,kBiB4WtB,cjB5WsB,kBiBqXtB,cjBrXsB,mCiBoXxB,4CACE,CACA,gBACA,gBACA,mBACA,cjBzXsB,kBiB8XtB,cjB9XsB,mCiBsYxB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,2CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBjB1bW,kBiB4bT,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAGF,UACE,YACA,0BACA,mDAGF,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA7DF,iBA8DI,mFAIJ,qBAGE,mBjBnjBS,kBiBqjBT,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,ajB3kBsB,qCiB+kBtB,eACE,WjBjmBE,gBiBmmBF,2CAEA,ajBrlBkB,gDiBwlBhB,ajBvlBkB,+CiB6lBtB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SjBvrBI,YiByrBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,gBACA,eACA,cjBhsBkB,6BiBosBpB,eACE,iBACA,+BAGF,kBjBhtBS,aiBktBP,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,4CACE,eACA,gBACA,cACA,qCAGF,cACE,cjB/uBgB,uFiBqvBtB,eACE,cASA,CjB/vBoB,2CiB4vBpB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,cjB51BsB,qBiB81BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,cjBt1BoB,SkBhCxB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBlBhBW,UkBqBX,alBZwB,0BkBctB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBlBzDS,6BkB2DP,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+CACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,clB5FsB,gBkB8FtB,0DAEA,UlBhHM,wDkBoHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBlBvJS,sBkByJT,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBlBtKS,gCkByKT,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBlB9LS,uCkBiMP,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,clB/NgB,gBkBiOhB,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,uCAEA,iBACE,sCAGF,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBC7RN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBnBPO,YmBSP,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SnBxCA,YmB0CE,kBACA,YACA,uCAIJ,aACE,cnBjCgB,qBmBmChB,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,cnB3EgB,qBmB6EhB,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UnBzGA,yBmB2GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UnBjIE,yBAkBkB,gBmBkHlB,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,anBnMsB,emBqMpB,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,anB9MsB,emBgNpB,iBACA,gBACA,mBACA,4BAGF,cACE,gBACA,cnBzNkB,mBmB2NlB,kBACA,gCACA,4BAGF,cACE,cnBhOoB,iBmBkOpB,gBACA,0CAGF,UnBvPI,gBmByPF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WnBvQE,oBmByQF,iBACA,gBACA,gBACA,2BAGF,cACE,iBACA,cnBhQoB,mBmBkQpB,kCAEA,UnBrRE,gBmBuRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,2CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA7SF,aA8SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BnBhUoB,YmBuU1B,UACE,SACA,cACA,WACA,sDAKA,anBlVsB,0DmBqVpB,anBnVsB,4DmBwVxB,anBzWc,gBmB2WZ,4DAGF,anB7WU,gBmB+WR,0DAGF,anBtVsB,gBmBwVpB,0DAGF,anBrXU,gBmBuXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,eACA,CAII,iNADF,eACE,2BAKN,oBACE,cnBjZkB,qBmBmZlB,eACA,gBACA,gCACA,iCAEA,UnBxaE,gCmB0aA,oCAGF,anB3ZoB,gCmB6ZlB,CAkBJ,gBAIJ,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,cnBrdsB,CmB0dlB,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,anBniBwB,qBmBqiBtB,oBAEA,yBACE,SAKN,aACE,YAGF,kBACE,iBACA,oBAEA,YACE,2BACA,mBACA,aACA,mBnBlkBS,cAOW,0BmB8jBpB,eACA,kBACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,anBzkBsB,oBmB6kBtB,kBACE,0BACA,aACA,cnB9lBoB,gDmBgmBpB,eACA,qBACA,gBACA,kBAGF,cACE,kBACA,cnB1lBoB,2BmB8lBtB,iBACE,SACA,WACA,WACA,YACA,kBACA,oCAEA,kBnBnoBY,oCmBuoBZ,kBACE,mCAGF,kBnB1nBsB,sDmB+nBxB,anBhoBwB,qBmBooBtB,gBACA,sBAGF,aACE,0BAGF,anB5oBwB,sBmBgpBxB,anBhqBc,yDmBqqBhB,oBAIE,cnBzpBwB,iGmB4pBxB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBnBrtBc,yBmBytBd,yBACE,wBAGF,yBnB1tBU,wBmB+tBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,anB3tBoB,uBmBiuBpB,wBACA,qBAGF,anBvtBsB,cmB4tBxB,kBnBjvBa,kBmBmvBX,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,cnBhwBkB,iBmBkwBlB,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,anB7xBM,6BmBoyBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,cnBpyBgB,mLmBuyBhB,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,anBryBgB,iBmBuyBd,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,cnB/zBgB,WmBs0BxB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,anBn4BY,8CmBw4Bd,qBACE,aACA,WnB34BI,cmBg5BR,iBACE,sBCn5BF,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WpBrCI,6CoBuCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,cpBjCoB,kBoBmCpB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,apBrDwB,gBoBuDtB,qBACA,UC3EJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,0BAGF,SACE,WACA,0DAGF,iBAEE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,+DACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,kkEC7ZJ,kIACE,CADF,sIACE,qBACA,0D","file":"flavours/vanilla/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#192432 rgba(0,0,0,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#192432;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#1c2938}::-webkit-scrollbar-thumb:active{background:#192432}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(0,0,0,.1)}::-webkit-scrollbar-track:hover{background:#121a24}::-webkit-scrollbar-track:active{background:#121a24}::-webkit-scrollbar-corner{background:transparent}body{font-family:\"mastodon-font-sans-serif\",sans-serif;background:#06090c;font-size:13px;line-height:18px;font-weight:400;color:#fff;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",\"mastodon-font-sans-serif\",sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#121a24}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.player{text-align:center}body.embed{background:#192432;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#0b1016;padding:0}body.error{position:absolute;text-align:center;color:#9baec8;background:#121a24;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog__illustration img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div,.app-holder>noscript{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.app-holder>noscript{height:100vh}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.error-boundary,.app-holder noscript{flex-direction:column;font-size:16px;font-weight:400;line-height:1.7;color:#e25169;text-align:center}.error-boundary>div,.app-holder noscript>div{max-width:500px}.error-boundary p,.app-holder noscript p{margin-bottom:.85em}.error-boundary p:last-child,.app-holder noscript p:last-child{margin-bottom:0}.error-boundary a,.app-holder noscript a{color:#d8a070}.error-boundary a:hover,.error-boundary a:focus,.error-boundary a:active,.app-holder noscript a:hover,.app-holder noscript a:focus,.app-holder noscript a:active{text-decoration:none}.error-boundary__footer,.app-holder noscript__footer{color:#3e5a7c;font-size:13px}.error-boundary__footer a,.app-holder noscript__footer a{color:#3e5a7c}.error-boundary button,.app-holder noscript button{display:inline;border:0;background:transparent;color:#3e5a7c;font:inherit;padding:0;margin:0;line-height:inherit;cursor:pointer;outline:0;transition:color 300ms linear;text-decoration:underline}.error-boundary button:hover,.error-boundary button:focus,.error-boundary button:active,.app-holder noscript button:hover,.app-holder noscript button:focus,.app-holder noscript button:active{text-decoration:none}.error-boundary button.copied,.app-holder noscript button.copied{color:#79bd9a;transition:none}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#fff;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#fff;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px}.account-header .name{flex:1 1 auto;color:#d9e1e8;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#fff}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#26374d}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#9baec8;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#fff}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#2d415a;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#344b68}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#d9e1e8}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#000}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#192432;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #192432;background:#040609}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#192432;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#fff;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#9baec8}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#9baec8;padding:10px;border-right:1px solid #192432;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #d8a070;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#d9e1e8}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#fff;font-family:\"mastodon-font-display\",sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #26374d}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#9baec8}.public-layout .public-account-header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#e1b590}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#fff}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#9baec8}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #202e3f}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #202e3f}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#121a24}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#192432}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#4c6d98}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#4c6d98}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{font-weight:700;margin-bottom:8px;color:#9baec8}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#4c6d98}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#4c6d98}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#5377a5}.compact-header h1{font-size:24px;line-height:28px;color:#9baec8;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#d9e1e8}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#121a24;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.hero-widget__text a{color:#d9e1e8;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;font-weight:700;font-size:14px;color:#9baec8}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#9baec8}.box-widget{padding:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #3e5a7c;text-align:center;color:#9baec8;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;font-weight:700;font-size:14px;color:#9baec8}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#9baec8;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#d9e1e8;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#9baec8}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#9baec8;margin-bottom:10px}.page-header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#fff;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#9baec8}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#192432}.page-header h1{font-size:24px}}.directory{background:#121a24;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#121a24;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#202e3f}.directory__tag.active>a{background:#d8a070;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#9baec8}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#9baec8}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small,.directory__tag.active h4 .trends__item__current{color:#fff}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#d8a070}.directory__tag .trends__item__current{padding-right:0}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#040609;border:2px solid #121a24}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;color:#9baec8;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #202e3f}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#fff}.accounts-table__count small{display:block;color:#9baec8;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #2d415a}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#9baec8}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#d8a070}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#0b1016;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#fff;border-bottom:1px solid #192432}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #192432}code{font-family:\"mastodon-font-monospace\",monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#fff;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#d8a070;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#9baec8}.simple_form .hint a{color:#d8a070}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#000}.simple_form .hint li{list-style:disc;margin-left:18px}.simple_form ul.hint{margin-bottom:15px}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#9baec8}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#fff;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .required abbr{text-decoration:none;color:#e87487}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#fff;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#fff;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #3e5a7c;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102;border:1px solid #000;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#a8b9cf}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#e87487}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#000}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#d8a070;background:#040609}.simple_form .input.field_with_errors label{color:#e87487}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#e87487}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#e87487;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#d8a070;color:#fff;font-size:18px;line-height:inherit;height:auto;padding:10px;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#ddad84}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#d3935c}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#e3566d}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#db2a47}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #000;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#3e5a7c;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(1, 1, 2, 0), #010102)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(18,26,36,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#fff}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#202e3f;color:#9baec8;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#9baec8;text-decoration:none}.flash-message a:hover{color:#fff;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#121a24;color:#fff;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#192432}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#9baec8;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#d8a070;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#e1b590}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#9baec8}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#d9e1e8;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#d9e1e8;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#fff;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#9baec8}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#fff;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:\"mastodon-font-monospace\",monospace}.input-copy{background:#010102;border:1px solid #000;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:\"mastodon-font-monospace\",monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#0b1016;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#0b1016;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#202e3f}.card__img{height:130px;position:relative;background:#000;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#192432;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#040609;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#fff;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#121a24;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{color:#d9e1e8}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#233346}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#9baec8;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#d9e1e8;background-color:rgba(217,225,232,.1);border:1px solid rgba(217,225,232,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#e87487;background-color:rgba(232,116,135,.1);border-color:rgba(232,116,135,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #26374d;border-bottom:1px solid #26374d;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #26374d}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#d9e1e8;background:rgba(4,6,9,.5)}.account__header__fields dd{flex:1 1 auto;color:#9baec8}.account__header__fields a{color:#d8a070;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#9baec8}.pending-account__header a{color:#d9e1e8;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#fff;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}.activity-stream--under-tabs{border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#121a24}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#202e3f}.button.logo-button{flex:0 auto;font-size:14px;background:#d8a070;color:#fff;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#fff}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#e3bb98}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.link-button{display:block;font-size:15px;line-height:20px;color:#d8a070;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#d8a070;border:10px none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:15px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#e3bb98;transition:all 200ms ease-out}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled,.button.disabled{background-color:#9baec8;cursor:default}.button::-moz-focus-inner{border:0}.button::-moz-focus-inner,.button:focus,.button:active{outline:0 !important}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#121a24;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#a8b9cf}.button.button-alternative-2{background:#3e5a7c}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#45648a}.button.button-secondary{color:#9baec8;background:transparent;padding:3px 15px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#a8b9cf;color:#a8b9cf}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.icon-button{display:inline-block;padding:0;color:#3e5a7c;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#4a6b94;background-color:rgba(62,90,124,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(62,90,124,.3)}.icon-button.disabled{color:#283a50;background-color:transparent;cursor:default}.icon-button.active{color:#d8a070}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#3e5a7c}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#324965;background-color:rgba(62,90,124,.15)}.icon-button.inverted:focus{background-color:rgba(62,90,124,.3)}.icon-button.inverted.disabled{color:#4a6b94;background-color:transparent}.icon-button.inverted.active{color:#d8a070}.icon-button.inverted.active.disabled{color:#e6c3a4}.icon-button.overlayed{box-sizing:content-box;background:rgba(0,0,0,.6);color:rgba(255,255,255,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(0,0,0,.9)}.text-icon-button{color:#3e5a7c;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#324965;background-color:rgba(62,90,124,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(62,90,124,.3)}.text-icon-button.disabled{color:#6b8cb5;background-color:transparent;cursor:default}.text-icon-button.active{color:#d8a070}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.compose-form{padding:10px}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#d8a070}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#d8a070;background:#d8a070}.compose-form .compose-form__warning{color:#121a24;margin-bottom:10px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.compose-form .compose-form__warning strong{color:#121a24;font-weight:500}.compose-form .compose-form__warning strong:lang(ja){font-weight:700}.compose-form .compose-form__warning strong:lang(ko){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-CN){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-HK){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-TW){font-weight:700}.compose-form .compose-form__warning a{color:#3e5a7c;font-weight:500;text-decoration:underline}.compose-form .compose-form__warning a:hover,.compose-form .compose-form__warning a:active,.compose-form .compose-form__warning a:focus{text-decoration:none}.compose-form .emoji-picker-dropdown{position:absolute;top:5px;right:5px}.compose-form .compose-form__autosuggest-wrapper{position:relative}.compose-form .autosuggest-textarea,.compose-form .autosuggest-input,.compose-form .spoiler-input{position:relative;width:100%}.compose-form .spoiler-input{height:0;transform-origin:bottom;opacity:0}.compose-form .spoiler-input.spoiler-input--visible{height:36px;margin-bottom:11px;opacity:1}.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0}.compose-form .autosuggest-textarea__textarea::placeholder,.compose-form .spoiler-input__input::placeholder{color:#3e5a7c}.compose-form .autosuggest-textarea__textarea:focus,.compose-form .spoiler-input__input:focus{outline:0}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{font-size:16px}}.compose-form .spoiler-input__input{border-radius:4px}.compose-form .autosuggest-textarea__textarea{min-height:100px;border-radius:4px 4px 0 0;padding-bottom:0;padding-right:32px;resize:none;scrollbar-color:initial}.compose-form .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.compose-form .autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.compose-form .autosuggest-textarea__suggestions{box-sizing:border-box;display:none;position:absolute;top:100%;width:100%;z-index:99;box-shadow:4px 4px 6px rgba(0,0,0,.4);background:#d9e1e8;border-radius:0 0 4px 4px;color:#121a24;font-size:14px;padding:6px}.compose-form .autosuggest-textarea__suggestions.autosuggest-textarea__suggestions--visible{display:block}.compose-form .autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.compose-form .autosuggest-textarea__suggestions__item:hover,.compose-form .autosuggest-textarea__suggestions__item:focus,.compose-form .autosuggest-textarea__suggestions__item:active,.compose-form .autosuggest-textarea__suggestions__item.selected{background:#b9c8d5}.compose-form .autosuggest-account,.compose-form .autosuggest-emoji,.compose-form .autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.compose-form .autosuggest-hashtag{justify-content:space-between}.compose-form .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-hashtag strong{font-weight:500}.compose-form .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-account-icon,.compose-form .autosuggest-emoji img{display:block;margin-right:8px;width:16px;height:16px}.compose-form .autosuggest-account .display-name__account{color:#3e5a7c}.compose-form .compose-form__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.compose-form .compose-form__modifiers .compose-form__upload-wrapper{overflow:hidden}.compose-form .compose-form__modifiers .compose-form__uploads-wrapper{display:flex;flex-direction:row;padding:5px;flex-wrap:wrap}.compose-form .compose-form__modifiers .compose-form__upload{flex:1 1 0;min-width:40%;margin:5px}.compose-form .compose-form__modifiers .compose-form__upload__actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button{flex:0 1 auto;color:#d9e1e8;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:hover,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:focus,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:active{color:#eff3f5}.compose-form .compose-form__modifiers .compose-form__upload__actions.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-description{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);padding:10px;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload-description textarea{background:transparent;color:#d9e1e8;border:0;padding:0;margin:0;width:100%;font-family:inherit;font-size:14px;font-weight:500}.compose-form .compose-form__modifiers .compose-form__upload-description textarea:focus{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload-description textarea::placeholder{opacity:.75;color:#d9e1e8}.compose-form .compose-form__modifiers .compose-form__upload-description.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-thumbnail{border-radius:4px;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;height:140px;width:100%;overflow:hidden}.compose-form .compose-form__buttons-wrapper{padding:10px;background:#ebebeb;border-radius:0 0 4px 4px;display:flex;justify-content:space-between;flex:0 0 auto}.compose-form .compose-form__buttons-wrapper .compose-form__buttons{display:flex}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__upload-button-icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button{display:none}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button.compose-form__sensitive-button--visible{display:block}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button .compose-form__sensitive-button__icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .icon-button,.compose-form .compose-form__buttons-wrapper .text-icon-button{box-sizing:content-box;padding:0 3px}.compose-form .compose-form__buttons-wrapper .character-counter__wrapper{align-self:center;margin-right:4px}.compose-form .compose-form__publish{display:flex;justify-content:flex-end;min-width:0;flex:0 0 auto}.compose-form .compose-form__publish .compose-form__publish-button-wrapper{overflow:hidden;padding-top:10px}.character-counter{cursor:default;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:600;color:#3e5a7c}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .spoiler-input{transition:height .4s ease,opacity .4s ease}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.reply-indicator{border-radius:4px;margin-bottom:10px;background:#9baec8;padding:10px;min-height:23px;overflow-y:auto;flex:0 2 auto}.reply-indicator__header{margin-bottom:5px;overflow:hidden}.reply-indicator__cancel{float:right;line-height:24px}.reply-indicator__display-name{color:#121a24;display:block;max-width:100%;line-height:24px;overflow:hidden;padding-right:25px;text-decoration:none}.reply-indicator__display-avatar{float:left;margin-right:5px}.status__content--with-action{cursor:pointer}.status__content,.reply-indicator__content{position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:hidden;text-overflow:ellipsis;padding-top:2px;color:#fff}.status__content:focus,.reply-indicator__content:focus{outline:0}.status__content.status__content--with-spoiler,.reply-indicator__content.status__content--with-spoiler{white-space:normal}.status__content.status__content--with-spoiler .status__content__text,.reply-indicator__content.status__content--with-spoiler .status__content__text{white-space:pre-wrap}.status__content .emojione,.reply-indicator__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img,.reply-indicator__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.reply-indicator__content p{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.reply-indicator__content p:last-child{margin-bottom:0}.status__content a,.reply-indicator__content a{color:#d8a070;text-decoration:none}.status__content a:hover,.reply-indicator__content a:hover{text-decoration:underline}.status__content a:hover .fa,.reply-indicator__content a:hover .fa{color:#4a6b94}.status__content a.mention:hover,.reply-indicator__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span,.reply-indicator__content a.mention:hover span{text-decoration:underline}.status__content a .fa,.reply-indicator__content a .fa{color:#3e5a7c}.status__content a.unhandled-link,.reply-indicator__content a.unhandled-link{color:#e1b590}.status__content .status__content__spoiler-link,.reply-indicator__content .status__content__spoiler-link{background:#3e5a7c}.status__content .status__content__spoiler-link:hover,.reply-indicator__content .status__content__spoiler-link:hover{background:#4a6b94;text-decoration:none}.status__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner{border:0}.status__content .status__content__spoiler-link::-moz-focus-inner,.status__content .status__content__spoiler-link:focus,.status__content .status__content__spoiler-link:active,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link:focus,.reply-indicator__content .status__content__spoiler-link:active{outline:0 !important}.status__content .status__content__text,.reply-indicator__content .status__content__text{display:none}.status__content .status__content__text.status__content__text--visible,.reply-indicator__content .status__content__text.status__content__text--visible{display:block}.status__content.status__content--collapsed{max-height:300px}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#e1b590;border:0;background:transparent;padding:0;padding-top:8px}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:transparent;border:0;color:#121a24;font-weight:700;font-size:12px;padding:0 6px;line-height:20px;cursor:pointer;vertical-align:middle}.status__wrapper--filtered{color:#3e5a7c;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #202e3f}.status__prepend-icon-wrapper{left:-26px;position:absolute}.focusable:focus{outline:0;background:#192432}.focusable:focus .status.status-direct{background:#26374d}.focusable:focus .status.status-direct.muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#202e3f}.status{padding:8px 10px;padding-left:68px;position:relative;min-height:54px;border-bottom:1px solid #202e3f;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:26px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#202e3f;border-bottom-color:#26374d}.status.light .status__relative-time{color:#9baec8}.status.light .status__display-name{color:#121a24}.status.light .display-name strong{color:#121a24}.status.light .display-name span{color:#9baec8}.status.light .status__content{color:#121a24}.status.light .status__content a{color:#d8a070}.status.light .status__content a.status__content__spoiler-link{color:#fff;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#b5c3d6}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#547aa9}.status__relative-time,.notification__relative_time{color:#3e5a7c;float:right;font-size:14px}.status__display-name{color:#3e5a7c}.status__info .status__display-name{display:block;max-width:100%;padding-right:25px}.status__info{font-size:15px}.status-check-box{border-bottom:1px solid #d9e1e8;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-left:68px;color:#3e5a7c;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#3e5a7c}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#3e5a7c}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#192432;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .status__content .status__content__spoiler-link{line-height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#3e5a7c;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.reply-indicator__content{color:#121a24;font-size:14px}.reply-indicator__content a{color:#3e5a7c}.domain{padding:10px;border-bottom:1px solid #202e3f}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#fff;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}.account{padding:10px;border-bottom:1px solid #202e3f}.account.compact{padding:0;border-bottom:0}.account.compact .account__avatar-wrapper{margin-left:0}.account .account__display-name{flex:1 1 auto;display:block;color:#9baec8;overflow:hidden;text-decoration:none;font-size:14px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;position:relative}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;border-radius:50%;overflow:hidden;position:relative;cursor:default}.account__avatar-composite>div{float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}a .account__avatar{cursor:pointer}.account__avatar-overlay{width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__disclaimer{padding:10px;border-top:1px solid #202e3f;color:#3e5a7c}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-dropdown{padding:10px}.account__action-bar-dropdown .icon-button{vertical-align:middle}.account__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__right{left:6px;right:initial}.account__action-bar-dropdown .dropdown--active::after{bottom:initial;margin-left:11px;margin-top:-7px;right:initial}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-right:1px solid #202e3f;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab.active{border-bottom:4px solid #d8a070}.account__action-bar__tab>span{display:block;font-size:12px;color:#9baec8}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#fff}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#fff}.muted .emojione{opacity:.5}.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,a.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#d9e1e8;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#fff}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{height:48px;left:10px;position:absolute;top:10px;width:48px}.status__expand{width:68px;position:absolute;left:0;top:0;height:100%;cursor:pointer}.muted .status__content,.muted .status__content p,.muted .status__content a{color:#3e5a7c}.muted .status__display-name strong{color:#3e5a7c}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#3e5a7c;color:#121a24}.muted a.status__content__spoiler-link:hover{background:#4a6b94;text-decoration:none}.notification__message{margin:0 10px 0 68px;padding:8px 0 0;cursor:default;color:#9baec8;font-size:15px;line-height:22px;position:relative}.notification__message .fa{color:#d8a070}.notification__message>span{display:inline;overflow:hidden;text-overflow:ellipsis}.notification__favourite-icon-wrapper{left:-26px;position:absolute}.notification__favourite-icon-wrapper .star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#fff;text-decoration:underline}.notification__relative_time{float:right}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.navigation-bar{padding:10px;display:flex;align-items:center;flex-shrink:0;cursor:default;color:#9baec8}.navigation-bar strong{color:#d9e1e8}.navigation-bar a{color:inherit}.navigation-bar .permalink{text-decoration:none}.navigation-bar .navigation-bar__actions{position:relative}.navigation-bar .navigation-bar__actions .icon-button.close{position:absolute;pointer-events:none;transform:scale(0, 1) translate(-100%, 0);opacity:0}.navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:auto;transform:scale(1, 1) translate(0, 0);opacity:1}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;line-height:20px;margin-top:-1px;overflow:hidden}.navigation-bar__profile-account{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile-edit{color:inherit;text-decoration:none}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #c0cdd9;margin:5px 7px 6px;height:0}.dropdown-menu{background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);z-index:9999}.dropdown-menu ul{list-style:none}.dropdown-menu.left{transform-origin:100% 50%}.dropdown-menu.top{transform-origin:50% 100%}.dropdown-menu.bottom{transform-origin:50% 0}.dropdown-menu.right{transform-origin:0 50%}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#d9e1e8}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#d9e1e8}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#d8a070;color:#d9e1e8;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#d8a070;color:#d9e1e8}.dropdown__icon{vertical-align:middle}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area.unscrollable{overflow-x:hidden}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#040609;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .drawer,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:350px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#121a24;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.drawer{width:330px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden}.drawer__tab{display:block;flex:1 1 auto;padding:15px 5px 13px;color:#9baec8;text-decoration:none;text-align:center;font-size:16px;border-bottom:2px solid transparent}.column,.drawer{flex:1 1 auto;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#202e3f;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#fff;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #202e3f;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.tabs-bar__link:hover,.tabs-bar__link:focus,.tabs-bar__link:active{background:#2a3c54;border-bottom-color:#2a3c54}}.tabs-bar__link.active{border-bottom:2px solid #d8a070;color:#d8a070}.tabs-bar__link span{margin-left:5px;display:none}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;height:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px 15px 15px 78px;min-height:50px}.columns-area--mobile .status__avatar{left:15px;top:17px}.columns-area--mobile .status__content{padding-top:5px}.columns-area--mobile .status__prepend{margin-left:78px;padding-top:15px}.columns-area--mobile .status__prepend-icon-wrapper{left:-32px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{margin-left:78px;padding-top:15px}.columns-area--mobile .notification__favourite-icon-wrapper{left:-32px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}.columns-area--mobile .notification .account__avatar-wrapper{margin-left:17px;margin-right:15px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#d59864;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#e0b38c}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.getting-started__trends,.search{margin-bottom:10px}.getting-started__panel{margin:10px 0}.column,.drawer{min-width:330px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#d8a070;border:2px solid #202e3f;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#fff}.column-link--transparent .icon-with-badge__badge{border-color:#040609}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .navigation-bar{padding-top:20px;padding-bottom:20px;flex:0 1 48px;min-height:20px}.compose-panel .flex-spacer{background:transparent}.compose-panel .compose-form{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px;padding-bottom:71px;margin-bottom:-71px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #192432;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#283a50;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%;border-radius:2px}.drawer__inner.darker{background:#121a24}.drawer__inner__mastodon{background:#283a50 url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:100%;height:100%;pointer-events:none;user-drag:none;user-select:none}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#283a50;font-size:13px;text-align:left}.drawer__header{flex:0 0 auto;font-size:16px;background:#202e3f;margin-bottom:10px;display:flex;flex-direction:row;border-radius:2px}.drawer__header a{transition:background 100ms ease-in}.drawer__header a:hover{background:#17212e;transition:background 200ms ease-out}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.column-back-button{box-sizing:border-box;width:100%;background:#192432;color:#d8a070;cursor:pointer;flex:0 0 auto;font-size:16px;line-height:inherit;border:0;text-align:unset;padding:15px;margin:0;z-index:3;outline:0}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#192432;border:0;font-family:inherit;color:#d8a070;cursor:pointer;white-space:nowrap;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#121a24;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#010102}.react-toggle--checked .react-toggle-track{background-color:#d8a070}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#e3bb98}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #121a24;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#d8a070}.column-link{background:#202e3f;color:#fff;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#253549}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#d9e1e8}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#fff}.column-link--transparent.active{color:#d8a070}.column-link__icon{display:inline-block;margin-right:5px}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#121a24;padding:4px 8px;margin:-6px 10px}.column-subheading{background:#121a24;color:#3e5a7c;padding:8px 20px;font-size:13px;font-weight:500;cursor:default}.getting-started__wrapper,.getting-started,.flex-spacer{background:#121a24}.flex-spacer{flex:1 1 auto}.getting-started{color:#3e5a7c;overflow:auto;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.getting-started__wrapper,.getting-started__panel,.getting-started__footer{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex-grow:0}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#3e5a7c;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#9baec8}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__wrapper,.getting-started__footer{color:#3e5a7c}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:13px;color:#9baec8;padding:10px;font-weight:500;border-bottom:1px solid #202e3f}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#9baec8}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#202e3f;border:1px solid #0b1016}.setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0;border-radius:4px}.setting-text:focus{outline:0}@media screen and (max-width: 600px){.setting-text{font-size:16px}}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#3e5a7c;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#d8a070}.status-card{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;color:#3e5a7c;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#d9e1e8;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}a.status-card{cursor:pointer}a.status-card:hover{background:#202e3f}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#9baec8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#9baec8}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#202e3f;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#192432}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#192432}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.load-more{display:block;color:#3e5a7c;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#151f2b}.load-gap{border-bottom:1px solid #202e3f}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#3e5a7c;background:#121a24;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#3e5a7c}.regeneration-indicator__label span{font-size:15px;font-weight:400}.column-header__wrapper{position:relative;flex:0 0 auto}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;top:35px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(216, 160, 112, 0.23) 0%, rgba(216, 160, 112, 0) 60%)}.column-header{display:flex;font-size:16px;background:#192432;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden;border-top-left-radius:2px;border-top-right-radius:2px}.column-header>button{margin:0;border:0;padding:15px 0 15px 15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#d8a070}.column-header.active{box-shadow:0 1px 0 rgba(216,160,112,.3)}.column-header.active .column-header__icon{color:#d8a070;text-shadow:0 0 10px rgba(216,160,112,.4)}.column-header:focus,.column-header:active{outline:0}.column-header__buttons{height:48px;display:flex}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button{background:#192432;border:0;color:#9baec8;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover{color:#b2c1d5}.column-header__button.active{color:#fff;background:#202e3f}.column-header__button.active:hover{color:#fff;background:#202e3f}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#9baec8;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #26374d;margin:10px 0}.column-header__collapsible-inner{background:#202e3f;padding:15px}.column-header__setting-btn:hover{color:#9baec8;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.column-header__icon{display:inline-block;margin-right:5px}.loading-indicator{color:#3e5a7c;font-size:13px;font-weight:400;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #3e5a7c;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#3e5a7c}29%{background-color:#3e5a7c}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.video-error-cover{align-items:center;background:#000;color:#fff;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#000;color:#9baec8;border:0;padding:0;width:100%;height:100%;border-radius:4px;appearance:none}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{padding:0;color:#b5c3d6}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:700}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:block;left:4px;top:4px;width:auto;height:auto}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(0,0,0,.5);border-radius:8px;padding:8px 12px;color:#fff;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(0,0,0,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(0,0,0,.5)}.modal-container--preloader{background:#202e3f}.account--panel{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#202e3f;padding:15px}.column-settings__section{color:#9baec8;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#a8b9cf}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#192432}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#3e5a7c;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#202e3f}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#26374d;color:#a8b9cf}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#9baec8}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#3e5a7c}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#45648a}.column-settings__hashtags .column-select__indicator-separator{background-color:#202e3f}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#d9e1e8}.column-settings__hashtags .column-select__menu h4{color:#9baec8;font-size:14px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#121a24}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#121a24;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#b9c8d5}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#fff;margin-bottom:4px;display:block;vertical-align:top;background-color:#000;font-size:12px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.setting-toggle{display:block;line-height:24px}.setting-toggle__label{color:#9baec8;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.empty-column-indicator,.error-column{color:#3e5a7c;background:#121a24;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column{contain:strict}}.empty-column-indicator>span,.error-column>span{max-width:400px}.empty-column-indicator a,.error-column a{color:#d8a070;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover{text-decoration:underline}.error-column{flex-direction:column}@keyframes heartbeat{from{transform:scale(1);animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.no-reduce-motion .pulse-loading{transform-origin:center center;animation:heartbeat 1.5s ease-in-out infinite both}@keyframes shake-bottom{0%,100%{transform:rotate(0deg);transform-origin:50% 100%}10%{transform:rotate(2deg)}20%,40%,60%{transform:rotate(-4deg)}30%,50%,70%{transform:rotate(4deg)}80%{transform:rotate(-2deg)}90%{transform:rotate(2deg)}}.no-reduce-motion .shake-bottom{transform-origin:50% 100%;animation:shake-bottom .8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(217,225,232,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.upload-area{align-items:center;background:rgba(0,0,0,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#121a24;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#d9e1e8;font-size:18px;font-weight:500;border:2px dashed #3e5a7c;border-radius:4px}.upload-progress{padding:10px;color:#3e5a7c;overflow:hidden;display:flex}.upload-progress .fa{font-size:34px;margin-right:10px}.upload-progress span{font-size:13px;font-weight:500;display:block}.upload-progess__message{flex:1 1 auto}.upload-progress__backdrop{width:100%;height:6px;border-radius:6px;background:#3e5a7c;position:relative;margin-top:5px}.upload-progress__tracker{position:absolute;left:0;top:0;height:6px;background:#d8a070;border-radius:6px}.emoji-button{display:block;font-size:24px;line-height:24px;margin-left:2px;width:24px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px;margin-top:2px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.dropdown--active .emoji-button img{opacity:1;filter:none}.privacy-dropdown__dropdown{position:absolute;background:#fff;box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:4px;margin-left:40px;overflow:hidden}.privacy-dropdown__dropdown.top{transform-origin:50% 100%}.privacy-dropdown__dropdown.bottom{transform-origin:50% 0}.privacy-dropdown__option{color:#121a24;padding:10px;cursor:pointer;display:flex}.privacy-dropdown__option:hover,.privacy-dropdown__option.active{background:#d8a070;color:#fff;outline:0}.privacy-dropdown__option:hover .privacy-dropdown__option__content,.privacy-dropdown__option.active .privacy-dropdown__option__content{color:#fff}.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,.privacy-dropdown__option.active .privacy-dropdown__option__content strong{color:#fff}.privacy-dropdown__option.active:hover{background:#dcab80}.privacy-dropdown__option__icon{display:flex;align-items:center;justify-content:center;margin-right:10px}.privacy-dropdown__option__content{flex:1 1 auto;color:#3e5a7c}.privacy-dropdown__option__content strong{font-weight:500;display:block;color:#121a24}.privacy-dropdown__option__content strong:lang(ja){font-weight:700}.privacy-dropdown__option__content strong:lang(ko){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-CN){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-HK){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-TW){font-weight:700}.privacy-dropdown.active .privacy-dropdown__value{background:#fff;border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1)}.privacy-dropdown.active .privacy-dropdown__value .icon-button{transition:none}.privacy-dropdown.active .privacy-dropdown__value.active{background:#d8a070}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#fff}.privacy-dropdown.active.top .privacy-dropdown__value{border-radius:0 0 4px 4px}.privacy-dropdown.active .privacy-dropdown__dropdown{display:block;box-shadow:2px 4px 6px rgba(0,0,0,.1)}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#a8b9cf}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#192432}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:transform,opacity;font-size:18px;width:18px;height:18px;color:#d9e1e8;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(90deg)}.search__icon .fa-search.active{pointer-events:none;transform:rotate(0deg)}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#3e5a7c;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#4a6b94}.search-results__header{color:#3e5a7c;background:#151f2b;padding:15px;font-weight:500;font-size:16px;cursor:default}.search-results__header .fa{display:inline-block;margin-right:5px}.search-results__section{margin-bottom:5px}.search-results__section h5{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#3e5a7c}.search-results__section h5 .fa{display:inline-block;margin-right:5px}.search-results__section .account:last-child,.search-results__section>div:last-child .status{border-bottom:0}.search-results__hashtag{display:block;padding:10px;color:#d9e1e8;text-decoration:none}.search-results__hashtag:hover,.search-results__hashtag:active,.search-results__hashtag:focus{color:#e6ebf0;text-decoration:underline}.search-results__info{padding:20px;color:#9baec8;text-align:center}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(0,0,0,.5);box-sizing:border-box;border:0;color:#fff;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#d9e1e8}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#d8a070}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.onboarding-modal,.error-modal,.embed-modal{background:#d9e1e8;color:#121a24;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#c0cdd9;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#3e5a7c;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#37506f;background-color:#a6b9c9}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#121a24}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#192432}.error-modal__footer{justify-content:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#121a24;margin-bottom:5px;font-size:13px}.display-case__case{background:#121a24;color:#d9e1e8;font-weight:500;padding:10px;border-radius:4px}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#f2f5f7;color:#121a24;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:block;max-width:100%;padding-right:25px}.boost-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:28px;left:10px;position:absolute;top:10px;width:48px}.boost-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#f2f5f7}.actions-modal .status{background:#fff;border-bottom-color:#d9e1e8;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#d9e1e8}.boost-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#d9e1e8;padding:10px;line-height:36px}.boost-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#3e5a7c;padding-right:10px}.boost-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header{font-size:15px}.boost-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #d9e1e8}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#d8a070}.report-modal__statuses .status__content,.report-modal__statuses .status__content p,.focal-point-modal__content .status__content,.focal-point-modal__content .status__content p{color:#121a24}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #d9e1e8;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #d9e1e8;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #c0cdd9}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #d9e1e8;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#121a24;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#121a24;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#121a24;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#d8a070;color:#fff}.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#3e5a7c;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#37506f;background-color:transparent}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#121a24;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.loading-bar{background-color:#d8a070;height:3px;position:absolute;top:0;left:0;z-index:9999}.media-gallery__gifv__label{display:block;position:absolute;color:#fff;background:rgba(0,0,0,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv.autoplay .media-gallery__gifv__label{display:none}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{margin-top:32px}.media-gallery__audio audio{width:100%}.attachment-list{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#3e5a7c;padding:8px 18px;cursor:default;border-right:1px solid #202e3f;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#3e5a7c;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#3e5a7c}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%}.media-gallery__item{border:0;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#d9e1e8;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%}.media-gallery__item-thumbnail img{object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#000}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;object-fit:cover;position:relative;top:50%;transform:translateY(-50%);width:100%;z-index:1}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#040609;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #192432;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(225,181,144,.5)}.audio-player__wave-placeholder{background-color:#2d415a}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#040609;border-top:1px solid #192432;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.video-player video{max-width:100vw;max-height:80vh;z-index:1}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#9baec8;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#b2c1d5}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#e1b590}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#e1b590;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#e1b590}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#e1b590;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#000;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#192432;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#040609;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#121a24;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #202e3f;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:0;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#0b1016;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#9baec8;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#d9e1e8}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #202e3f}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #121a24}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#0f151d;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #06090c}.filter-form{background:#121a24}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#e1b590;background:#e1b590}::-webkit-scrollbar-thumb{border-radius:0}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{color:#9baec8;font-size:14px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#121a24}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#d9e1e8;max-width:400px}noscript div a{color:#d8a070;text-decoration:underline}noscript div a:hover{text-decoration:none}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}@media screen and (max-width: 630px)and (max-height: 400px){.tabs-bar,.search{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar{will-change:padding-bottom;transition:padding-bottom 400ms 100ms}.navigation-bar>a:first-child{will-change:margin-top,margin-left,margin-right,width;transition:margin-top 400ms 100ms,margin-left 400ms 500ms,margin-right 400ms 500ms}.navigation-bar>.navigation-bar__profile-edit{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar .navigation-bar__actions>.icon-button.close{will-change:opacity transform;transition:opacity 200ms 100ms,transform 400ms 100ms}.navigation-bar .navigation-bar__actions>.compose__action-bar .icon-button{will-change:opacity transform;transition:opacity 200ms 300ms,transform 400ms 100ms}.is-composing .tabs-bar,.is-composing .search{margin-top:-50px}.is-composing .navigation-bar{padding-bottom:0}.is-composing .navigation-bar>a:first-child{margin:-100px 10px 0 -50px}.is-composing .navigation-bar .navigation-bar__profile{padding-top:2px}.is-composing .navigation-bar .navigation-bar__profile-edit{position:absolute;margin-top:-60px}.is-composing .navigation-bar .navigation-bar__actions .icon-button.close{pointer-events:auto;opacity:1;transform:scale(1, 1) translate(0, 0);bottom:5px}.is-composing .navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:none;opacity:0;transform:scale(0, 1) translate(100%, 0)}}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#121a24;color:#fff;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#192432}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f}.account__moved-note__message{position:relative;margin-left:58px;color:#3e5a7c;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.column-inline-form{padding:15px;padding-right:0;display:flex;justify-content:flex-start;align-items:center;background:#192432}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 10px}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.list-editor{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#283a50;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#283a50}.list-adder__lists{background:#283a50;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #202e3f}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#fff;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.account__header__content{color:#9baec8;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#0b1016}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#192432;padding:5px;border-bottom:1px solid #26374d}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#040609;border:2px solid #192432}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #26374d;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#fff}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #26374d}.account__header__bio .account__header__fields a{color:#e1b590}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#9baec8;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#fff}.trends__header{color:#3e5a7c;background:#151f2b;border-bottom:1px solid #0b1016;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #202e3f}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#3e5a7c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#9baec8;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#d9e1e8}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(216,160,112,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#dfb088 !important}.conversation{display:flex;border-bottom:1px solid #202e3f;padding:5px;padding-bottom:0}.conversation:focus{background:#151f2b;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative}.conversation__unread{display:inline-block;background:#d8a070;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#9baec8;padding-left:15px}.conversation__content__names{color:#9baec8;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#fff;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content a{word-break:break-word}.conversation--unread{background:#151f2b}.conversation--unread:focus{background:#192432}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#fff}.poll{margin-top:16px;font-size:14px}.poll li{margin-bottom:10px;position:relative}.poll__chart{position:absolute;top:0;left:0;height:100%;display:inline-block;border-radius:4px;background:#6d89af}.poll__chart.leading{background:#d8a070}.poll__text{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__text input[type=radio],.poll__text input[type=checkbox]{display:none}.poll__text .autossugest-input{flex:1 1 auto}.poll__text input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#121a24;outline:0;font-family:inherit;background:#fff;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px}.poll__text input[type=text]:focus{border-color:#d8a070}.poll__text.selectable{cursor:pointer}.poll__text.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-width:4px;background:none}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:52px;font-weight:700;padding:0 10px;padding-left:8px;text-align:right;margin-top:auto;margin-bottom:auto;flex:0 0 52px}.poll__vote__mark{float:left;line-height:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#3e5a7c}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#3e5a7c;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(62,90,124,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #ebebeb}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #ebebeb;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#d8a070}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#3e5a7c;border-color:#3e5a7c;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__text{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#121a24;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#dbdbdb}.muted .poll{color:#3e5a7c}.muted .poll__chart{background:rgba(109,137,175,.2)}.muted .poll__chart.leading{background:rgba(216,160,112,.2)}.modal-layout{background:#121a24 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.emoji-mart{font-size:13px;display:inline-block;color:#121a24}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #c0cdd9}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#d9e1e8}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#3e5a7c;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#37506f}.emoji-mart-anchor-selected{color:#d8a070}.emoji-mart-anchor-selected:hover{color:#d49560}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:-1px}.emoji-mart-anchor-bar{position:absolute;bottom:-5px;left:0;width:100%;height:4px;background-color:#d8a070}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(217,225,232,.3);color:#121a24;border:1px solid #d9e1e8;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(217,225,232,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#9baec8}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#9baec8}.rich-formatting a{color:#d8a070;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#9baec8}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#d9e1e8}.rich-formatting em{font-style:italic;color:#d9e1e8}.rich-formatting code{font-size:.85em;background:#040609;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:\"mastodon-font-display\",sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#d9e1e8}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #192432;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #192432;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#9baec8}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#3e5a7c}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#0b1016;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;line-height:28px;color:#fff;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#d9e1e8}.information-board__section strong{font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#040609;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#9baec8;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #192432;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#7a93b6}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#fff;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#9baec8}.landing-page p,.landing-page li{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#9baec8}.landing-page p a,.landing-page li a{color:#d8a070;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.landing-page h1{font-family:\"mastodon-font-display\",sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h1 small{font-family:\"mastodon-font-sans-serif\",sans-serif;display:block;font-size:18px;font-weight:400;color:#bcc9da}.landing-page h2{font-family:\"mastodon-font-display\",sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h3{font-family:\"mastodon-font-display\",sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h4{font-family:\"mastodon-font-display\",sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h5{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h6{font-family:\"mastodon-font-display\",sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(62,90,124,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#121a24;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#bcc9da}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#121a24;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#d9e1e8}.landing-page__short-description h1{font-weight:500;color:#fff;margin-bottom:0}.landing-page__short-description h1 small{color:#9baec8}.landing-page__short-description h1 small span{color:#d9e1e8}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#fff;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;font-weight:700;font-size:14px;color:#9baec8}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#121a24;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:\"mastodon-font-display\",sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#9baec8}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#9baec8}.landing .simple_form p.lead{color:#9baec8;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #202e3f}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#3e5a7c}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #121a24;text-align:left;background:#0b1016}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #121a24;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#121a24}.table a{color:#d8a070;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#121a24;border-top:1px solid #040609;border-bottom:1px solid #040609}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #040609}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #040609}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:\"mastodon-font-monospace\",monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#9baec8;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#fff}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #040609;background:#121a24;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #040609;border-top:0;background:#121a24}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #040609;border-top:0;background:#0b1016}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #040609}}.batch-table__row:hover{background:#0f151d}.batch-table__row:nth-child(even){background:#121a24}.batch-table__row:nth-child(even):hover{background:#151f2b}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#9baec8;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content summary{display:list-item}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #040609;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #040609}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#121a24;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#202e3f;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#fff;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#9baec8;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#26374d}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#9baec8;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#fff;background-color:#0a0e13;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#0f151d;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#0b1016;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#fff;background-color:#d8a070;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#ddad84}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #202e3f;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#d9e1e8;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#d9e1e8;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{font-size:14px;font-weight:700;color:#9baec8;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #202e3f}.admin-wrapper .content h6{font-size:16px;color:#d9e1e8;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#fff;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#fff;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:0}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#d9e1e8;margin-bottom:20px}.admin-wrapper .content>p strong{color:#fff;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(62,90,124,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #192432;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#d8a070}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#9baec8}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#d8a070}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#3e5a7c;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;font-size:13px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset a{display:inline-block;color:#9baec8;text-decoration:none;font-size:13px;font-weight:500;border-bottom:2px solid #121a24}.filters .filter-subset a:hover{color:#fff;border-bottom:2px solid #1b2635}.filters .filter-subset a.selected{color:#d8a070;border-bottom:2px solid #d8a070}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#d9e1e8}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#d8a070;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{margin-bottom:20px;line-height:20px}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;padding:10px;background:#121a24;color:#9baec8;border-radius:4px 4px 0 0;font-size:14px;position:relative}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#3e5a7c}.log-entry__extras{background:#1c2938;border-radius:0 0 4px 4px;padding:10px;color:#9baec8;font-family:\"mastodon-font-monospace\",monospace;font-size:12px;word-wrap:break-word;min-height:20px}.log-entry__icon{font-size:28px;margin-right:10px;color:#3e5a7c}.log-entry__icon__overlay{position:absolute;top:10px;right:10px;width:10px;height:10px;border-radius:50%}.log-entry__icon__overlay.positive{background:#79bd9a}.log-entry__icon__overlay.negative{background:#e87487}.log-entry__icon__overlay.neutral{background:#d8a070}.log-entry a,.log-entry .username,.log-entry .target{color:#d9e1e8;text-decoration:none;font-weight:500}.log-entry .diff-old{color:#e87487}.log-entry .diff-neutral{color:#d9e1e8}.log-entry .diff-new{color:#79bd9a}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#d9e1e8}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#e87487}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #d8a070}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#e87487}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#9baec8}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#3e5a7c}.report-card{background:#121a24;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#9baec8;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#b5c3d6}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #0b1016}.report-card__summary__item:hover{background:#151f2b}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#9baec8}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#3e5a7c;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#9baec8}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#202e3f;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#e1b590}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#fff}.center-text{text-align:center}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#192432;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#202e3f}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#fff;font-family:\"mastodon-font-display\",sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#9baec8;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#d9e1e8;font-weight:500;text-decoration:none}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .status__avatar{left:auto;right:10px}body.rtl .status,body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:68px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(1, 1, 2, 0), #010102)}body.rtl .simple_form select{background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff);transform:scale(0.71)}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a !default; // Padua\n$error-red: #df405a !default; // Cerise\n$warning-red: #ff5050 !default; // Sunset Orange\n$gold-star: #ca8f04 !default; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: 'mastodon-font-sans-serif' !default;\n$font-display: 'mastodon-font-display' !default;\n$font-monospace: 'mastodon-font-monospace' !default;\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n\n @return '%23' + unquote($color);\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.player {\n text-align: center;\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n &__illustration {\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div,\n & > noscript {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n\n & > noscript {\n height: 100vh;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n\n.error-boundary,\n.app-holder noscript {\n flex-direction: column;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.7;\n color: lighten($error-red, 4%);\n text-align: center;\n\n & > div {\n max-width: 500px;\n }\n\n p {\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &__footer {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n }\n }\n\n button {\n display: inline;\n border: 0;\n background: transparent;\n color: $dark-text-color;\n font: inherit;\n padding: 0;\n margin: 0;\n line-height: inherit;\n cursor: pointer;\n outline: 0;\n transition: color 300ms linear;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.copied {\n color: $valid-value-color;\n transition: none;\n }\n }\n}\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1 / 3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n font-weight: 700;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n font-weight: 700;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small,\n .trends__item__current {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n\n .trends__item__current {\n padding-right: 0;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n\n li {\n list-style: disc;\n margin-left: 18px;\n }\n }\n\n ul.hint {\n margin-bottom: 15px;\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\nbutton.icon-button.disabled i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: $ui-highlight-color;\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 15px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 10%);\n transition: all 200ms ease-out;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled,\n &.disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n color: $darker-text-color;\n background: transparent;\n padding: 3px 15px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.compose-form {\n padding: 10px;\n\n &__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n }\n\n .compose-form__warning {\n color: $inverted-text-color;\n margin-bottom: 10px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n strong {\n color: $inverted-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 5px;\n right: 5px;\n }\n\n .compose-form__autosuggest-wrapper {\n position: relative;\n }\n\n .autosuggest-textarea,\n .autosuggest-input,\n .spoiler-input {\n position: relative;\n width: 100%;\n }\n\n .spoiler-input {\n height: 0;\n transform-origin: bottom;\n opacity: 0;\n\n &.spoiler-input--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1;\n }\n }\n\n .autosuggest-textarea__textarea,\n .spoiler-input__input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .spoiler-input__input {\n border-radius: 4px;\n }\n\n .autosuggest-textarea__textarea {\n min-height: 100px;\n border-radius: 4px 4px 0 0;\n padding-bottom: 0;\n padding-right: 10px + 22px;\n resize: none;\n scrollbar-color: initial;\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n @media screen and (max-width: 600px) {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n\n .autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n }\n\n .autosuggest-textarea__suggestions {\n box-sizing: border-box;\n display: none;\n position: absolute;\n top: 100%;\n width: 100%;\n z-index: 99;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n background: $ui-secondary-color;\n border-radius: 0 0 4px 4px;\n color: $inverted-text-color;\n font-size: 14px;\n padding: 6px;\n\n &.autosuggest-textarea__suggestions--visible {\n display: block;\n }\n }\n\n .autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n\n .autosuggest-account,\n .autosuggest-emoji,\n .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .autosuggest-account-icon,\n .autosuggest-emoji img {\n display: block;\n margin-right: 8px;\n width: 16px;\n height: 16px;\n }\n\n .autosuggest-account .display-name__account {\n color: $lighter-text-color;\n }\n\n .compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n\n .compose-form__upload-wrapper {\n overflow: hidden;\n }\n\n .compose-form__uploads-wrapper {\n display: flex;\n flex-direction: row;\n padding: 5px;\n flex-wrap: wrap;\n }\n\n .compose-form__upload {\n flex: 1 1 0;\n min-width: 40%;\n margin: 5px;\n\n &__actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $secondary-text-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($secondary-text-color, 7%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n\n &-description {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n padding: 10px;\n opacity: 0;\n transition: opacity .1s ease;\n\n textarea {\n background: transparent;\n color: $secondary-text-color;\n border: 0;\n padding: 0;\n margin: 0;\n width: 100%;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n\n &:focus {\n color: $white;\n }\n\n &::placeholder {\n opacity: 0.75;\n color: $secondary-text-color;\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n }\n\n .compose-form__upload-thumbnail {\n border-radius: 4px;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 140px;\n width: 100%;\n overflow: hidden;\n }\n }\n\n .compose-form__buttons-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n\n .compose-form__buttons {\n display: flex;\n\n .compose-form__upload-button-icon {\n line-height: 27px;\n }\n\n .compose-form__sensitive-button {\n display: none;\n\n &.compose-form__sensitive-button--visible {\n display: block;\n }\n\n .compose-form__sensitive-button__icon {\n line-height: 27px;\n }\n }\n }\n\n .icon-button,\n .text-icon-button {\n box-sizing: content-box;\n padding: 0 3px;\n }\n\n .character-counter__wrapper {\n align-self: center;\n margin-right: 4px;\n }\n }\n\n .compose-form__publish {\n display: flex;\n justify-content: flex-end;\n min-width: 0;\n flex: 0 0 auto;\n\n .compose-form__publish-button-wrapper {\n overflow: hidden;\n padding-top: 10px;\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .spoiler-input {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.reply-indicator {\n border-radius: 4px;\n margin-bottom: 10px;\n background: $ui-primary-color;\n padding: 10px;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n}\n\n.reply-indicator__header {\n margin-bottom: 5px;\n overflow: hidden;\n}\n\n.reply-indicator__cancel {\n float: right;\n line-height: 24px;\n}\n\n.reply-indicator__display-name {\n color: $inverted-text-color;\n display: block;\n max-width: 100%;\n line-height: 24px;\n overflow: hidden;\n padding-right: 25px;\n text-decoration: none;\n}\n\n.reply-indicator__display-avatar {\n float: left;\n margin-right: 5px;\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content,\n.reply-indicator__content {\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n color: $primary-text-color;\n\n &:focus {\n outline: 0;\n }\n\n &.status__content--with-spoiler {\n white-space: normal;\n\n .status__content__text {\n white-space: pre-wrap;\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n\n .status__content__spoiler-link {\n background: $action-button-color;\n\n &:hover {\n background: lighten($action-button-color, 7%);\n text-decoration: none;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n .status__content__text {\n display: none;\n\n &.status__content__text--visible {\n display: block;\n }\n }\n}\n\n.status__content.status__content--collapsed {\n max-height: 20px * 15; // 15 lines is roughly above 500 characters\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: transparent;\n border: 0;\n color: $inverted-text-color;\n font-weight: 700;\n font-size: 12px;\n padding: 0 6px;\n line-height: 20px;\n cursor: pointer;\n vertical-align: middle;\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n .status.status-direct {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 8px 10px;\n padding-left: 68px;\n position: relative;\n min-height: 54px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 26px; // 10px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $light-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n strong {\n color: $inverted-text-color;\n }\n\n span {\n color: $light-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time,\n.notification__relative_time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n}\n\n.status__display-name {\n color: $dark-text-color;\n}\n\n.status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n}\n\n.status__info {\n font-size: 15px;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-left: 68px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.reply-indicator__content {\n color: $inverted-text-color;\n font-size: 14px;\n\n a {\n color: $lighter-text-color;\n }\n}\n\n.domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &.compact {\n padding: 0;\n border-bottom: 0;\n\n .account__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius;\n position: relative;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n border-radius: 50%;\n overflow: hidden;\n position: relative;\n cursor: default;\n\n & > div {\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\na .account__avatar {\n cursor: pointer;\n}\n\n.account__avatar-overlay {\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius;\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius;\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__disclaimer {\n padding: 10px;\n border-top: 1px solid lighten($ui-base-color, 8%);\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-dropdown {\n padding: 10px;\n\n .icon-button {\n vertical-align: middle;\n }\n\n .dropdown--active {\n .dropdown__content.dropdown__right {\n left: 6px;\n right: initial;\n }\n\n &::after {\n bottom: initial;\n margin-left: 11px;\n margin-top: -7px;\n right: initial;\n }\n }\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-right: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n font-size: 12px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\n.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\na.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n height: 48px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n}\n\n.status__expand {\n width: 68px;\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n cursor: pointer;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-lighter-color, 7%);\n text-decoration: none;\n }\n }\n}\n\n.notification__message {\n margin: 0 10px 0 68px;\n padding: 8px 0 0;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n line-height: 22px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: inline;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: -26px;\n position: absolute;\n\n .star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.notification__relative_time {\n float: right;\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.navigation-bar {\n padding: 10px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n cursor: default;\n color: $darker-text-color;\n\n strong {\n color: $secondary-text-color;\n }\n\n a {\n color: inherit;\n }\n\n .permalink {\n text-decoration: none;\n }\n\n .navigation-bar__actions {\n position: relative;\n\n .icon-button.close {\n position: absolute;\n pointer-events: none;\n transform: scale(0, 1) translate(-100%, 0);\n opacity: 0;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: auto;\n transform: scale(1, 1) translate(0, 0);\n opacity: 1;\n }\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n line-height: 20px;\n margin-top: -1px;\n overflow: hidden;\n}\n\n.navigation-bar__profile-account {\n display: block;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.navigation-bar__profile-edit {\n color: inherit;\n text-decoration: none;\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n z-index: 9999;\n\n ul {\n list-style: none;\n }\n\n &.left {\n transform-origin: 100% 50%;\n }\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n\n &.right {\n transform-origin: 0 50%;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &.unscrollable {\n overflow-x: hidden;\n }\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .drawer,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 350px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.drawer {\n width: 330px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n}\n\n.drawer__tab {\n display: block;\n flex: 1 1 auto;\n padding: 15px 5px 13px;\n color: $darker-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 16px;\n border-bottom: 2px solid transparent;\n}\n\n.column,\n.drawer {\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @media screen and (min-width: 631px) {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $highlight-text-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__favourite-icon-wrapper {\n left: -32px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n\n .account__avatar-wrapper {\n margin-left: 17px;\n margin-right: 15px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .getting-started__trends,\n .search {\n margin-bottom: 10px;\n }\n\n .getting-started__panel {\n margin: 10px 0;\n }\n\n .column,\n .drawer {\n min-width: 330px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .navigation-bar {\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 0 1 48px;\n min-height: 20px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .compose-form {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n padding-bottom: 71px;\n margin-bottom: -71px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n border-radius: 2px;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 100%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__header {\n flex: 0 0 auto;\n font-size: 16px;\n background: lighten($ui-base-color, 8%);\n margin-bottom: 10px;\n display: flex;\n flex-direction: row;\n border-radius: 2px;\n\n a {\n transition: background 100ms ease-in;\n\n &:hover {\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n line-height: inherit;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n outline: 0;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n white-space: nowrap;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 13px;\n font-weight: 500;\n cursor: default;\n}\n\n.getting-started__wrapper,\n.getting-started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n color: $dark-text-color;\n overflow: auto;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n\n &__wrapper,\n &__panel,\n &__footer {\n height: min-content;\n }\n\n &__panel,\n &__footer\n {\n padding: 10px;\n padding-top: 20px;\n flex-grow: 0;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__wrapper,\n &__footer\n {\n color: $dark-text-color;\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 13px;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n border-radius: 4px;\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n\n &.active {\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n top: 35px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n\n & > button {\n margin: 0;\n border: 0;\n padding: 15px 0 15px 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($highlight-text-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 13px;\n font-weight: 400;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n border-radius: 4px;\n appearance: none;\n\n &:hover,\n &:active,\n &:focus {\n padding: 0;\n color: lighten($darker-text-color, 8%);\n }\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 700;\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: block;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout;\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n font-size: 12px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.empty-column-indicator,\n.error-column {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.error-column {\n flex-direction: column;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.no-reduce-motion .pulse-loading {\n transform-origin: center center;\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n@keyframes shake-bottom {\n 0%,\n 100% {\n transform: rotate(0deg);\n transform-origin: 50% 100%;\n }\n\n 10% {\n transform: rotate(2deg);\n }\n\n 20%,\n 40%,\n 60% {\n transform: rotate(-4deg);\n }\n\n 30%,\n 50%,\n 70% {\n transform: rotate(4deg);\n }\n\n 80% {\n transform: rotate(-2deg);\n }\n\n 90% {\n transform: rotate(2deg);\n }\n}\n\n.no-reduce-motion .shake-bottom {\n transform-origin: 50% 100%;\n animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.upload-progress {\n padding: 10px;\n color: $lighter-text-color;\n overflow: hidden;\n display: flex;\n\n .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n span {\n font-size: 13px;\n font-weight: 500;\n display: block;\n }\n}\n\n.upload-progess__message {\n flex: 1 1 auto;\n}\n\n.upload-progress__backdrop {\n width: 100%;\n height: 6px;\n border-radius: 6px;\n background: $ui-base-lighter-color;\n position: relative;\n margin-top: 5px;\n}\n\n.upload-progress__tracker {\n position: absolute;\n left: 0;\n top: 0;\n height: 6px;\n background: $ui-highlight-color;\n border-radius: 6px;\n}\n\n.emoji-button {\n display: block;\n font-size: 24px;\n line-height: 24px;\n margin-left: 2px;\n width: 24px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n margin-top: 2px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.privacy-dropdown__dropdown {\n position: absolute;\n background: $simple-background-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-left: 40px;\n overflow: hidden;\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n}\n\n.privacy-dropdown__option {\n color: $inverted-text-color;\n padding: 10px;\n cursor: pointer;\n display: flex;\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n outline: 0;\n\n .privacy-dropdown__option__content {\n color: $primary-text-color;\n\n strong {\n color: $primary-text-color;\n }\n }\n }\n\n &.active:hover {\n background: lighten($ui-highlight-color, 4%);\n }\n}\n\n.privacy-dropdown__option__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 10px;\n}\n\n.privacy-dropdown__option__content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n strong {\n font-weight: 500;\n display: block;\n color: $inverted-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.privacy-dropdown.active {\n .privacy-dropdown__value {\n background: $simple-background-color;\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n\n .icon-button {\n transition: none;\n }\n\n &.active {\n background: $ui-highlight-color;\n\n .icon-button {\n color: $primary-text-color;\n }\n }\n }\n\n &.top .privacy-dropdown__value {\n border-radius: 0 0 4px 4px;\n }\n\n .privacy-dropdown__dropdown {\n display: block;\n box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);\n }\n}\n\n.search {\n position: relative;\n}\n\n.search__input {\n @include search-input;\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(90deg);\n\n &.active {\n pointer-events: none;\n transform: rotate(0deg);\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n}\n\n.search-results__section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n}\n\n.search-results__hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $primary-text-color;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $highlight-text-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n font-size: 13px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n }\n\n .status__avatar {\n height: 28px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n .status__content,\n .status__content p {\n color: $inverted-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n max-height: 80vh;\n max-width: 80vw;\n\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.loading-bar {\n background-color: $highlight-text-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &.autoplay {\n .media-gallery__gifv__label {\n display: none;\n }\n }\n\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n margin-top: 32px;\n\n audio {\n width: 100%;\n }\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n/* Media Gallery */\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n }\n\n img {\n object-fit: cover;\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n object-fit: cover;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n z-index: 1;\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n/* End Media Gallery */\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-overlay-background;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n\n.directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\n.search-popout {\n @include search-popout;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@media screen and (max-width: 630px) and (max-height: 400px) {\n $duration: 400ms;\n $delay: 100ms;\n\n .tabs-bar,\n .search {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar {\n will-change: padding-bottom;\n transition: padding-bottom $duration $delay;\n }\n\n .navigation-bar {\n & > a:first-child {\n will-change: margin-top, margin-left, margin-right, width;\n transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay);\n }\n\n & > .navigation-bar__profile-edit {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar__actions {\n & > .icon-button.close {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay,\n transform $duration $delay;\n }\n\n & > .compose__action-bar .icon-button {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay + $duration * 0.5,\n transform $duration $delay;\n }\n }\n }\n\n .is-composing {\n .tabs-bar,\n .search {\n margin-top: -50px;\n }\n\n .navigation-bar {\n padding-bottom: 0;\n\n & > a:first-child {\n margin: -100px 10px 0 -50px;\n }\n\n .navigation-bar__profile {\n padding-top: 2px;\n }\n\n .navigation-bar__profile-edit {\n position: absolute;\n margin-top: -60px;\n }\n\n .navigation-bar__actions {\n .icon-button.close {\n pointer-events: auto;\n opacity: 1;\n transform: scale(1, 1) translate(0, 0);\n bottom: 5px;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: none;\n opacity: 0;\n transform: scale(0, 1) translate(100%, 0);\n }\n }\n }\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.column-inline-form {\n padding: 15px;\n padding-right: 0;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 10px;\n }\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n\n.list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n",null,"@mixin avatar-radius {\n border-radius: 4px;\n background: transparent no-repeat;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size: 48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin search-input {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: 0;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n display: inline-block;\n border-radius: 4px;\n background: darken($ui-primary-color, 14%);\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__text {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-width: 4px;\n background: none;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 52px;\n font-weight: 700;\n padding: 0 10px;\n padding-left: 8px;\n text-align: right;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 52px;\n }\n\n &__vote__mark {\n float: left;\n line-height: 18px;\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__text {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".emoji-mart {\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: -1px;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -5px;\n left: 0;\n width: 100%;\n height: 4px;\n background-color: $highlight-text-color;\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n font-weight: 700;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n summary {\n display: list-item;\n }\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n font-size: 14px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: 0;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n font-size: 13px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n font-size: 13px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n margin-bottom: 20px;\n line-height: 20px;\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n padding: 10px;\n background: $ui-base-color;\n color: $darker-text-color;\n border-radius: 4px 4px 0 0;\n font-size: 14px;\n position: relative;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n &__extras {\n background: lighten($ui-base-color, 6%);\n border-radius: 0 0 4px 4px;\n padding: 10px;\n color: $darker-text-color;\n font-family: $font-monospace, monospace;\n font-size: 12px;\n word-wrap: break-word;\n min-height: 20px;\n }\n\n &__icon {\n font-size: 28px;\n margin-right: 10px;\n color: $dark-text-color;\n }\n\n &__icon__overlay {\n position: absolute;\n top: 10px;\n right: 10px;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n\n &.positive {\n background: $success-green;\n }\n\n &.negative {\n background: lighten($error-red, 12%);\n }\n\n &.neutral {\n background: $ui-highlight-color;\n }\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n\n .diff-old {\n color: lighten($error-red, 12%);\n }\n\n .diff-neutral {\n color: $secondary-text-color;\n }\n\n .diff-new {\n color: $success-green;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .status__avatar {\n left: auto;\n right: 10px;\n }\n\n .status,\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n","$black-emojis: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash';\n\n%white-emoji-outline {\n filter: drop-shadow(1px 1px 0 $white) drop-shadow(-1px 1px 0 $white) drop-shadow(1px -1px 0 $white) drop-shadow(-1px -1px 0 $white);\n transform: scale(.71);\n}\n\n.emojione {\n @each $emoji in $black-emojis {\n &[title=':#{$emoji}:'] {\n @extend %white-emoji-outline;\n }\n }\n}\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///application.scss","webpack:///./app/javascript/styles/mastodon/reset.scss","webpack:///./app/javascript/styles/mastodon/variables.scss","webpack:///./app/javascript/styles/mastodon/basics.scss","webpack:///./app/javascript/styles/mastodon/containers.scss","webpack:///./app/javascript/styles/mastodon/lists.scss","webpack:///./app/javascript/styles/mastodon/footer.scss","webpack:///./app/javascript/styles/mastodon/compact_header.scss","webpack:///./app/javascript/styles/mastodon/widgets.scss","webpack:///./app/javascript/styles/mastodon/forms.scss","webpack:///./app/javascript/styles/mastodon/accounts.scss","webpack:///./app/javascript/styles/mastodon/statuses.scss","webpack:///./app/javascript/styles/mastodon/boost.scss","webpack:///./app/javascript/styles/mastodon/components.scss","webpack:///","webpack:///./app/javascript/styles/mastodon/_mixins.scss","webpack:///./app/javascript/styles/mastodon/polls.scss","webpack:///./app/javascript/styles/mastodon/modal.scss","webpack:///./app/javascript/styles/mastodon/emoji_picker.scss","webpack:///./app/javascript/styles/mastodon/about.scss","webpack:///./app/javascript/styles/mastodon/tables.scss","webpack:///./app/javascript/styles/mastodon/admin.scss","webpack:///./app/javascript/styles/mastodon/dashboard.scss","webpack:///./app/javascript/styles/mastodon/rtl.scss","webpack:///./app/javascript/styles/mastodon/accessibility.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,sCACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,0BACA,CCtEW,iED6Eb,kBC7Ea,4BDiFb,sBACE,MErFF,iDACE,mBACA,eACA,iBACA,gBACA,WDXM,kCCaN,6BACA,8BACA,CADA,0BACA,CADA,qBACA,0CACA,wCACA,kBAEA,iKAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBD7CW,kBCiDX,iBACE,kBACA,0BAEA,iBACE,aAIJ,iBACE,YAGF,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cD3EoB,mBAPX,WCqFT,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,sCAGE,aACE,gBACA,WACA,YACA,kBACA,uBAIJ,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,kDAKF,YAGE,WACA,mBACA,uBACA,oBACA,sBAGF,YACE,yEAKF,gBAEE,+EAKF,WAEE,sCAIJ,qBAEE,eACA,gBACA,gBACA,cACA,kBACA,8CAEA,eACE,0CAGF,mBACE,gEAEA,eACE,0CAIJ,aDtKwB,kKCyKtB,oBAGE,sDAIJ,aDpKsB,eCsKpB,0DAEA,aDxKoB,oDC6KtB,cACE,SACA,uBACA,cDhLoB,aCkLpB,UACA,SACA,oBACA,eACA,UACA,4BACA,0BACA,gMAEA,oBAGE,kEAGF,aD9NY,gBCgOV,gBCnON,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SFrBI,YEuBF,kBACA,sBAGF,YACE,uBACA,mBACA,WF9BE,qBEgCF,UACA,kBACA,iBACA,6CACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAGF,UACE,YACA,iBACA,6BAEA,UACE,YACA,cACA,SACA,kBACA,uBAIJ,aACE,cF7EsB,wBE+EtB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UFxUA,qCE2UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cF7UkB,mBE+UlB,kBACA,uHAEA,yBAGE,WFrWA,qCEyWF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBFtaoB,8CE2atB,yBACE,gBACA,aACA,kBACA,gBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,YACA,aACA,kBACA,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,qCAIJ,2CArCF,YAsCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAGF,UACE,YACA,CACA,sBACA,wDAEA,QACE,kBACA,2DAGF,mDAXF,YAYI,sCAKN,2CAhEF,eAiEI,sCAGF,2CApEF,cAqEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WF1kBF,gBE4kBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WFplBJ,gBEslBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aF5lBY,oDEmmBlB,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cFxnBc,aE0nBd,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BFzpBc,wEE+pBd,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WFnsBJ,6CEqsBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cFztBgB,uDE4tBhB,oBACE,cF7tBc,qBE+tBd,aACA,gBACA,8DAEA,eACE,WFpvBJ,qCE0vBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aFryBU,8DE2yBV,mBACA,WF7yBE,qFEizBJ,YAEE,eACA,cFpyBkB,2CEwyBpB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBF32BK,+IE82BH,kBAGE,WC53BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,wBCfF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cJhFkB,6BImFlB,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cLeoB,gBKbpB,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cLFoB,wBKMtB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBNPI,uBMUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBNVW,aMYT,0BACA,eACA,cNPoB,iBMSpB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aNtCsB,qBMwCpB,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cN9DoB,+BMkEtB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aN3FsB,aMgGxB,YACE,kBACA,mBNzGW,mCM2GX,qBAGF,YACE,kBACA,0BACA,kBACA,cN3GsB,mBM6GtB,iBAGF,eACE,eACA,cNlHsB,iBMoHtB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cN7HoB,0BMiItB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cN1IoB,qBM4IpB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBNnKW,mCMqKX,cN7JwB,gBM+JxB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cNzMkB,8DM+MpB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eNlPM,CMoPN,cACA,cNpOsB,mBMsOtB,+BANA,iBACA,CNlPM,kCMgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,UNjQM,eMmQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cN1PoB,qCM8PtB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBN/Qa,kBMiRX,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBN5RO,kBM8RP,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBNpSsB,eMsSpB,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WNnUE,mBMqUF,gBACA,uBACA,wBAEA,aNzTkB,0BM6TlB,aACE,gBACA,eACA,eACA,cNjUgB,0IMuUlB,UNvVE,+BM+VJ,aACE,YACA,uDAGF,oBNlVsB,wCMsVtB,eACE,eAKN,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cNxYoB,gBM0YpB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WNhbI,8BMmbJ,aACE,cNpakB,gBMsalB,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aNrgBsB,iCMogBxB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cNxhBsB,4JM2hBtB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WNnkBI,gCMqkBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MCplBJ,+CACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WPhDA,cOkDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aPnDoB,0BOqDlB,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aPpFsB,sBOuFpB,aPrFsB,yBOyFtB,iBACE,kBACA,gBACA,uBAGF,eACE,iBACA,sBAIJ,kBACE,wBAGF,aACE,eACA,eACA,qBAGF,kBACE,cPlHoB,iCOqHpB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WPlKA,gBOoKA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WPxLE,cO0LF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WP9ME,cOgNF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,kDAIJ,oBACE,WACA,OACA,6BAGF,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WPlSI,cOoSJ,WACA,2CAKE,mBACE,eACA,WP5SA,qBO8SA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WP5UI,cO8UJ,WACA,UACA,oBACA,gBACA,mBACA,sBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBPnWY,oLOuWZ,iBACE,4WAGF,oBP1VsB,mBO6VpB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBP3YsB,WAlBlB,eOgaJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBP3aoB,gGO+apB,kBP7bQ,kHOgcN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WPhdI,cOkdJ,WACA,UACA,oBACA,gBACA,wXACA,sBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cPhdkB,oBOkdlB,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,8DACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,8BACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UP9hBF,aOwiBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cPhiBsB,kBOkiBtB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cPxjBY,sBO4jBd,mCACE,+BACA,cP7jBQ,kBOikBV,oBACE,cPpjBoB,qBOsjBpB,wBAEA,UPxkBI,0BO0kBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBPhlBS,WATL,eO4lBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aPjnBsB,qBOmnBpB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aPnoBwB,yBOqoBtB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cPrpBsB,oCOwpBtB,cACE,mBACA,kBACA,4CAGF,aP7pBwB,gBO+pBtB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBPrsBM,YOusBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cPlsBwB,WOosBxB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WPjvBI,qCOmvBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UPzvBI,0BO2vBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cPxxBsB,0BO2xBtB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WPrzBI,kBOuzBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aP/zBc,0SOy0BZ,+CACE,aAIJ,kBACE,sBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gDACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBPn3Bc,gBOq3BZ,2BAEA,kBPv3BY,gBOy3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SC17BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,gBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,WACA,YACA,gBACA,wBAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WR7EA,gBQ+EA,gBACA,uBACA,+BAGF,aACE,eACA,cRtEgB,gBQwEhB,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WR3GI,gBQ6GJ,qBACA,iBACA,qBACA,sBAGF,eRnHM,oBQqHJ,cR5GS,eQ8GT,cACA,kBAGF,cACE,uCAGF,wBAEE,cRhHsB,oBQoHxB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,cACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBRnKa,mCQqKX,cR9JsB,eQgKtB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cR5LwB,sCQ8LxB,sCACA,6DAEA,aRjNc,sCQmNZ,kCACA,qDAGF,aACE,sCACA,kCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cR3OsB,0BQ6OtB,6BAGF,aACE,cRlPoB,4BQsPtB,aRpPwB,qBQsPtB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aRpRY,gBQsRV,0CAGF,aRzRY,wCQ8Rd,eACE,wCAIJ,UACE,0BAIA,aRzRsB,4BQ4RpB,aR3RsB,qBQ6RpB,qGAEA,yBAGE,iCAIJ,URvTI,gBQyTF,wBAIJ,eACE,kBChUJ,kCACE,kBACA,gBACA,mBACA,8BAEA,yBACE,qCAGF,iBAVF,eAWI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBTpBW,6GSuBT,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBT7DwB,WAlBlB,oBSkFN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UT5FI,gFSgGN,kBAGE,qNAKA,kBTxFoB,4ISgGpB,kBT9GQ,qCSqHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAGF,gBACE,iBACA,mFAGF,UACE,qMAGF,eAGE,iCC/JN,u+KACE,uCAEA,u+KACE,0CAIJ,u+KACE,WCTF,gCACE,4CACA,kBAGF,mBACE,sBACA,oBACA,gBACA,kBACA,cAGF,aACE,eACA,iBACA,cXIwB,SWFxB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,aXVsB,eWYpB,SAIJ,wBXd0B,YWgBxB,kBACA,sBACA,WXpCM,eWsCN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,mBACA,WACA,4CAEA,wBAGE,4BACA,sBAGF,eACE,mFAEA,wBXjEQ,gBWqEN,mCAIJ,wBX3DsB,eW8DpB,2BAGF,QACE,wDAGF,mBAGE,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,aX7FW,mBAOW,qGW0FpB,wBAGE,8BAIJ,kBXnFsB,2GWsFpB,wBAGE,0BAIJ,aX3GsB,uBW6GpB,iBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,kBAIJ,YACE,cACA,kBACA,cAGF,oBACE,UACA,cX7HsB,SW+HtB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,qCACA,4BACA,2CACA,oBAGF,mCACE,uBAGF,aACE,6BACA,eACA,qBAGF,aXrKwB,gCWyKxB,QACE,uEAGF,mBAGE,uBAGF,aXvKsB,sFW0KpB,aAGE,qCACA,6BAGF,mCACE,gCAGF,aACE,6BACA,8BAGF,aXtMsB,uCWyMpB,aACE,wBAKN,sBACE,0BACA,yBACA,kBACA,YACA,8BAEA,yBACE,mBAKN,aXhNwB,SWkNtB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,qCACA,4BACA,2CACA,yBAGF,mCACE,4BAGF,aACE,6BACA,eACA,0BAGF,aX7PwB,qCWiQxB,QACE,sFAGF,mBAGE,CAKF,0BADF,iBAUE,CATA,WAGF,WACE,cACA,qBACA,QACA,SAEA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,eAIJ,YACE,iCAGE,mBACA,eAEA,gBACA,wCAEA,aXlTsB,sDWsTtB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBXvUoB,yDW8UxB,aXvVW,mBWyVT,mBXlVoB,oCWoVpB,iBACA,kBACA,eACA,gBACA,6CAEA,aXjWS,gBWmWP,CAII,kRADF,eACE,wCAKN,aXvVoB,gBWyVlB,0BACA,yIAEA,oBAGE,sCAKN,iBACE,MACA,QACA,kDAGF,iBACE,mGAGF,iBAGE,WACA,8BAGF,QACE,wBACA,UACA,qDAEA,WACE,mBACA,UACA,mFAIJ,aAEE,sBACA,WACA,SACA,cX3ZS,gBATL,aWuaJ,oBACA,eACA,gBACA,SACA,UACA,yIAEA,aXhZoB,CW8YpB,sHAEA,aXhZoB,CW8YpB,8HAEA,aXhZoB,CW8YpB,4GAEA,aXhZoB,+FWoZpB,SACE,qCAGF,kFAvBF,cAwBI,sCAIJ,iBACE,+CAGF,gBACE,0BACA,iBACA,mBACA,YACA,qBACA,kEAEA,SACE,qCAGF,8CAZF,sBAaI,gBACA,2DAIJ,iBACE,SACA,kDAGF,qBACE,aACA,kBACA,SACA,WACA,WACA,sCACA,mBX5csB,0BW8ctB,cXtdS,eWwdT,YACA,6FAEA,aACE,wDAIJ,YACE,eACA,kBACA,yPAEA,kBAIE,wGAIJ,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,oCAGF,6BACE,0CAEA,aACE,gBACA,uBACA,mBACA,2CAGF,eACE,0CAGF,aACE,iBACA,gBACA,uBACA,mBACA,8EAIJ,aAEE,iBACA,WACA,YACA,2DAGF,aXlgBsB,wCWsgBtB,aX3hBW,oBW6hBT,eACA,gBXviBI,sEW0iBJ,eACE,uEAGF,YACE,mBACA,YACA,eACA,8DAGF,UACE,cACA,WACA,uEAEA,iFACE,aACA,uBACA,8BACA,UACA,4BACA,oFAEA,aACE,cXljBgB,eWojBhB,gBACA,aACA,oBACA,6QAEA,aAGE,8EAIJ,SACE,0EAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,gFACA,aACA,UACA,4BACA,mFAEA,sBACE,cXllBgB,SWolBhB,UACA,SACA,WACA,oBACA,eACA,gBACA,yFAEA,UX7mBF,8GWinBE,WACE,cXjmBc,CAjBlB,oGWinBE,WACE,cXjmBc,CAjBlB,wGWinBE,WACE,cXjmBc,CAjBlB,+FWinBE,WACE,cXjmBc,iFWsmBlB,SACE,wEAKN,iBACE,sBX/nBE,wBWioBF,sBACA,4BACA,aACA,WACA,gBACA,8CAIJ,YACE,mBACA,0BACA,aACA,8BACA,cACA,qEAEA,YACE,uGAEA,gBACE,qGAGF,YACE,6IAEA,aACE,2IAGF,gBACE,0HAKN,sBAEE,cACA,0EAGF,iBACE,iBACA,sCAIJ,YACE,yBACA,YACA,cACA,4EAEA,eACE,iBACA,oBAKN,cACE,kDACA,eACA,gBACA,cXpqBsB,4CWuqBtB,aXlsBY,kCWusBd,2CACE,WC7sBF,8DDktBE,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,kBAIJ,iBACE,mBACA,mBX7sBsB,aW+sBtB,gBACA,gBACA,cACA,0BAGF,iBACE,gBACA,0BAGF,WACE,iBACA,gCAGF,aXtuBa,cWwuBX,eACA,iBACA,gBACA,mBACA,qBACA,kCAGF,UACE,iBACA,+BAGF,cACE,4CAGF,iBAEE,eACA,iBACA,qBACA,gBACA,gBACA,uBACA,gBACA,WX3wBM,wDW8wBN,SACE,wGAGF,kBACE,sJAEA,oBACE,gEAIJ,UACE,YACA,gBACA,oDAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,gDAGF,kBACE,qBACA,sEAEA,eACE,gDAIJ,aXnyBc,qBWqyBZ,4DAEA,yBACE,oEAEA,aACE,4EAKF,oBACE,sFAEA,yBACE,wDAKN,aXvyBoB,8EW4yBtB,aACE,0GAGF,kBXhzBsB,sHWmzBpB,kBACE,qBACA,8IAGF,QACE,0XAGF,mBAGE,0FAIJ,YACE,wJAEA,aACE,+BAKN,oBACE,gBACA,yCAEA,UACE,YACA,gBACA,iCAGF,kBACE,qBACA,4CAEA,eACE,iCAIJ,aX52BwB,qBW82BtB,uCAEA,yBACE,+CAIA,oBACE,oDAEA,yBACE,gDAKN,aACE,6CAKN,gBACE,oCAGF,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,qBACA,oFAEA,yBAEE,gCAIJ,oBACE,kBACA,uBACA,SACA,cXr6BW,gBWu6BX,eACA,cACA,yBACA,iBACA,eACA,sBACA,4BAGF,aX35BwB,SW65BtB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,kBAIA,SACE,mBACA,wCAEA,kBACE,8CAEA,sBACE,iFAIJ,kBAEE,SAMJ,yBACA,kBACA,gBACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QARF,kBAWI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,aXj/BoB,qCWq/BpB,aX5/BS,6BWggCT,aXz/BoB,CAPX,kEWwgCT,aXxgCS,kCW2gCP,aXlgCoB,gEWsgCpB,UXxhCE,mBAgBgB,sEW4gChB,kBACE,+CAQR,sBACE,qEAEA,aACE,qDAKN,aXhhCwB,YWmhCtB,eACA,uBAGF,aXvhCwB,qCW2hCxB,aACE,eACA,mBACA,eAGF,cACE,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,gBACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,cX5kCsB,CW8kCtB,iBACA,eACA,kBACA,+CAEA,aXnlCsB,uBWulCtB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cXhnCkB,4BWsnCxB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,kEAGF,gBACE,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cX9qCsB,eWgrCtB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,2BAGF,aX/tCa,eWiuCX,6BAEA,aX9sCsB,SWmtCxB,YACE,gCACA,8BAEA,aACE,cACA,WXvvCI,qBWyvCJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,UAGF,YACE,gCACA,kBAEA,SACE,gBACA,2CAEA,aACE,iCAIJ,aACE,cACA,cXxwCoB,gBW0wCpB,qBACA,eACA,mBAIJ,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,iBE3yCE,iCACA,wBACA,4BACA,kBF0yCA,yBAEA,oBACE,sBACA,iBACA,4BAGF,iBErzCA,iCACA,wBACA,4BACA,kBFozCE,gBACA,kBACA,gCAEA,UACE,kBACA,sBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WXr0CE,6BWu0CF,gBACA,eACA,oBAKN,cACE,0BAGF,UACuB,sCE30CrB,+BF60CA,iBEt1CA,iCACA,wBACA,4BACA,WFq1CuB,sCE/0CvB,kCFk1CA,iBE31CA,iCACA,wBACA,4BACA,WF01CuB,sCEp1CvB,kBFs1CE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,sBAGF,YACE,6BACA,cX/0CsB,6BWk1CtB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,+BAGF,YACE,4CAEA,qBACE,oFAIA,QACE,WACA,uDAGF,WACE,iBACA,gBACA,WACA,4BAKN,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,+BACA,eACA,oCACA,kCAEA,+BACE,gCAGF,aACE,yBACA,eACA,cX56CoB,kCWg7CtB,aACE,eACA,gBACA,WXn8CI,CWw8CA,2NADF,eACE,oBAMR,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,6JAGF,oBAME,4DAKA,UXx+CM,kBW8+CN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,aX1/C0B,cW4/CxB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WX1hDI,kCW+hDR,UACE,kBACA,iBAGF,WACE,UACA,kBACA,SACA,WACA,iBAGF,UACE,kBACA,OACA,MACA,YACA,eACA,CXphDsB,gHW8hDtB,aX9hDsB,wBWkiDtB,UACE,wCAGF,kBXtiDsB,cArBX,8CW+jDT,kBACE,qBACA,wBAKN,oBACE,gBACA,eACA,cXlkDsB,eWokDtB,iBACA,kBACA,4BAEA,aXtkDwB,6BW0kDxB,cACE,gBACA,uBACA,uCAIJ,UACE,kBACA,CXjmDU,mEWwmDZ,aXxmDY,uBW4mDZ,aX7mDc,4DWmnDV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UXvoDM,0BWyoDJ,8BAIJ,WACE,eAGF,aACE,eACA,gBACA,uBACA,mBACA,qBAGF,eACE,wBAGF,cACE,+DAKA,yBACE,eAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cX9nD4B,eAEC,0DW+nD3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cXtpD4B,eAEC,WWupD3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,iBAIJ,YACE,aACA,mBACA,cACA,eACA,cXvsDsB,wBW0sDtB,aXzsDwB,mBW6sDxB,aACE,4BAGF,oBACE,0CAGF,iBACE,6DAEA,iBACE,oBACA,qCACA,UACA,4EAGF,mBACE,gCACA,UACA,0BAKN,aACE,gBACA,iBACA,gBACA,gBACA,kCAGF,aACE,gBACA,gBACA,uBACA,+BAGF,aACE,qBACA,WAGF,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBX1wD0B,cW4wDxB,kBACA,uCACA,aACA,mBAEA,eACE,qBAGF,yBACE,oBAGF,yBACE,uBAGF,sBACE,sBAGF,sBACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BX/yDsB,2BWmzDxB,WACE,iBACA,uBACA,yBXtzDsB,8BW0zDxB,QACE,iBACA,uBACA,4BX7zDsB,6BWi0DxB,SACE,gBACA,2BACA,2BXp0DsB,wBW00DxB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBXh1DsB,cARb,gBW21DT,uBACA,mBACA,yFAEA,kBXt1DsB,cADA,UW41DpB,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBX12DsB,cW42DtB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBXn4DsB,cARb,gBW84DT,uBACA,mBACA,oDAEA,SACE,oDAGF,kBX74DsB,cADA,iBWq5D1B,qBACE,eAGF,YACE,cACA,mBACA,2BACA,gBACA,kBACA,4BAEA,iBACE,uBAGF,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,gKAMJ,WAIE,mCAIJ,YACE,mBACA,uBACA,YACA,SAGF,WACE,kBACA,sBACA,aACA,sBACA,qBAEA,kBXlgEW,8BWogET,+BACA,KAIJ,aACE,CACA,qBACA,WACA,YACA,aAJA,YAYA,CARA,QAGF,WACE,sBACA,CACA,qBACA,kBACA,cAGF,aACE,cACA,sBACA,cXrhEsB,qBWuhEtB,kBACA,eACA,oCACA,iBAGF,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WX7lEM,qBW+lEN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCAMA,mEAHF,kBAII,4BACA,yBAIJ,+BACE,cXpmEsB,sBWwmExB,eACE,aACA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,YACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,2BACE,gBACA,uCAEA,SACE,SACA,wCAGF,eACE,wCAGF,gBACE,iBACA,qDAGF,UACE,gLAGF,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,iBACA,6DAGF,UACE,CAIA,yFAGF,eACE,8DAGF,gBACE,kBACA,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WXpyEM,kBWsyEN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,4DAGF,kBAGE,yBAGF,aACE,iBAGF,eAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,mBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBX71EsB,yBW+1EtB,gBACA,kBACA,eACA,gBACA,iBACA,WXt3EI,mDW23ER,oBACE,gBAGF,WACE,gBACA,aACA,sBACA,yBACA,kBACA,gCAEA,gBACE,oBACA,cACA,gBACA,6BAGF,sBACE,8BAGF,MACE,kBACA,aACA,sBACA,iBACA,oBACA,oBACA,mDAGF,eACE,sBX75EI,0BW+5EJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,gBAMF,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAiBA,CAhBA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,kBACA,uBAEA,kBXp9EW,0BWy9Eb,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,UACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,sCAGF,yBAjBF,aAkBI,iBAIJ,kBACE,eACA,gBACA,iBAGF,aACE,eACA,mBACA,mBACA,aACA,mBACA,kBACA,mBAEA,iCACE,yBAEA,kBACE,mCACA,aAKN,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,sBAIJ,qBACE,WACA,mBACA,cXliFwB,eWoiFxB,cACA,eACA,oBACA,SACA,iBACA,aACA,SACA,UACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cXvjFwB,eWyjFxB,mBACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,eAGF,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,0CACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBXroFW,qCWuoFX,sEAGF,wBACE,4CAGF,wBXroF0B,+EWyoF1B,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,yBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBXjsFwB,cWqsF1B,kBACE,WXxtFM,cW0tFN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cXztFsB,kGW4tFtB,sBAGE,WXhvFE,kCWovFJ,aXluFsB,oBWwuF1B,oBACE,iBACA,qBAGF,oBACE,kBACA,CACA,gBACA,CX1vFW,eW6vFX,iBACA,wCANA,cACA,CACA,eACA,mBAaA,CAVA,mBX9vFW,aAqBW,iBW+uFtB,CAEA,wBACA,eACA,yDAGF,kBX3wFa,cWixFb,aACE,kBAGF,aXhwFwB,cWkwFtB,8BACA,+BACA,4EAEA,0BAGE,CAHF,uBAGE,CAHF,kBAGE,kDAMA,sBACA,YACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,cACE,0DAEA,aX9xFkB,0BWgyFhB,sDAIJ,oBACE,cXnzFkB,sMWszFlB,yBAGE,oDAKN,aXhzFsB,0BWszFtB,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cX50FkB,aW80FlB,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,aXv2FkB,qBW82FxB,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,aACE,sBACA,WACA,SACA,cX94FW,gBATL,aW05FN,oBACA,eACA,gBACA,SACA,UACA,kBACA,qBAEA,SACE,qCAGF,cAnBF,cAoBI,oDAIJ,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAKJ,uBACE,2BACA,gDAGF,aXh6FwB,6BWk6FtB,uDAGF,aXj7F0B,cWq7F1B,YACE,eACA,yBACA,kBACA,cX76FsB,gBW+6FtB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cXt9FoB,uBWw9FpB,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UXh/FE,yBWu/FJ,cACE,kBACA,YACA,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACA,YACA,SACA,2BAIA,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cX1gGsB,gBW4gGtB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,aXxhGwB,oBW4hGxB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,YAGF,aACE,cX3lGsB,6BW6lGtB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,yBAGF,iBACE,eACA,gBACA,cXrnGsB,mBArBX,eW6oGX,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,cXnpGkB,qCWupGpB,cACE,gBACA,yBAKN,iBACE,cACA,UACA,gCAEA,uCACE,uCAEA,aACE,WACA,kBACA,aACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,oFACA,wCAIJ,SACE,kBACA,gBAIJ,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,2BACA,4BACA,uBAEA,QACE,SACA,yBACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,aXnuGwB,4CWwuGtB,aXxuGsB,0CW0uGpB,4CAIJ,SAEE,yBAIJ,WACE,aACA,uBAGF,kBACE,iCAGF,iBACE,wBAGF,kBACE,SACA,cXrwGsB,eWuwGtB,eACA,eACA,8BAEA,aACE,CAKA,kEAEA,UXnyGI,mBWqyGF,6BAKN,eACE,gBACA,gBACA,cX7xGsB,0DW+xGtB,UACA,UACA,kBACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,mCAIJ,kBACE,aACA,mCAIA,aX5zGsB,0BW8zGpB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,sBAGF,oBACE,iBACA,oBAGF,aXh1GwB,eWk1GtB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,gCAGF,kBACE,gBXz+GM,WACA,eW2+GN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,eXv/GQ,cAiBgB,SWy+GtB,UACA,WACA,YACA,kBACA,wBACA,CADA,oBACA,CADA,eACA,iEAEA,SAGE,cACA,yBAIJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,iBAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,aACE,SACA,QACA,WACA,YACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,0BACA,kBACA,iBACA,WXtjHE,gBWwjHF,eACA,+LAMA,yBACE,mEAKF,yBACE,6BAMR,kBACE,iBAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,aXplHwB,eWslHtB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SEtmHF,sBACA,WACA,SACA,gBACA,oBACA,mBbRW,cAOW,eaItB,SACA,+EFgmHI,aACE,CEjmHN,qEFgmHI,aACE,CEjmHN,yEFgmHI,aACE,CEjmHN,gEFgmHI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,aX9mHoB,iBWgnHlB,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,aXrpHoB,0HW0pHpB,cAEE,gBACA,cX/oHkB,kZWkpHlB,aAGE,gEAIJ,wBACE,iDAGF,eX3rHI,kBa0BN,CAEA,eACA,cbbsB,uCaetB,UF8pHI,mBX5qHoB,oDagBxB,wBACE,cblBoB,eaoBpB,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,cbzCS,sDWwrHT,WACE,mDAGF,aX5rHS,kBW8rHP,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UXxtHQ,kBW0tHN,cACA,mBACA,sBX7tHM,yBW+tHN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,iBAIJ,aACE,iBACA,wBAGF,aX/tHwB,qBWiuHtB,mBACA,gBACA,sBACA,6EAGF,aXztHwB,mBArBX,kBWmvHX,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBAEA,4EAfF,cAgBI,6FAGF,eACE,mFAGF,aX5vHwB,qBW8vHtB,qGAEA,yBACE,uCAKN,kBACE,aACA,eAGF,qBACE,8BAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA1BF,qBAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,mCAIJ,8BACE,2DACA,CADA,kDACA,iCAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,EA/BF,wBAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,kCAIJ,yBACE,8EACA,CADA,qEACA,8BAGF,eXt2HQ,kBWw2HN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBXl4HM,kBWo4HN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,+BAGE,2DAIJ,WACE,wBAKF,2BACE,cAIJ,kBACE,0BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBX37HW,kCW67HX,uBAGF,MACE,aACA,mBACA,uBACA,cX57HwB,eW87HxB,gBACA,0BACA,kBACA,kBAGF,YACE,cXx7HsB,gBW07HtB,aACA,sBAEA,cACE,kBACA,uBAGF,cACE,yBACA,gBACA,cACA,0BAIJ,aACE,4BAGF,UACE,WACA,kBACA,mBXj9HsB,kBWm9HtB,eACA,2BAGF,iBACE,OACA,MACA,WACA,mBXv+HwB,kBWy+HxB,eAGF,aACE,wBACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,SACA,WACA,YACA,CAQE,6GAKN,SACE,oBACA,CADA,WACA,6BAGF,iBACE,gBXliIM,uCWoiIN,kBACA,iBACA,gBACA,iCAEA,yBACE,oCAGF,sBACE,2BAIJ,aXziIa,aW2iIX,eACA,aACA,kEAEA,kBXtiIwB,WAlBlB,UW4jIJ,CX5jII,4RWikIF,UXjkIE,wCWukIN,kBACE,iCAIJ,YACE,mBACA,uBACA,kBACA,oCAGF,aACE,cXtjIsB,2CWyjItB,eACE,cACA,cXhlIS,CWqlIL,wQADF,eACE,mDAON,eXrmIM,0BWumIJ,qCACA,gEAEA,eACE,0DAGF,kBX5lIsB,uEW+lIpB,UXjnIE,uDWunIN,yBACE,sDAGF,aACE,sCACA,SAIJ,iBACE,gBAGF,SEznIE,sBACA,WACA,SACA,gBACA,oBACA,mBbRW,cAOW,eaItB,SACA,cFmnIA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,sCACA,eACA,WACA,YACA,cXzqIsB,eW2qItB,oBACA,0BAEA,mBACE,WACA,0BAIJ,uBACE,iCAEA,mBACE,uBACA,gCAIJ,QACE,uBACA,cXlrIoB,eWorIpB,uCAEA,uBACE,sCAGF,aACE,yBAKN,aXhsIwB,mBWksItB,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,cXxtIoB,iCW2tIpB,oBACE,iBACA,8FAIJ,eAEE,0BAIJ,aACE,aACA,cXtvIwB,qBWwvIxB,+FAEA,aAGE,0BACA,uBAIJ,YACE,cXpwIsB,kBWswItB,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,0BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,cXjyI0B,eAEC,CW2yI7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,yBACE,sBACA,SACA,WX73IM,eW+3IN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,cX15IsB,mFW65ItB,yBAGE,wBAKN,oBACE,sBAGF,qBX17IQ,YW47IN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wBXn7I0B,qBWu7I1B,iBACE,UACA,QACA,YACA,6CAGF,kBX/7I0B,cARb,kBW48IX,gBACA,aACA,sBACA,oBAGF,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,mDAGF,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,aXz+IsB,SW4+IpB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,qiBAGF,aXlhJS,qwDWshJP,aAGE,sBAMR,sBACE,eAGF,iBACE,eACA,mBACA,sBAEA,eACE,cXziJS,kBW2iJT,yBACA,eACA,qBAGF,kBXhjJW,cAQa,gBW2iJtB,aACA,kBACA,kBAIJ,oBACE,eACA,gBACA,iBACA,wFAGF,kBAME,cXtkJW,kBWwkJX,gBACA,eACA,YACA,kBACA,sBACA,4NAEA,aACE,eACA,mBACA,wLAGF,WACE,UACA,kBACA,SACA,WACA,kRAGF,aACE,wBAKF,eX5mJM,CAiBkB,gBW8lJtB,oBACA,iEXhnJI,2BAiBkB,yBWumJ1B,iBACE,aACA,iCAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,2GAIJ,YAIE,8BACA,mBXtnJwB,aWwnJxB,iBACA,2HAEA,aACE,iBACA,cXhnJoB,mBWknJpB,2IAGF,aACE,6BAIJ,cACE,2BAGF,WACE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,aX1rJwB,iLW8rJxB,aXvsJW,qCW4sJX,oDAjBF,eAkBI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,aXtuJS,gBATL,aWkvJJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,eXlwJI,yBWowJF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,aXzwJO,oBW2wJL,eACA,gBXrxJA,+CW0xJJ,YACE,8BACA,mBACA,4CAIJ,aACE,cXzxJS,eW2xJT,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,aXpyJS,eWsyJP,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eACE,eACA,wBAEA,eACE,iBACA,2CAGF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,aXh1JO,aWk1JL,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBXx1JgB,WAlBlB,uDWi3JA,iBACE,oMAUR,aACE,iIAIJ,4BAIE,cXv2JsB,eWy2JtB,gBACA,6cAEA,aAGE,6BACA,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,aX56JS,CW86JP,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,wBXp7J0B,WWs7JxB,kBACA,MACA,OACA,aACA,6BAGF,aACE,kBACA,WXj9JM,0BWm9JN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,wDAKE,SACE,uBAKN,eACE,6BAEA,UACE,kBAIJ,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cX59JoB,iBW89JpB,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cX1/JkB,gBW4/JlB,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,aX7gKoB,gBWqhKtB,cACA,CACA,iBACA,CACA,UACA,qCANF,qBACE,CACA,eACA,CACA,iBAYA,CAVA,qBAGF,QACE,CACA,aACA,WACA,CACA,iBAEA,qEAGE,cACE,MACA,gCAKN,cACE,cACA,qBACA,cX9jKwB,kBWgkKxB,UACA,mEAEA,WAEE,WACA,CAIA,2DADF,mBACE,CADF,8BACE,CADF,gBX3lKM,CW4lKJ,wBAIJ,UACE,YACA,CACA,iBACA,MACA,OACA,UACA,gBXvmKM,iCW0mKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,qCAGF,cACE,YACA,oBACA,CADA,8BACA,CADA,gBACA,kBACA,QACA,2BACA,WACA,UACA,sCAGF,0BACE,2BACA,gBACA,kBACA,qKAMA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,qCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gBXvsKM,eWysKN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,qBAGF,eACE,gBACA,UACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gBXpxKI,cAiBgB,gBWswKpB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,0DAEA,aACE,wBAIJ,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,UXn1KE,+EW21KN,cAGE,gBACA,6BAGF,UXl2KM,iBWo2KJ,yBAGF,oBACE,aACA,mDAGF,UX52KM,uBWi3KN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,WXj6KE,sFWo6KF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,kBAON,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,gBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WX3jLF,gBW6jLE,gBACA,uBACA,0CAGF,aACE,eACA,cXpjLc,gBWsjLd,gBACA,uBACA,yBAKN,kBXpkLS,aWskLP,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,6BAOV,YACE,eACA,gBACA,wBAGF,QACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cX5oLoB,eW8oLpB,eACA,gBACA,kBACA,qBACA,kBACA,WACA,mBACA,yJAEA,aXtpLsB,qWWypLpB,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,cAOV,kBX1sLa,sBW6sLX,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,2BAKN,eACE,gBAGF,eXxwLQ,kBa0BN,CACA,sBACA,gBACA,cbbsB,uCaetB,mBAEA,wBACE,cblBoB,eaoBpB,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,cbzCS,UWmwLb,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cXtwLsB,gBWwwLtB,gBAEA,aXzwLsB,0BW2wLpB,sBAEA,oBACE,4BAMR,GACE,cACA,eACA,WATM,mBAMR,GACE,cACA,eACA,qEAGF,kBAIE,sBAEE,8BACA,iBAGF,0BACE,kCACA,+BAIA,qDACE,uEACA,+CAGF,sBACE,8BACA,6DAIA,6BACE,6CACA,4EAIF,6BACE,6CACA,+CAOJ,gBAEE,+BAGF,gBACE,6CAEA,0BACE,wDAGF,eACE,6DAGF,iBACE,iBACA,2EAIA,mBACE,UACA,gCACA,WACA,0FAGF,mBACE,UACA,oCACA,eAOV,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBX94LO,WATL,eW05LF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,sBAMJ,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cXv6LoB,CW06LpB,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,qBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,uCAEA,SACE,kCAKN,aACE,cACA,mBAIJ,cACE,kBACA,MACA,OACA,WACA,YACA,0BACA,cAGF,kBX5/La,sBW8/LX,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kBXljMa,sBWojMX,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,cAIJ,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBX5mMM,yDW+mMN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBXvnMI,uBW2nMN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UXxpMI,eW0pMF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,4BAKN,aXlqMwB,eWoqMtB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WXtyMA,gBWwyMA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cX/xMc,gBWiyMd,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,WXn0ME,gDWu0MJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,aXl1MU,yBWw1Md,cACE,gCAEA,cACE,cX70MkB,eW+0MlB,kCAEA,oBACE,cXl1MgB,qBWo1MhB,iBACA,gBACA,yCAEA,eACE,WXz2MF,iBWk3MN,aXp1MsB,mBWs1MpB,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cX92MkB,gBWg3MlB,uBACA,mBACA,4BAEA,eACE,uBAGF,aXt4MkB,qBWw4MhB,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cXh6MoB,0BWo6MtB,aACE,WACA,2CAEA,oCACE,yBACA,0CAGF,wBACE,eAMR,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,eACA,uBAGF,oBACE,mBXv8MsB,kBWy8MtB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cX/9MkB,kBWi+MlB,+BAGF,aXp+MoB,eWs+MlB,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UX9/ME,qBWggNA,oHAEA,yBAGE,0BAKN,qBACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UX1hNI,gBWgiNR,kBACE,eACA,aACA,qBACA,0BAEA,WACE,cACA,qCAEA,yBAJF,YAKI,4BAIJ,wBACE,cACA,kBACA,qCAEA,0BALF,UAMI,uBAIJ,qBACE,WACA,aACA,kBACA,eACA,iBACA,qBACA,gBACA,gBACA,gBACA,aACA,sBACA,6BAEA,aACE,gBACA,mBACA,mBACA,8BAGF,iBACE,SACA,WACA,cACA,mBXhkNoB,kBWkkNpB,cACA,eACA,4BAIJ,YACE,cX3kNoB,kBW6kNpB,WACA,QACA,mDAIJ,YACE,oDAGF,UACE,gBAGF,YACE,eACA,mBACA,gBACA,iBACA,wBACA,sBAEA,aACE,mBACA,SACA,kBACA,WACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,cACA,aACA,mBACA,2BACA,2CACA,6BAEA,aACE,aACA,WACA,YACA,iCAEA,aACE,SACA,WACA,YACA,eACA,gBACA,sBACA,sBACA,CADA,gCACA,CADA,kBACA,6BAIJ,aACE,cACA,eACA,gBACA,kBACA,gBACA,cXzoNkB,mFW6oNpB,kBAGE,4BACA,2CACA,wGAEA,aACE,6BAIJ,0BACE,2CACA,yBACA,yDAEA,aACE,uCAKN,UACE,oCAGF,WACE,8BAGF,aX5qNsB,SW8qNpB,eACA,WACA,cACA,cACA,YACA,aACA,mBACA,WACA,2BACA,2CACA,2GAEA,SAGE,cACA,4BACA,2CACA,qCAKF,SACE,OGxtNN,eACE,eACA,UAEA,kBACE,kBACA,cAGF,iBACE,cACA,mBACA,WACA,aACA,sBAEA,kBdIsB,ecCxB,iBACE,aACA,cACA,iBACA,eACA,gBACA,qBAEA,oBACE,qBACA,yBACA,4BACA,oEAGF,YAEE,kCAGF,aACE,gCAGF,aACE,sBACA,WACA,eACA,cdtCO,UcwCP,oBACA,gBdlDE,yBcoDF,kBACA,iBACA,sCAEA,oBdtCoB,0Bc2CtB,cACE,wBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBd3FY,8EcgGZ,oBAGE,iBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,cACA,cAGF,aACE,qBACA,oBAEA,cACE,eAIJ,eACE,mBACA,cdvGoB,ac2GtB,cACE,uBACA,UACA,SACA,SACA,cdhHoB,0BckHpB,kBACA,mBAEA,oBACE,sCAGF,mCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,4BACE,gCAEA,YACE,2CAGF,4BACE,aACA,aACA,mBACA,mGAEA,YAEE,+GAEA,oBdpKoB,sDc0KxB,cACE,gBACA,iBACA,YACA,oBACA,cdnKoB,sCcsKpB,gCAGF,YACE,mBACA,8CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,cd5MS,qBc8MT,WACA,UACA,oBACA,qXACA,yBACA,kBACA,CACA,yBACA,mDAGF,aACE,cAIJ,adzMwB,qBc4MtB,+BACE,6BAEA,+BACE,eChPN,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,cCtBJ,cACE,qBACA,chBSW,2BgBNX,qBAEE,iBACA,+BAGF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mBhBHsB,4BgBOxB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,chBLsB,cgBOtB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,ahBpC0B,mCgBuCxB,aACE,oDAGF,WACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBhBrDwB,uBgB0DxB,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gBhB5FM,sBgB8FN,sGAEA,+BAEE,oBAKF,2BACA,gBhBxGM,0BgB2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,gCACA,chBzGS,yBgB2GT,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,sCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gBhBpKI,mBgByKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,chBvKsB,mDgB0KtB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,YCrMF,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,iDACE,eACA,gBACA,gBACA,qBACA,cjBJsB,oBiBOtB,ajBLwB,0BiBOtB,6EAEA,oBAGE,wCAIJ,ajBlBsB,oBiBuBtB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,cjBhCsB,qBiBoCxB,iBACE,cjBrCsB,uBiByCxB,eACE,mBACA,kBACA,kBACA,yHAGF,4CAME,mBACA,oBACA,gBACA,cjBzDsB,qBiB6DxB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,cjBrIkB,iCiByIpB,uBACE,gBACA,gBACA,cjB9HkB,qDiBkIpB,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,kDACA,eACA,iBACA,WjBpNI,iBiBsNJ,kBACA,qEAEA,aAEE,6CAIA,ajB9MoB,oCiBmNtB,4CACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,4CACE,eACA,iBACA,gBACA,cjB/OkB,mBiBiPlB,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAEA,UACE,YACA,CACA,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iCAIJ,cACE,mCAEA,aACE,WjBzSA,qBiB2SA,uDAGE,yBACE,2CAKN,aACE,cjBrSgB,kCiB6StB,iDAEE,CACA,eACA,eACA,iBACA,mBACA,cjBpToB,sCiBuTpB,ajBrTsB,0BiBuTpB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,4CACE,eACA,iBACA,gBACA,mBACA,cjB7UsB,wBiBgVtB,iDACE,cACA,eACA,gBACA,cACA,kBAIJ,4CACE,eACA,iBACA,gBACA,mBACA,cjB9VsB,kBiBmWtB,cjBnWsB,mCiBkWxB,4CACE,CACA,gBACA,gBACA,mBACA,cjBvWsB,kBiB4WtB,cjB5WsB,kBiBqXtB,cjBrXsB,mCiBoXxB,4CACE,CACA,gBACA,gBACA,mBACA,cjBzXsB,kBiB8XtB,cjB9XsB,mCiBsYxB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,2CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBjB1bW,kBiB4bT,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAGF,UACE,YACA,0BACA,mDAGF,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA7DF,iBA8DI,mFAIJ,qBAGE,mBjBnjBS,kBiBqjBT,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,ajB3kBsB,qCiB+kBtB,eACE,WjBjmBE,gBiBmmBF,2CAEA,ajBrlBkB,gDiBwlBhB,ajBvlBkB,+CiB6lBtB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SjBvrBI,YiByrBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,cjBjsBkB,6BiBqsBpB,eACE,iBACA,+BAGF,kBjBjtBS,aiBmtBP,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,4CACE,eACA,gBACA,cACA,qCAGF,cACE,cjBhvBgB,uFiBsvBtB,eACE,cASA,CjBhwBoB,2CiB6vBpB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,cjB71BsB,qBiB+1BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,cjBv1BoB,SkBhCxB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBlBhBW,UkBqBX,alBZwB,0BkBctB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBlBzDS,6BkB2DP,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+CACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,clB5FsB,gBkB8FtB,0DAEA,UlBhHM,wDkBoHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBlBvJS,sBkByJT,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBlBtKS,gCkByKT,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBlB9LS,uCkBiMP,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,clB/NgB,gBkBiOhB,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,uCAEA,iBACE,sCAGF,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBC7RN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBnBPO,YmBSP,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SnBxCA,YmB0CE,kBACA,YACA,uCAIJ,aACE,cnBjCgB,qBmBmChB,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,cnB3EgB,qBmB6EhB,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UnBzGA,yBmB2GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UnBjIE,yBAkBkB,gBmBkHlB,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,anBnMsB,emBqMpB,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,anB9MsB,emBgNpB,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,cnB1NkB,mBmB4NlB,kBACA,gCACA,4BAGF,cACE,cnBjOoB,iBmBmOpB,gBACA,0CAGF,UnBxPI,gBmB0PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WnBxQE,oBmB0QF,iBACA,gBACA,gBACA,2BAGF,cACE,iBACA,cnBjQoB,mBmBmQpB,kCAEA,UnBtRE,gBmBwRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,2CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BnBjUoB,YmBwU1B,UACE,SACA,cACA,WACA,sDAKA,anBnVsB,0DmBsVpB,anBpVsB,4DmByVxB,anB1Wc,gBmB4WZ,4DAGF,anB9WU,gBmBgXR,0DAGF,anBvVsB,gBmByVpB,0DAGF,anBtXU,gBmBwXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,6CAKN,aACE,mBACA,2BAGF,oBACE,cnBxZkB,qBmB0ZlB,yBACA,eACA,gBACA,gCACA,iCAEA,UnBhbE,gCmBkbA,oCAGF,anBnaoB,gCmBqalB,CAkBJ,gBAIJ,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,cnB7dsB,CmBkelB,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,anB3iBwB,qBmB6iBtB,oBAEA,yBACE,SAKN,aACE,YAGF,gBACE,eACA,mBnBpkBW,gCmBskBX,uBAEA,eACE,oBAGF,YACE,2BACA,mBACA,cnBxkBoB,emB0kBpB,eACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,anBplBsB,sDmBwlBtB,anBrmBwB,qBmBymBtB,gBACA,yDAIJ,oBAIE,cnBlnBwB,iGmBqnBxB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBnB9qBc,yBmBkrBd,yBACE,wBAGF,yBnBnrBU,wBmBwrBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,anBprBoB,uBmB0rBpB,wBACA,qBAGF,anBhrBsB,cmBqrBxB,kBnB1sBa,kBmB4sBX,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,cnBztBkB,yBmB2tBlB,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,anBvvBM,6BmB8vBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,cnB9vBgB,mLmBiwBhB,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,anB/vBgB,iBmBiwBd,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,cnBzxBgB,WmBgyBxB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,anB71BY,8CmBk2Bd,qBACE,aACA,WnBr2BI,cmB02BR,iBACE,qBAGF,wBACE,kBACA,2BAEA,cACE,mBnB12BS,gCmB42BT,kCAEA,cACE,cACA,gBACA,eACA,gBACA,cnB32BoB,qBmB62BpB,mBACA,uHAEA,UnBj4BE,iCmBw4BJ,cACE,cnB32BkB,uCmB+2BpB,YACE,8BACA,mBACA,sCAGF,eACE,sBCt5BN,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WpBrCI,6CoBuCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,cpBjCoB,kBoBmCpB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,apBrDwB,gBoBuDtB,qBACA,UC3EJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,0BAGF,SACE,WACA,0DAGF,iBAEE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,+DACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,kkEC7ZJ,kIACE,CADF,sIACE,qBACA,0D","file":"flavours/vanilla/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#192432 rgba(0,0,0,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#192432;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#1c2938}::-webkit-scrollbar-thumb:active{background:#192432}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(0,0,0,.1)}::-webkit-scrollbar-track:hover{background:#121a24}::-webkit-scrollbar-track:active{background:#121a24}::-webkit-scrollbar-corner{background:transparent}body{font-family:\"mastodon-font-sans-serif\",sans-serif;background:#06090c;font-size:13px;line-height:18px;font-weight:400;color:#fff;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",\"mastodon-font-sans-serif\",sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#121a24}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.player{text-align:center}body.embed{background:#192432;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#0b1016;padding:0}body.error{position:absolute;text-align:center;color:#9baec8;background:#121a24;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog__illustration img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div,.app-holder>noscript{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.app-holder>noscript{height:100vh}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.error-boundary,.app-holder noscript{flex-direction:column;font-size:16px;font-weight:400;line-height:1.7;color:#e25169;text-align:center}.error-boundary>div,.app-holder noscript>div{max-width:500px}.error-boundary p,.app-holder noscript p{margin-bottom:.85em}.error-boundary p:last-child,.app-holder noscript p:last-child{margin-bottom:0}.error-boundary a,.app-holder noscript a{color:#d8a070}.error-boundary a:hover,.error-boundary a:focus,.error-boundary a:active,.app-holder noscript a:hover,.app-holder noscript a:focus,.app-holder noscript a:active{text-decoration:none}.error-boundary__footer,.app-holder noscript__footer{color:#3e5a7c;font-size:13px}.error-boundary__footer a,.app-holder noscript__footer a{color:#3e5a7c}.error-boundary button,.app-holder noscript button{display:inline;border:0;background:transparent;color:#3e5a7c;font:inherit;padding:0;margin:0;line-height:inherit;cursor:pointer;outline:0;transition:color 300ms linear;text-decoration:underline}.error-boundary button:hover,.error-boundary button:focus,.error-boundary button:active,.app-holder noscript button:hover,.app-holder noscript button:focus,.app-holder noscript button:active{text-decoration:none}.error-boundary button.copied,.app-holder noscript button.copied{color:#79bd9a;transition:none}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#fff;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#fff;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px}.account-header .name{flex:1 1 auto;color:#d9e1e8;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#fff}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#26374d}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#9baec8;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#fff}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#2d415a;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#344b68}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#d9e1e8}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#000}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#192432;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #192432;background:#040609}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#192432;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#fff;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#9baec8}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#9baec8;padding:10px;border-right:1px solid #192432;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #d8a070;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#d9e1e8}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#fff;font-family:\"mastodon-font-display\",sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #26374d}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#9baec8}.public-layout .public-account-header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#e1b590}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#fff}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#9baec8}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #202e3f}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #202e3f}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#121a24}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#192432}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#4c6d98}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#4c6d98}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#9baec8}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#4c6d98}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#4c6d98}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#5377a5}.compact-header h1{font-size:24px;line-height:28px;color:#9baec8;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#d9e1e8}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#121a24;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.hero-widget__text a{color:#d9e1e8;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#9baec8}.box-widget{padding:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #3e5a7c;text-align:center;color:#9baec8;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#9baec8;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#d9e1e8;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#9baec8}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#9baec8;margin-bottom:10px}.page-header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#fff;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#9baec8}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#192432}.page-header h1{font-size:24px}}.directory{background:#121a24;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#121a24;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#202e3f}.directory__tag.active>a{background:#d8a070;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#9baec8}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#9baec8}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small,.directory__tag.active h4 .trends__item__current{color:#fff}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#d8a070}.directory__tag .trends__item__current{padding-right:0}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#040609;border:2px solid #121a24}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#9baec8;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #202e3f}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#fff}.accounts-table__count small{display:block;color:#9baec8;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #2d415a}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#9baec8}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#d8a070}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#0b1016;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#fff;border-bottom:1px solid #192432}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #192432}code{font-family:\"mastodon-font-monospace\",monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#fff;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#d8a070;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#9baec8}.simple_form .hint a{color:#d8a070}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#000}.simple_form .hint li{list-style:disc;margin-left:18px}.simple_form ul.hint{margin-bottom:15px}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#9baec8}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#fff;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .input.datetime .label_input select{display:inline-block;width:auto;flex:0}.simple_form .required abbr{text-decoration:none;color:#e87487}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#fff;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#fff;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #3e5a7c;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102;border:1px solid #000;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#a8b9cf}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#e87487}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#000}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#d8a070;background:#040609}.simple_form .input.field_with_errors label{color:#e87487}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#e87487}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#e87487;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#d8a070;color:#fff;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#ddad84}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#d3935c}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#e3566d}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#db2a47}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #000;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#3e5a7c;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(1, 1, 2, 0), #010102)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(18,26,36,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#fff}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#202e3f;color:#9baec8;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#9baec8;text-decoration:none}.flash-message a:hover{color:#fff;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#121a24;color:#fff;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#192432}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#9baec8;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#d8a070;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#e1b590}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#9baec8}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#d9e1e8;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#d9e1e8;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#fff;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#9baec8}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#fff;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:\"mastodon-font-monospace\",monospace}.input-copy{background:#010102;border:1px solid #000;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:\"mastodon-font-monospace\",monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#0b1016;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#0b1016;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#202e3f}.card__img{height:130px;position:relative;background:#000;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#192432;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#040609;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#fff;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#121a24;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#d9e1e8}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#233346}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#9baec8;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#d9e1e8;background-color:rgba(217,225,232,.1);border:1px solid rgba(217,225,232,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#e87487;background-color:rgba(232,116,135,.1);border-color:rgba(232,116,135,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #26374d;border-bottom:1px solid #26374d;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #26374d}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#d9e1e8;background:rgba(4,6,9,.5)}.account__header__fields dd{flex:1 1 auto;color:#9baec8}.account__header__fields a{color:#d8a070;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#9baec8}.pending-account__header a{color:#d9e1e8;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#fff;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}.activity-stream--under-tabs{border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#121a24}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#202e3f}.button.logo-button{flex:0 auto;font-size:14px;background:#d8a070;color:#fff;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#fff}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#e3bb98}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.animated-number{display:inline-flex;flex-direction:column;align-items:stretch;overflow:hidden;position:relative}.link-button{display:block;font-size:15px;line-height:20px;color:#d8a070;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#d8a070;border:10px none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#e3bb98;transition:all 200ms ease-out}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled,.button.disabled{background-color:#9baec8;cursor:default}.button::-moz-focus-inner{border:0}.button::-moz-focus-inner,.button:focus,.button:active{outline:0 !important}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#121a24;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#a8b9cf}.button.button-alternative-2{background:#3e5a7c}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#45648a}.button.button-secondary{color:#9baec8;background:transparent;padding:3px 15px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#a8b9cf;color:#a8b9cf}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.icon-button{display:inline-block;padding:0;color:#3e5a7c;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#4a6b94;background-color:rgba(62,90,124,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(62,90,124,.3)}.icon-button.disabled{color:#283a50;background-color:transparent;cursor:default}.icon-button.active{color:#d8a070}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#3e5a7c}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#324965;background-color:rgba(62,90,124,.15)}.icon-button.inverted:focus{background-color:rgba(62,90,124,.3)}.icon-button.inverted.disabled{color:#4a6b94;background-color:transparent}.icon-button.inverted.active{color:#d8a070}.icon-button.inverted.active.disabled{color:#e6c3a4}.icon-button.overlayed{box-sizing:content-box;background:rgba(0,0,0,.6);color:rgba(255,255,255,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(0,0,0,.9)}.text-icon-button{color:#3e5a7c;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#324965;background-color:rgba(62,90,124,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(62,90,124,.3)}.text-icon-button.disabled{color:#6b8cb5;background-color:transparent;cursor:default}.text-icon-button.active{color:#d8a070}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.compose-form{padding:10px}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#d8a070}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#d8a070;background:#d8a070}.compose-form .compose-form__warning{color:#121a24;margin-bottom:10px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.compose-form .compose-form__warning strong{color:#121a24;font-weight:500}.compose-form .compose-form__warning strong:lang(ja){font-weight:700}.compose-form .compose-form__warning strong:lang(ko){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-CN){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-HK){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-TW){font-weight:700}.compose-form .compose-form__warning a{color:#3e5a7c;font-weight:500;text-decoration:underline}.compose-form .compose-form__warning a:hover,.compose-form .compose-form__warning a:active,.compose-form .compose-form__warning a:focus{text-decoration:none}.compose-form .emoji-picker-dropdown{position:absolute;top:0;right:0}.compose-form .compose-form__autosuggest-wrapper{position:relative}.compose-form .autosuggest-textarea,.compose-form .autosuggest-input,.compose-form .spoiler-input{position:relative;width:100%}.compose-form .spoiler-input{height:0;transform-origin:bottom;opacity:0}.compose-form .spoiler-input.spoiler-input--visible{height:36px;margin-bottom:11px;opacity:1}.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0}.compose-form .autosuggest-textarea__textarea::placeholder,.compose-form .spoiler-input__input::placeholder{color:#3e5a7c}.compose-form .autosuggest-textarea__textarea:focus,.compose-form .spoiler-input__input:focus{outline:0}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{font-size:16px}}.compose-form .spoiler-input__input{border-radius:4px}.compose-form .autosuggest-textarea__textarea{min-height:100px;border-radius:4px 4px 0 0;padding-bottom:0;padding-right:32px;resize:none;scrollbar-color:initial}.compose-form .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.compose-form .autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.compose-form .autosuggest-textarea__suggestions{box-sizing:border-box;display:none;position:absolute;top:100%;width:100%;z-index:99;box-shadow:4px 4px 6px rgba(0,0,0,.4);background:#d9e1e8;border-radius:0 0 4px 4px;color:#121a24;font-size:14px;padding:6px}.compose-form .autosuggest-textarea__suggestions.autosuggest-textarea__suggestions--visible{display:block}.compose-form .autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.compose-form .autosuggest-textarea__suggestions__item:hover,.compose-form .autosuggest-textarea__suggestions__item:focus,.compose-form .autosuggest-textarea__suggestions__item:active,.compose-form .autosuggest-textarea__suggestions__item.selected{background:#b9c8d5}.compose-form .autosuggest-account,.compose-form .autosuggest-emoji,.compose-form .autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.compose-form .autosuggest-hashtag{justify-content:space-between}.compose-form .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-hashtag strong{font-weight:500}.compose-form .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-account-icon,.compose-form .autosuggest-emoji img{display:block;margin-right:8px;width:16px;height:16px}.compose-form .autosuggest-account .display-name__account{color:#3e5a7c}.compose-form .compose-form__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.compose-form .compose-form__modifiers .compose-form__upload-wrapper{overflow:hidden}.compose-form .compose-form__modifiers .compose-form__uploads-wrapper{display:flex;flex-direction:row;padding:5px;flex-wrap:wrap}.compose-form .compose-form__modifiers .compose-form__upload{flex:1 1 0;min-width:40%;margin:5px}.compose-form .compose-form__modifiers .compose-form__upload__actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button{flex:0 1 auto;color:#d9e1e8;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:hover,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:focus,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:active{color:#eff3f5}.compose-form .compose-form__modifiers .compose-form__upload__actions.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-description{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);padding:10px;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload-description textarea{background:transparent;color:#d9e1e8;border:0;padding:0;margin:0;width:100%;font-family:inherit;font-size:14px;font-weight:500}.compose-form .compose-form__modifiers .compose-form__upload-description textarea:focus{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload-description textarea::placeholder{opacity:.75;color:#d9e1e8}.compose-form .compose-form__modifiers .compose-form__upload-description.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-thumbnail{border-radius:4px;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;height:140px;width:100%;overflow:hidden}.compose-form .compose-form__buttons-wrapper{padding:10px;background:#ebebeb;border-radius:0 0 4px 4px;display:flex;justify-content:space-between;flex:0 0 auto}.compose-form .compose-form__buttons-wrapper .compose-form__buttons{display:flex}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__upload-button-icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button{display:none}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button.compose-form__sensitive-button--visible{display:block}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button .compose-form__sensitive-button__icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .icon-button,.compose-form .compose-form__buttons-wrapper .text-icon-button{box-sizing:content-box;padding:0 3px}.compose-form .compose-form__buttons-wrapper .character-counter__wrapper{align-self:center;margin-right:4px}.compose-form .compose-form__publish{display:flex;justify-content:flex-end;min-width:0;flex:0 0 auto}.compose-form .compose-form__publish .compose-form__publish-button-wrapper{overflow:hidden;padding-top:10px}.character-counter{cursor:default;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:600;color:#3e5a7c}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .spoiler-input{transition:height .4s ease,opacity .4s ease}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.reply-indicator{border-radius:4px;margin-bottom:10px;background:#9baec8;padding:10px;min-height:23px;overflow-y:auto;flex:0 2 auto}.reply-indicator__header{margin-bottom:5px;overflow:hidden}.reply-indicator__cancel{float:right;line-height:24px}.reply-indicator__display-name{color:#121a24;display:block;max-width:100%;line-height:24px;overflow:hidden;padding-right:25px;text-decoration:none}.reply-indicator__display-avatar{float:left;margin-right:5px}.status__content--with-action{cursor:pointer}.status__content,.reply-indicator__content{position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:hidden;text-overflow:ellipsis;padding-top:2px;color:#fff}.status__content:focus,.reply-indicator__content:focus{outline:0}.status__content.status__content--with-spoiler,.reply-indicator__content.status__content--with-spoiler{white-space:normal}.status__content.status__content--with-spoiler .status__content__text,.reply-indicator__content.status__content--with-spoiler .status__content__text{white-space:pre-wrap}.status__content .emojione,.reply-indicator__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img,.reply-indicator__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.reply-indicator__content p{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.reply-indicator__content p:last-child{margin-bottom:0}.status__content a,.reply-indicator__content a{color:#d8a070;text-decoration:none}.status__content a:hover,.reply-indicator__content a:hover{text-decoration:underline}.status__content a:hover .fa,.reply-indicator__content a:hover .fa{color:#4a6b94}.status__content a.mention:hover,.reply-indicator__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span,.reply-indicator__content a.mention:hover span{text-decoration:underline}.status__content a .fa,.reply-indicator__content a .fa{color:#3e5a7c}.status__content a.unhandled-link,.reply-indicator__content a.unhandled-link{color:#e1b590}.status__content .status__content__spoiler-link,.reply-indicator__content .status__content__spoiler-link{background:#3e5a7c}.status__content .status__content__spoiler-link:hover,.reply-indicator__content .status__content__spoiler-link:hover{background:#4a6b94;text-decoration:none}.status__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner{border:0}.status__content .status__content__spoiler-link::-moz-focus-inner,.status__content .status__content__spoiler-link:focus,.status__content .status__content__spoiler-link:active,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link:focus,.reply-indicator__content .status__content__spoiler-link:active{outline:0 !important}.status__content .status__content__text,.reply-indicator__content .status__content__text{display:none}.status__content .status__content__text.status__content__text--visible,.reply-indicator__content .status__content__text.status__content__text--visible{display:block}.announcements__item__content{word-wrap:break-word;overflow-y:auto}.announcements__item__content .emojione{width:20px;height:20px;margin:-3px 0 0}.announcements__item__content p{margin-bottom:10px;white-space:pre-wrap}.announcements__item__content p:last-child{margin-bottom:0}.announcements__item__content a{color:#d9e1e8;text-decoration:none}.announcements__item__content a:hover{text-decoration:underline}.announcements__item__content a.mention:hover{text-decoration:none}.announcements__item__content a.mention:hover span{text-decoration:underline}.announcements__item__content a.unhandled-link{color:#e1b590}.status__content.status__content--collapsed{max-height:300px}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#e1b590;border:0;background:transparent;padding:0;padding-top:8px;text-decoration:none}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:transparent;border:0;color:#121a24;font-weight:700;font-size:11px;padding:0 6px;text-transform:uppercase;line-height:20px;cursor:pointer;vertical-align:middle}.status__wrapper--filtered{color:#3e5a7c;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #202e3f}.status__prepend-icon-wrapper{left:-26px;position:absolute}.focusable:focus{outline:0;background:#192432}.focusable:focus .status.status-direct{background:#26374d}.focusable:focus .status.status-direct.muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#202e3f}.status{padding:8px 10px;padding-left:68px;position:relative;min-height:54px;border-bottom:1px solid #202e3f;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:26px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#202e3f;border-bottom-color:#26374d}.status.light .status__relative-time{color:#9baec8}.status.light .status__display-name{color:#121a24}.status.light .display-name{color:#9baec8}.status.light .display-name strong{color:#121a24}.status.light .status__content{color:#121a24}.status.light .status__content a{color:#d8a070}.status.light .status__content a.status__content__spoiler-link{color:#fff;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#b5c3d6}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#547aa9}.status__relative-time,.notification__relative_time{color:#3e5a7c;float:right;font-size:14px}.status__display-name{color:#3e5a7c}.status__info .status__display-name{display:block;max-width:100%;padding-right:25px}.status__info{font-size:15px}.status-check-box{border-bottom:1px solid #d9e1e8;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1;overflow:hidden}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-left:68px;color:#3e5a7c;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#3e5a7c}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#3e5a7c}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#192432;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .status__content .status__content__spoiler-link{line-height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#3e5a7c;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.reply-indicator__content{color:#121a24;font-size:14px}.reply-indicator__content a{color:#3e5a7c}.domain{padding:10px;border-bottom:1px solid #202e3f}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#fff;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}.account{padding:10px;border-bottom:1px solid #202e3f}.account.compact{padding:0;border-bottom:0}.account.compact .account__avatar-wrapper{margin-left:0}.account .account__display-name{flex:1 1 auto;display:block;color:#9baec8;overflow:hidden;text-decoration:none;font-size:14px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;position:relative}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;border-radius:50%;overflow:hidden;position:relative}.account__avatar-composite>div{float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}a .account__avatar{cursor:pointer}.account__avatar-overlay{width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__disclaimer{padding:10px;border-top:1px solid #202e3f;color:#3e5a7c}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-dropdown{padding:10px}.account__action-bar-dropdown .icon-button{vertical-align:middle}.account__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__right{left:6px;right:initial}.account__action-bar-dropdown .dropdown--active::after{bottom:initial;margin-left:11px;margin-top:-7px;right:initial}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-right:1px solid #202e3f;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab.active{border-bottom:4px solid #d8a070}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#9baec8}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#fff}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#fff}.muted .emojione{opacity:.5}.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,a.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#d9e1e8;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#fff}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{height:48px;left:10px;position:absolute;top:10px;width:48px}.status__expand{width:68px;position:absolute;left:0;top:0;height:100%;cursor:pointer}.muted .status__content,.muted .status__content p,.muted .status__content a{color:#3e5a7c}.muted .status__display-name strong{color:#3e5a7c}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#3e5a7c;color:#121a24}.muted a.status__content__spoiler-link:hover{background:#4a6b94;text-decoration:none}.notification__message{margin:0 10px 0 68px;padding:8px 0 0;cursor:default;color:#9baec8;font-size:15px;line-height:22px;position:relative}.notification__message .fa{color:#d8a070}.notification__message>span{display:inline;overflow:hidden;text-overflow:ellipsis}.notification__favourite-icon-wrapper{left:-26px;position:absolute}.notification__favourite-icon-wrapper .star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#fff;text-decoration:underline}.notification__relative_time{float:right}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.navigation-bar{padding:10px;display:flex;align-items:center;flex-shrink:0;cursor:default;color:#9baec8}.navigation-bar strong{color:#d9e1e8}.navigation-bar a{color:inherit}.navigation-bar .permalink{text-decoration:none}.navigation-bar .navigation-bar__actions{position:relative}.navigation-bar .navigation-bar__actions .icon-button.close{position:absolute;pointer-events:none;transform:scale(0, 1) translate(-100%, 0);opacity:0}.navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:auto;transform:scale(1, 1) translate(0, 0);opacity:1}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;line-height:20px;margin-top:-1px;overflow:hidden}.navigation-bar__profile-account{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile-edit{color:inherit;text-decoration:none}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #c0cdd9;margin:5px 7px 6px;height:0}.dropdown-menu{background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);z-index:9999}.dropdown-menu ul{list-style:none}.dropdown-menu.left{transform-origin:100% 50%}.dropdown-menu.top{transform-origin:50% 100%}.dropdown-menu.bottom{transform-origin:50% 0}.dropdown-menu.right{transform-origin:0 50%}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#d9e1e8}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#d9e1e8}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#d8a070;color:#d9e1e8;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#d8a070;color:#d9e1e8}.dropdown__icon{vertical-align:middle}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area.unscrollable{overflow-x:hidden}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#040609;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .drawer,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:350px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#121a24;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.drawer{width:330px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden}.drawer__tab{display:block;flex:1 1 auto;padding:15px 5px 13px;color:#9baec8;text-decoration:none;text-align:center;font-size:16px;border-bottom:2px solid transparent}.column,.drawer{flex:1 1 auto;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#202e3f;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#fff;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #202e3f;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.tabs-bar__link:hover,.tabs-bar__link:focus,.tabs-bar__link:active{background:#2a3c54;border-bottom-color:#2a3c54}}.tabs-bar__link.active{border-bottom:2px solid #d8a070;color:#d8a070}.tabs-bar__link span{margin-left:5px;display:none}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;height:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px 15px 15px 78px;min-height:50px}.columns-area--mobile .status__avatar{left:15px;top:17px}.columns-area--mobile .status__content{padding-top:5px}.columns-area--mobile .status__prepend{margin-left:78px;padding-top:15px}.columns-area--mobile .status__prepend-icon-wrapper{left:-32px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{margin-left:78px;padding-top:15px}.columns-area--mobile .notification__favourite-icon-wrapper{left:-32px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}.columns-area--mobile .notification .account__avatar-wrapper{margin-left:17px;margin-right:15px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#d59864;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#e0b38c}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.getting-started__trends,.search{margin-bottom:10px}.getting-started__panel{margin:10px 0}.column,.drawer{min-width:330px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#d8a070;border:2px solid #202e3f;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#fff}.column-link--transparent .icon-with-badge__badge{border-color:#040609}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .navigation-bar{padding-top:20px;padding-bottom:20px;flex:0 1 48px;min-height:20px}.compose-panel .flex-spacer{background:transparent}.compose-panel .compose-form{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px;padding-bottom:71px;margin-bottom:-71px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #192432;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#283a50;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%;border-radius:2px}.drawer__inner.darker{background:#121a24}.drawer__inner__mastodon{background:#283a50 url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:85%;height:100%;pointer-events:none;user-drag:none;user-select:none}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#283a50;font-size:13px;text-align:left}.drawer__header{flex:0 0 auto;font-size:16px;background:#202e3f;margin-bottom:10px;display:flex;flex-direction:row;border-radius:2px}.drawer__header a{transition:background 100ms ease-in}.drawer__header a:hover{background:#17212e;transition:background 200ms ease-out}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.column-back-button{box-sizing:border-box;width:100%;background:#192432;color:#d8a070;cursor:pointer;flex:0 0 auto;font-size:16px;line-height:inherit;border:0;text-align:unset;padding:15px;margin:0;z-index:3;outline:0}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#192432;border:0;font-family:inherit;color:#d8a070;cursor:pointer;white-space:nowrap;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#121a24;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#010102}.react-toggle--checked .react-toggle-track{background-color:#d8a070}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#e3bb98}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #121a24;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#d8a070}.column-link{background:#202e3f;color:#fff;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#253549}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#d9e1e8}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#fff}.column-link--transparent.active{color:#d8a070}.column-link__icon{display:inline-block;margin-right:5px}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#121a24;padding:4px 8px;margin:-6px 10px}.column-subheading{background:#121a24;color:#3e5a7c;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.getting-started__wrapper,.getting-started,.flex-spacer{background:#121a24}.flex-spacer{flex:1 1 auto}.getting-started{color:#3e5a7c;overflow:auto;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.getting-started__wrapper,.getting-started__panel,.getting-started__footer{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex-grow:0}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#3e5a7c;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#9baec8}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__wrapper,.getting-started__footer{color:#3e5a7c}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#9baec8;padding:10px;font-weight:500;border-bottom:1px solid #202e3f}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#9baec8}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#202e3f;border:1px solid #0b1016}.setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0;border-radius:4px}.setting-text:focus{outline:0}@media screen and (max-width: 600px){.setting-text{font-size:16px}}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#3e5a7c;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#d8a070}.status-card{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;color:#3e5a7c;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#d9e1e8;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}a.status-card{cursor:pointer}a.status-card:hover{background:#202e3f}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#9baec8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#9baec8}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#202e3f;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#192432}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#192432}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.load-more{display:block;color:#3e5a7c;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#151f2b}.load-gap{border-bottom:1px solid #202e3f}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#3e5a7c;background:#121a24;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#3e5a7c}.regeneration-indicator__label span{font-size:15px;font-weight:400}.column-header__wrapper{position:relative;flex:0 0 auto;z-index:1}.column-header__wrapper.active{box-shadow:0 1px 0 rgba(216,160,112,.3)}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;bottom:-13px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(216, 160, 112, 0.23) 0%, rgba(216, 160, 112, 0) 60%)}.column-header__wrapper .announcements{z-index:1;position:relative}.column-header{display:flex;font-size:16px;background:#192432;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden;border-top-left-radius:2px;border-top-right-radius:2px}.column-header>button{margin:0;border:0;padding:15px 0 15px 15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#d8a070}.column-header.active .column-header__icon{color:#d8a070;text-shadow:0 0 10px rgba(216,160,112,.4)}.column-header:focus,.column-header:active{outline:0}.column-header__buttons{height:48px;display:flex}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button{background:#192432;border:0;color:#9baec8;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover{color:#b2c1d5}.column-header__button.active{color:#fff;background:#202e3f}.column-header__button.active:hover{color:#fff;background:#202e3f}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#9baec8;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1;z-index:1;position:relative}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #26374d;margin:10px 0}.column-header__collapsible-inner{background:#202e3f;padding:15px}.column-header__setting-btn:hover{color:#9baec8;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.column-header__icon{display:inline-block;margin-right:5px}.loading-indicator{color:#3e5a7c;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #3e5a7c;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#3e5a7c}29%{background-color:#3e5a7c}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.video-error-cover{align-items:center;background:#000;color:#fff;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#000;color:#9baec8;border:0;padding:0;width:100%;height:100%;border-radius:4px;appearance:none}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{padding:0;color:#b5c3d6}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:700}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:block;left:4px;top:4px;width:auto;height:auto}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(0,0,0,.5);border-radius:8px;padding:8px 12px;color:#fff;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(0,0,0,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(0,0,0,.5)}.modal-container--preloader{background:#202e3f}.account--panel{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#202e3f;padding:15px}.column-settings__section{color:#9baec8;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#a8b9cf}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#192432}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#3e5a7c;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#202e3f}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#26374d;color:#a8b9cf}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#9baec8}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#3e5a7c}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#45648a}.column-settings__hashtags .column-select__indicator-separator{background-color:#202e3f}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#d9e1e8}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#9baec8;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#121a24}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#121a24;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#b9c8d5}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#fff;margin-bottom:4px;display:block;vertical-align:top;background-color:#000;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.setting-toggle{display:block;line-height:24px}.setting-toggle__label{color:#9baec8;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{color:#3e5a7c;background:#121a24;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{contain:strict}}.empty-column-indicator>span,.error-column>span,.follow_requests-unlocked_explanation>span{max-width:400px}.empty-column-indicator a,.error-column a,.follow_requests-unlocked_explanation a{color:#d8a070;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover,.follow_requests-unlocked_explanation a:hover{text-decoration:underline}.follow_requests-unlocked_explanation{background:#0b1016;contain:initial}.error-column{flex-direction:column}@keyframes heartbeat{from{transform:scale(1);animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.no-reduce-motion .pulse-loading{transform-origin:center center;animation:heartbeat 1.5s ease-in-out infinite both}@keyframes shake-bottom{0%,100%{transform:rotate(0deg);transform-origin:50% 100%}10%{transform:rotate(2deg)}20%,40%,60%{transform:rotate(-4deg)}30%,50%,70%{transform:rotate(4deg)}80%{transform:rotate(-2deg)}90%{transform:rotate(2deg)}}.no-reduce-motion .shake-bottom{transform-origin:50% 100%;animation:shake-bottom .8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(217,225,232,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.upload-area{align-items:center;background:rgba(0,0,0,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#121a24;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#d9e1e8;font-size:18px;font-weight:500;border:2px dashed #3e5a7c;border-radius:4px}.upload-progress{padding:10px;color:#3e5a7c;overflow:hidden;display:flex}.upload-progress .fa{font-size:34px;margin-right:10px}.upload-progress span{font-size:12px;text-transform:uppercase;font-weight:500;display:block}.upload-progess__message{flex:1 1 auto}.upload-progress__backdrop{width:100%;height:6px;border-radius:6px;background:#3e5a7c;position:relative;margin-top:5px}.upload-progress__tracker{position:absolute;left:0;top:0;height:6px;background:#d8a070;border-radius:6px}.emoji-button{display:block;padding:5px 5px 2px 2px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.dropdown--active .emoji-button img{opacity:1;filter:none}.privacy-dropdown__dropdown{position:absolute;background:#fff;box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:4px;margin-left:40px;overflow:hidden}.privacy-dropdown__dropdown.top{transform-origin:50% 100%}.privacy-dropdown__dropdown.bottom{transform-origin:50% 0}.privacy-dropdown__option{color:#121a24;padding:10px;cursor:pointer;display:flex}.privacy-dropdown__option:hover,.privacy-dropdown__option.active{background:#d8a070;color:#fff;outline:0}.privacy-dropdown__option:hover .privacy-dropdown__option__content,.privacy-dropdown__option.active .privacy-dropdown__option__content{color:#fff}.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,.privacy-dropdown__option.active .privacy-dropdown__option__content strong{color:#fff}.privacy-dropdown__option.active:hover{background:#dcab80}.privacy-dropdown__option__icon{display:flex;align-items:center;justify-content:center;margin-right:10px}.privacy-dropdown__option__content{flex:1 1 auto;color:#3e5a7c}.privacy-dropdown__option__content strong{font-weight:500;display:block;color:#121a24}.privacy-dropdown__option__content strong:lang(ja){font-weight:700}.privacy-dropdown__option__content strong:lang(ko){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-CN){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-HK){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-TW){font-weight:700}.privacy-dropdown.active .privacy-dropdown__value{background:#fff;border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1)}.privacy-dropdown.active .privacy-dropdown__value .icon-button{transition:none}.privacy-dropdown.active .privacy-dropdown__value.active{background:#d8a070}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#fff}.privacy-dropdown.active.top .privacy-dropdown__value{border-radius:0 0 4px 4px}.privacy-dropdown.active .privacy-dropdown__dropdown{display:block;box-shadow:2px 4px 6px rgba(0,0,0,.1)}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#a8b9cf}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#192432}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:transform,opacity;font-size:18px;width:18px;height:18px;color:#d9e1e8;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(90deg)}.search__icon .fa-search.active{pointer-events:none;transform:rotate(0deg)}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#3e5a7c;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#4a6b94}.search-results__header{color:#3e5a7c;background:#151f2b;padding:15px;font-weight:500;font-size:16px;cursor:default}.search-results__header .fa{display:inline-block;margin-right:5px}.search-results__section{margin-bottom:5px}.search-results__section h5{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#3e5a7c}.search-results__section h5 .fa{display:inline-block;margin-right:5px}.search-results__section .account:last-child,.search-results__section>div:last-child .status{border-bottom:0}.search-results__hashtag{display:block;padding:10px;color:#d9e1e8;text-decoration:none}.search-results__hashtag:hover,.search-results__hashtag:active,.search-results__hashtag:focus{color:#e6ebf0;text-decoration:underline}.search-results__info{padding:20px;color:#9baec8;text-align:center}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(0,0,0,.5);box-sizing:border-box;border:0;color:#fff;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#d9e1e8}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#d8a070}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.onboarding-modal,.error-modal,.embed-modal{background:#d9e1e8;color:#121a24;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#c0cdd9;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#3e5a7c;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#37506f;background-color:#a6b9c9}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#121a24}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#192432}.error-modal__footer{justify-content:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#121a24;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#121a24;color:#d9e1e8;font-weight:500;padding:10px;border-radius:4px}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#f2f5f7;color:#121a24;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:block;max-width:100%;padding-right:25px}.boost-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:28px;left:10px;position:absolute;top:10px;width:48px}.boost-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#f2f5f7}.actions-modal .status{background:#fff;border-bottom-color:#d9e1e8;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#d9e1e8}.boost-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#d9e1e8;padding:10px;line-height:36px}.boost-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#3e5a7c;padding-right:10px}.boost-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header{font-size:15px}.boost-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #d9e1e8}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#d8a070}.report-modal__statuses .status__content,.report-modal__statuses .status__content p,.focal-point-modal__content .status__content,.focal-point-modal__content .status__content p{color:#121a24}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #d9e1e8;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #d9e1e8;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #c0cdd9}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #d9e1e8;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#121a24;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#121a24;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#121a24;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#d8a070;color:#fff}.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#3e5a7c;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#37506f;background-color:transparent}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#121a24;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.loading-bar{background-color:#d8a070;height:3px;position:absolute;top:0;left:0;z-index:9999}.media-gallery__gifv__label{display:block;position:absolute;color:#fff;background:rgba(0,0,0,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{margin-top:32px}.media-gallery__audio audio{width:100%}.attachment-list{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#3e5a7c;padding:8px 18px;cursor:default;border-right:1px solid #202e3f;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#3e5a7c;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#3e5a7c}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%}.media-gallery__item{border:0;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#d9e1e8;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%}.media-gallery__item-thumbnail img{object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#000}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;object-fit:cover;position:relative;top:50%;transform:translateY(-50%);width:100%;z-index:1}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#040609;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #192432;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(225,181,144,.5)}.audio-player__wave-placeholder{background-color:#2d415a}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#040609;border-top:1px solid #192432;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.video-player video{max-width:100vw;max-height:80vh;z-index:1}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#9baec8;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#b2c1d5}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#e1b590}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#e1b590;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#e1b590}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#e1b590;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#000;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#192432;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#040609;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#121a24;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #202e3f;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:0;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#0b1016;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#9baec8;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative;width:100%;white-space:nowrap}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#d9e1e8}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #202e3f}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #121a24}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#0f151d;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #06090c}.filter-form{background:#121a24}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#e1b590;background:#e1b590}::-webkit-scrollbar-thumb{border-radius:0}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#9baec8;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#121a24}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#d9e1e8;max-width:400px}noscript div a{color:#d8a070;text-decoration:underline}noscript div a:hover{text-decoration:none}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}@media screen and (max-width: 630px)and (max-height: 400px){.tabs-bar,.search{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar{will-change:padding-bottom;transition:padding-bottom 400ms 100ms}.navigation-bar>a:first-child{will-change:margin-top,margin-left,margin-right,width;transition:margin-top 400ms 100ms,margin-left 400ms 500ms,margin-right 400ms 500ms}.navigation-bar>.navigation-bar__profile-edit{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar .navigation-bar__actions>.icon-button.close{will-change:opacity transform;transition:opacity 200ms 100ms,transform 400ms 100ms}.navigation-bar .navigation-bar__actions>.compose__action-bar .icon-button{will-change:opacity transform;transition:opacity 200ms 300ms,transform 400ms 100ms}.is-composing .tabs-bar,.is-composing .search{margin-top:-50px}.is-composing .navigation-bar{padding-bottom:0}.is-composing .navigation-bar>a:first-child{margin:-100px 10px 0 -50px}.is-composing .navigation-bar .navigation-bar__profile{padding-top:2px}.is-composing .navigation-bar .navigation-bar__profile-edit{position:absolute;margin-top:-60px}.is-composing .navigation-bar .navigation-bar__actions .icon-button.close{pointer-events:auto;opacity:1;transform:scale(1, 1) translate(0, 0);bottom:5px}.is-composing .navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:none;opacity:0;transform:scale(0, 1) translate(100%, 0)}}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#121a24;color:#fff;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#192432}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f}.account__moved-note__message{position:relative;margin-left:58px;color:#3e5a7c;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.column-inline-form{padding:15px;padding-right:0;display:flex;justify-content:flex-start;align-items:center;background:#192432}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 10px}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.list-editor{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#283a50;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#283a50}.list-adder__lists{background:#283a50;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #202e3f}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#fff;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.account__header__content{color:#9baec8;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#0b1016}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#192432;padding:5px;border-bottom:1px solid #26374d}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#040609;border:2px solid #192432}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #26374d;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#fff}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #26374d}.account__header__bio .account__header__fields a{color:#e1b590}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#9baec8;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#fff}.trends__header{color:#3e5a7c;background:#151f2b;border-bottom:1px solid #0b1016;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #202e3f}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#3e5a7c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#9baec8;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#d9e1e8}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(216,160,112,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#dfb088 !important}.conversation{display:flex;border-bottom:1px solid #202e3f;padding:5px;padding-bottom:0}.conversation:focus{background:#151f2b;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative;cursor:pointer}.conversation__unread{display:inline-block;background:#d8a070;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#9baec8;padding-left:15px}.conversation__content__names{color:#9baec8;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#fff;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content a{word-break:break-word}.conversation--unread{background:#151f2b}.conversation--unread:focus{background:#192432}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#fff}.announcements{background:#202e3f;font-size:13px;display:flex;align-items:flex-end}.announcements__mastodon{width:124px;flex:0 0 auto}@media screen and (max-width: 424px){.announcements__mastodon{display:none}}.announcements__container{width:calc(100% - 124px);flex:0 0 auto;position:relative}@media screen and (max-width: 424px){.announcements__container{width:100%}}.announcements__item{box-sizing:border-box;width:100%;padding:15px;position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;max-height:50vh;overflow:hidden;display:flex;flex-direction:column}.announcements__item__range{display:block;font-weight:500;margin-bottom:10px;padding-right:18px}.announcements__item__unread{position:absolute;top:19px;right:19px;display:block;background:#d8a070;border-radius:50%;width:.625rem;height:.625rem}.announcements__pagination{padding:15px;color:#9baec8;position:absolute;bottom:3px;right:0}.layout-multiple-columns .announcements__mastodon{display:none}.layout-multiple-columns .announcements__container{width:100%}.reactions-bar{display:flex;flex-wrap:wrap;align-items:center;margin-top:15px;margin-left:-2px;width:calc(100% - (90px - 33px))}.reactions-bar__item{flex-shrink:0;background:#26374d;border:0;border-radius:3px;margin:2px;cursor:pointer;user-select:none;padding:0 6px;display:flex;align-items:center;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar__item__emoji{display:block;margin:3px 0;width:16px;height:16px}.reactions-bar__item__emoji img{display:block;margin:0;width:100%;height:100%;min-width:auto;min-height:auto;vertical-align:bottom;object-fit:contain}.reactions-bar__item__count{display:block;min-width:9px;font-size:13px;font-weight:500;text-align:center;margin-left:6px;color:#9baec8}.reactions-bar__item:hover,.reactions-bar__item:focus,.reactions-bar__item:active{background:#2d415a;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar__item:hover__count,.reactions-bar__item:focus__count,.reactions-bar__item:active__count{color:#a8b9cf}.reactions-bar__item.active{transition:all 100ms ease-in;transition-property:background-color,color;background-color:#4a4c54}.reactions-bar__item.active .reactions-bar__item__count{color:#e1b590}.reactions-bar .emoji-picker-dropdown{margin:2px}.reactions-bar:hover .emoji-button{opacity:.85}.reactions-bar .emoji-button{color:#9baec8;margin:0;font-size:16px;width:auto;flex-shrink:0;padding:0 6px;height:22px;display:flex;align-items:center;opacity:.5;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar .emoji-button:hover,.reactions-bar .emoji-button:active,.reactions-bar .emoji-button:focus{opacity:1;color:#a8b9cf;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar--empty .emoji-button{padding:0}.poll{margin-top:16px;font-size:14px}.poll li{margin-bottom:10px;position:relative}.poll__chart{border-radius:4px;display:block;background:#8ba1bf;height:5px;min-width:1%}.poll__chart.leading{background:#d8a070}.poll__option{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__option__text{display:inline-block;word-wrap:break-word;overflow-wrap:break-word;max-width:calc(100% - 45px - 25px)}.poll__option input[type=radio],.poll__option input[type=checkbox]{display:none}.poll__option .autossugest-input{flex:1 1 auto}.poll__option input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#121a24;outline:0;font-family:inherit;background:#fff;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px}.poll__option input[type=text]:focus{border-color:#d8a070}.poll__option.selectable{cursor:pointer}.poll__option.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-color:#acd6c1;border-width:4px}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:45px;font-weight:700;flex:0 0 45px}.poll__voted{padding:0 5px;display:inline-block}.poll__voted__mark{font-size:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#3e5a7c}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#3e5a7c;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(62,90,124,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #ebebeb}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #ebebeb;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#d8a070}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#3e5a7c;border-color:#3e5a7c;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__option{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#121a24;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#dbdbdb}.muted .poll{color:#3e5a7c}.muted .poll__chart{background:rgba(109,137,175,.2)}.muted .poll__chart.leading{background:rgba(216,160,112,.2)}.modal-layout{background:#121a24 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.emoji-mart{font-size:13px;display:inline-block;color:#121a24}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #c0cdd9}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#d9e1e8}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#3e5a7c;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#37506f}.emoji-mart-anchor-selected{color:#d8a070}.emoji-mart-anchor-selected:hover{color:#d49560}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:-1px}.emoji-mart-anchor-bar{position:absolute;bottom:-5px;left:0;width:100%;height:4px;background-color:#d8a070}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(217,225,232,.3);color:#121a24;border:1px solid #d9e1e8;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(217,225,232,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#9baec8}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#9baec8}.rich-formatting a{color:#d8a070;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#9baec8}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#d9e1e8}.rich-formatting em{font-style:italic;color:#d9e1e8}.rich-formatting code{font-size:.85em;background:#040609;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:\"mastodon-font-display\",sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#d9e1e8}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #192432;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #192432;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#9baec8}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#3e5a7c}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#0b1016;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;line-height:28px;color:#fff;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#d9e1e8}.information-board__section strong{font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#040609;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#9baec8;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #192432;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#7a93b6}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#fff;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#9baec8}.landing-page p,.landing-page li{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#9baec8}.landing-page p a,.landing-page li a{color:#d8a070;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.landing-page h1{font-family:\"mastodon-font-display\",sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h1 small{font-family:\"mastodon-font-sans-serif\",sans-serif;display:block;font-size:18px;font-weight:400;color:#bcc9da}.landing-page h2{font-family:\"mastodon-font-display\",sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h3{font-family:\"mastodon-font-display\",sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h4{font-family:\"mastodon-font-display\",sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h5{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h6{font-family:\"mastodon-font-display\",sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(62,90,124,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#121a24;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#bcc9da}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#121a24;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#d9e1e8}.landing-page__short-description h1{font-weight:500;color:#fff;margin-bottom:0}.landing-page__short-description h1 small{color:#9baec8}.landing-page__short-description h1 small span{color:#d9e1e8}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#fff;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#121a24;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:\"mastodon-font-display\",sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#9baec8}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#9baec8}.landing .simple_form p.lead{color:#9baec8;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #202e3f}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#3e5a7c}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #121a24;text-align:left;background:#0b1016}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #121a24;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#121a24}.table a{color:#d8a070;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#121a24;border-top:1px solid #040609;border-bottom:1px solid #040609}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #040609}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #040609}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:\"mastodon-font-monospace\",monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#9baec8;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#fff}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #040609;background:#121a24;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #040609;border-top:0;background:#121a24}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #040609;border-top:0;background:#0b1016}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #040609}}.batch-table__row:hover{background:#0f151d}.batch-table__row:nth-child(even){background:#121a24}.batch-table__row:nth-child(even):hover{background:#151f2b}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#9baec8;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content summary{display:list-item}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #040609;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #040609}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#121a24;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#202e3f;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#fff;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#9baec8;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#26374d}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#9baec8;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#fff;background-color:#0a0e13;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#0f151d;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#0b1016;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#fff;background-color:#d8a070;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#ddad84}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #202e3f;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#d9e1e8;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#d9e1e8;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#9baec8;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #202e3f}.admin-wrapper .content h6{font-size:16px;color:#d9e1e8;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#fff;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#fff;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:0}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#d9e1e8;margin-bottom:20px}.admin-wrapper .content>p strong{color:#fff;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(62,90,124,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #192432;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#d8a070}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#9baec8}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#d8a070}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#3e5a7c;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset--with-select strong{display:block;margin-bottom:10px}.filters .filter-subset a{display:inline-block;color:#9baec8;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #121a24}.filters .filter-subset a:hover{color:#fff;border-bottom:2px solid #1b2635}.filters .filter-subset a.selected{color:#d8a070;border-bottom:2px solid #d8a070}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#d9e1e8}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#d8a070;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{line-height:20px;padding:15px 0;background:#121a24;border-bottom:1px solid #192432}.log-entry:last-child{border-bottom:0}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;color:#9baec8;font-size:14px;padding:0 10px}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#3e5a7c}.log-entry a,.log-entry .username,.log-entry .target{color:#d9e1e8;text-decoration:none;font-weight:500}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#d9e1e8}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#e87487}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #d8a070}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#e87487}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#9baec8}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#3e5a7c}.report-card{background:#121a24;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#9baec8;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#b5c3d6}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #0b1016}.report-card__summary__item:hover{background:#151f2b}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#9baec8}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#3e5a7c;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#9baec8}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#202e3f;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#e1b590}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#fff}.center-text{text-align:center}.announcements-list{border:1px solid #192432;border-radius:4px}.announcements-list__item{padding:15px 0;background:#121a24;border-bottom:1px solid #192432}.announcements-list__item__title{padding:0 15px;display:block;font-weight:500;font-size:18px;line-height:1.5;color:#d9e1e8;text-decoration:none;margin-bottom:10px}.announcements-list__item__title:hover,.announcements-list__item__title:focus,.announcements-list__item__title:active{color:#fff}.announcements-list__item__meta{padding:0 15px;color:#3e5a7c}.announcements-list__item__action-bar{display:flex;justify-content:space-between;align-items:center}.announcements-list__item:last-child{border-bottom:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#192432;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#202e3f}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#fff;font-family:\"mastodon-font-display\",sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#9baec8;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#d9e1e8;font-weight:500;text-decoration:none}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .status__avatar{left:auto;right:10px}body.rtl .status,body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:68px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(1, 1, 2, 0), #010102)}body.rtl .simple_form select{background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff);transform:scale(0.71)}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a !default; // Padua\n$error-red: #df405a !default; // Cerise\n$warning-red: #ff5050 !default; // Sunset Orange\n$gold-star: #ca8f04 !default; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: 'mastodon-font-sans-serif' !default;\n$font-display: 'mastodon-font-display' !default;\n$font-monospace: 'mastodon-font-monospace' !default;\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n\n @return '%23' + unquote($color);\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.player {\n text-align: center;\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n &__illustration {\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div,\n & > noscript {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n\n & > noscript {\n height: 100vh;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n\n.error-boundary,\n.app-holder noscript {\n flex-direction: column;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.7;\n color: lighten($error-red, 4%);\n text-align: center;\n\n & > div {\n max-width: 500px;\n }\n\n p {\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &__footer {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n }\n }\n\n button {\n display: inline;\n border: 0;\n background: transparent;\n color: $dark-text-color;\n font: inherit;\n padding: 0;\n margin: 0;\n line-height: inherit;\n cursor: pointer;\n outline: 0;\n transition: color 300ms linear;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.copied {\n color: $valid-value-color;\n transition: none;\n }\n }\n}\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1 / 3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small,\n .trends__item__current {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n\n .trends__item__current {\n padding-right: 0;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n\n li {\n list-style: disc;\n margin-left: 18px;\n }\n }\n\n ul.hint {\n margin-bottom: 15px;\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .input.datetime .label_input select {\n display: inline-block;\n width: auto;\n flex: 0;\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\nbutton.icon-button.disabled i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.animated-number {\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n overflow: hidden;\n position: relative;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: $ui-highlight-color;\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 10%);\n transition: all 200ms ease-out;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled,\n &.disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n color: $darker-text-color;\n background: transparent;\n padding: 3px 15px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.compose-form {\n padding: 10px;\n\n &__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n }\n\n .compose-form__warning {\n color: $inverted-text-color;\n margin-bottom: 10px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n strong {\n color: $inverted-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 0;\n right: 0;\n }\n\n .compose-form__autosuggest-wrapper {\n position: relative;\n }\n\n .autosuggest-textarea,\n .autosuggest-input,\n .spoiler-input {\n position: relative;\n width: 100%;\n }\n\n .spoiler-input {\n height: 0;\n transform-origin: bottom;\n opacity: 0;\n\n &.spoiler-input--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1;\n }\n }\n\n .autosuggest-textarea__textarea,\n .spoiler-input__input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .spoiler-input__input {\n border-radius: 4px;\n }\n\n .autosuggest-textarea__textarea {\n min-height: 100px;\n border-radius: 4px 4px 0 0;\n padding-bottom: 0;\n padding-right: 10px + 22px;\n resize: none;\n scrollbar-color: initial;\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n @media screen and (max-width: 600px) {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n\n .autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n }\n\n .autosuggest-textarea__suggestions {\n box-sizing: border-box;\n display: none;\n position: absolute;\n top: 100%;\n width: 100%;\n z-index: 99;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n background: $ui-secondary-color;\n border-radius: 0 0 4px 4px;\n color: $inverted-text-color;\n font-size: 14px;\n padding: 6px;\n\n &.autosuggest-textarea__suggestions--visible {\n display: block;\n }\n }\n\n .autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n\n .autosuggest-account,\n .autosuggest-emoji,\n .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .autosuggest-account-icon,\n .autosuggest-emoji img {\n display: block;\n margin-right: 8px;\n width: 16px;\n height: 16px;\n }\n\n .autosuggest-account .display-name__account {\n color: $lighter-text-color;\n }\n\n .compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n\n .compose-form__upload-wrapper {\n overflow: hidden;\n }\n\n .compose-form__uploads-wrapper {\n display: flex;\n flex-direction: row;\n padding: 5px;\n flex-wrap: wrap;\n }\n\n .compose-form__upload {\n flex: 1 1 0;\n min-width: 40%;\n margin: 5px;\n\n &__actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $secondary-text-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($secondary-text-color, 7%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n\n &-description {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n padding: 10px;\n opacity: 0;\n transition: opacity .1s ease;\n\n textarea {\n background: transparent;\n color: $secondary-text-color;\n border: 0;\n padding: 0;\n margin: 0;\n width: 100%;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n\n &:focus {\n color: $white;\n }\n\n &::placeholder {\n opacity: 0.75;\n color: $secondary-text-color;\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n }\n\n .compose-form__upload-thumbnail {\n border-radius: 4px;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 140px;\n width: 100%;\n overflow: hidden;\n }\n }\n\n .compose-form__buttons-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n\n .compose-form__buttons {\n display: flex;\n\n .compose-form__upload-button-icon {\n line-height: 27px;\n }\n\n .compose-form__sensitive-button {\n display: none;\n\n &.compose-form__sensitive-button--visible {\n display: block;\n }\n\n .compose-form__sensitive-button__icon {\n line-height: 27px;\n }\n }\n }\n\n .icon-button,\n .text-icon-button {\n box-sizing: content-box;\n padding: 0 3px;\n }\n\n .character-counter__wrapper {\n align-self: center;\n margin-right: 4px;\n }\n }\n\n .compose-form__publish {\n display: flex;\n justify-content: flex-end;\n min-width: 0;\n flex: 0 0 auto;\n\n .compose-form__publish-button-wrapper {\n overflow: hidden;\n padding-top: 10px;\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .spoiler-input {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.reply-indicator {\n border-radius: 4px;\n margin-bottom: 10px;\n background: $ui-primary-color;\n padding: 10px;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n}\n\n.reply-indicator__header {\n margin-bottom: 5px;\n overflow: hidden;\n}\n\n.reply-indicator__cancel {\n float: right;\n line-height: 24px;\n}\n\n.reply-indicator__display-name {\n color: $inverted-text-color;\n display: block;\n max-width: 100%;\n line-height: 24px;\n overflow: hidden;\n padding-right: 25px;\n text-decoration: none;\n}\n\n.reply-indicator__display-avatar {\n float: left;\n margin-right: 5px;\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content,\n.reply-indicator__content {\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n color: $primary-text-color;\n\n &:focus {\n outline: 0;\n }\n\n &.status__content--with-spoiler {\n white-space: normal;\n\n .status__content__text {\n white-space: pre-wrap;\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n\n .status__content__spoiler-link {\n background: $action-button-color;\n\n &:hover {\n background: lighten($action-button-color, 7%);\n text-decoration: none;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n .status__content__text {\n display: none;\n\n &.status__content__text--visible {\n display: block;\n }\n }\n}\n\n.announcements__item__content {\n word-wrap: break-word;\n overflow-y: auto;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 10px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n &.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n.status__content.status__content--collapsed {\n max-height: 20px * 15; // 15 lines is roughly above 500 characters\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n text-decoration: none;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: transparent;\n border: 0;\n color: $inverted-text-color;\n font-weight: 700;\n font-size: 11px;\n padding: 0 6px;\n text-transform: uppercase;\n line-height: 20px;\n cursor: pointer;\n vertical-align: middle;\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n .status.status-direct {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 8px 10px;\n padding-left: 68px;\n position: relative;\n min-height: 54px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 26px; // 10px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $light-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n color: $light-text-color;\n\n strong {\n color: $inverted-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time,\n.notification__relative_time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n}\n\n.status__display-name {\n color: $dark-text-color;\n}\n\n.status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n}\n\n.status__info {\n font-size: 15px;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n overflow: hidden;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-left: 68px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.reply-indicator__content {\n color: $inverted-text-color;\n font-size: 14px;\n\n a {\n color: $lighter-text-color;\n }\n}\n\n.domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &.compact {\n padding: 0;\n border-bottom: 0;\n\n .account__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius;\n position: relative;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n border-radius: 50%;\n overflow: hidden;\n position: relative;\n\n & > div {\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\na .account__avatar {\n cursor: pointer;\n}\n\n.account__avatar-overlay {\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius;\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius;\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__disclaimer {\n padding: 10px;\n border-top: 1px solid lighten($ui-base-color, 8%);\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-dropdown {\n padding: 10px;\n\n .icon-button {\n vertical-align: middle;\n }\n\n .dropdown--active {\n .dropdown__content.dropdown__right {\n left: 6px;\n right: initial;\n }\n\n &::after {\n bottom: initial;\n margin-left: 11px;\n margin-top: -7px;\n right: initial;\n }\n }\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-right: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\n.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\na.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n height: 48px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n}\n\n.status__expand {\n width: 68px;\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n cursor: pointer;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-lighter-color, 7%);\n text-decoration: none;\n }\n }\n}\n\n.notification__message {\n margin: 0 10px 0 68px;\n padding: 8px 0 0;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n line-height: 22px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: inline;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: -26px;\n position: absolute;\n\n .star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.notification__relative_time {\n float: right;\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.navigation-bar {\n padding: 10px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n cursor: default;\n color: $darker-text-color;\n\n strong {\n color: $secondary-text-color;\n }\n\n a {\n color: inherit;\n }\n\n .permalink {\n text-decoration: none;\n }\n\n .navigation-bar__actions {\n position: relative;\n\n .icon-button.close {\n position: absolute;\n pointer-events: none;\n transform: scale(0, 1) translate(-100%, 0);\n opacity: 0;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: auto;\n transform: scale(1, 1) translate(0, 0);\n opacity: 1;\n }\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n line-height: 20px;\n margin-top: -1px;\n overflow: hidden;\n}\n\n.navigation-bar__profile-account {\n display: block;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.navigation-bar__profile-edit {\n color: inherit;\n text-decoration: none;\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n z-index: 9999;\n\n ul {\n list-style: none;\n }\n\n &.left {\n transform-origin: 100% 50%;\n }\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n\n &.right {\n transform-origin: 0 50%;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &.unscrollable {\n overflow-x: hidden;\n }\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .drawer,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 350px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.drawer {\n width: 330px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n}\n\n.drawer__tab {\n display: block;\n flex: 1 1 auto;\n padding: 15px 5px 13px;\n color: $darker-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 16px;\n border-bottom: 2px solid transparent;\n}\n\n.column,\n.drawer {\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @media screen and (min-width: 631px) {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $highlight-text-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__favourite-icon-wrapper {\n left: -32px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n\n .account__avatar-wrapper {\n margin-left: 17px;\n margin-right: 15px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .getting-started__trends,\n .search {\n margin-bottom: 10px;\n }\n\n .getting-started__panel {\n margin: 10px 0;\n }\n\n .column,\n .drawer {\n min-width: 330px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .navigation-bar {\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 0 1 48px;\n min-height: 20px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .compose-form {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n padding-bottom: 71px;\n margin-bottom: -71px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n border-radius: 2px;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 85%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__header {\n flex: 0 0 auto;\n font-size: 16px;\n background: lighten($ui-base-color, 8%);\n margin-bottom: 10px;\n display: flex;\n flex-direction: row;\n border-radius: 2px;\n\n a {\n transition: background 100ms ease-in;\n\n &:hover {\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n line-height: inherit;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n outline: 0;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n white-space: nowrap;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.getting-started__wrapper,\n.getting-started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n color: $dark-text-color;\n overflow: auto;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n\n &__wrapper,\n &__panel,\n &__footer {\n height: min-content;\n }\n\n &__panel,\n &__footer\n {\n padding: 10px;\n padding-top: 20px;\n flex-grow: 0;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__wrapper,\n &__footer\n {\n color: $dark-text-color;\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n border-radius: 4px;\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n z-index: 1;\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n bottom: -13px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n\n .announcements {\n z-index: 1;\n position: relative;\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n\n & > button {\n margin: 0;\n border: 0;\n padding: 15px 0 15px 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($highlight-text-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n z-index: 1;\n position: relative;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n border-radius: 4px;\n appearance: none;\n\n &:hover,\n &:active,\n &:focus {\n padding: 0;\n color: lighten($darker-text-color, 8%);\n }\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 700;\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: block;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout;\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.empty-column-indicator,\n.error-column,\n.follow_requests-unlocked_explanation {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.follow_requests-unlocked_explanation {\n background: darken($ui-base-color, 4%);\n contain: initial;\n}\n\n.error-column {\n flex-direction: column;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.no-reduce-motion .pulse-loading {\n transform-origin: center center;\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n@keyframes shake-bottom {\n 0%,\n 100% {\n transform: rotate(0deg);\n transform-origin: 50% 100%;\n }\n\n 10% {\n transform: rotate(2deg);\n }\n\n 20%,\n 40%,\n 60% {\n transform: rotate(-4deg);\n }\n\n 30%,\n 50%,\n 70% {\n transform: rotate(4deg);\n }\n\n 80% {\n transform: rotate(-2deg);\n }\n\n 90% {\n transform: rotate(2deg);\n }\n}\n\n.no-reduce-motion .shake-bottom {\n transform-origin: 50% 100%;\n animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.upload-progress {\n padding: 10px;\n color: $lighter-text-color;\n overflow: hidden;\n display: flex;\n\n .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n span {\n font-size: 12px;\n text-transform: uppercase;\n font-weight: 500;\n display: block;\n }\n}\n\n.upload-progess__message {\n flex: 1 1 auto;\n}\n\n.upload-progress__backdrop {\n width: 100%;\n height: 6px;\n border-radius: 6px;\n background: $ui-base-lighter-color;\n position: relative;\n margin-top: 5px;\n}\n\n.upload-progress__tracker {\n position: absolute;\n left: 0;\n top: 0;\n height: 6px;\n background: $ui-highlight-color;\n border-radius: 6px;\n}\n\n.emoji-button {\n display: block;\n padding: 5px 5px 2px 2px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.privacy-dropdown__dropdown {\n position: absolute;\n background: $simple-background-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-left: 40px;\n overflow: hidden;\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n}\n\n.privacy-dropdown__option {\n color: $inverted-text-color;\n padding: 10px;\n cursor: pointer;\n display: flex;\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n outline: 0;\n\n .privacy-dropdown__option__content {\n color: $primary-text-color;\n\n strong {\n color: $primary-text-color;\n }\n }\n }\n\n &.active:hover {\n background: lighten($ui-highlight-color, 4%);\n }\n}\n\n.privacy-dropdown__option__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 10px;\n}\n\n.privacy-dropdown__option__content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n strong {\n font-weight: 500;\n display: block;\n color: $inverted-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.privacy-dropdown.active {\n .privacy-dropdown__value {\n background: $simple-background-color;\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n\n .icon-button {\n transition: none;\n }\n\n &.active {\n background: $ui-highlight-color;\n\n .icon-button {\n color: $primary-text-color;\n }\n }\n }\n\n &.top .privacy-dropdown__value {\n border-radius: 0 0 4px 4px;\n }\n\n .privacy-dropdown__dropdown {\n display: block;\n box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);\n }\n}\n\n.search {\n position: relative;\n}\n\n.search__input {\n @include search-input;\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(90deg);\n\n &.active {\n pointer-events: none;\n transform: rotate(0deg);\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n}\n\n.search-results__section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n}\n\n.search-results__hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $primary-text-color;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $highlight-text-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n }\n\n .status__avatar {\n height: 28px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n .status__content,\n .status__content p {\n color: $inverted-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n max-height: 80vh;\n max-width: 80vw;\n\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.loading-bar {\n background-color: $highlight-text-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n margin-top: 32px;\n\n audio {\n width: 100%;\n }\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n/* Media Gallery */\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n }\n\n img {\n object-fit: cover;\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n object-fit: cover;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n z-index: 1;\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n/* End Media Gallery */\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-overlay-background;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n\n.directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n width: 100%;\n white-space: nowrap;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\n.search-popout {\n @include search-popout;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@media screen and (max-width: 630px) and (max-height: 400px) {\n $duration: 400ms;\n $delay: 100ms;\n\n .tabs-bar,\n .search {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar {\n will-change: padding-bottom;\n transition: padding-bottom $duration $delay;\n }\n\n .navigation-bar {\n & > a:first-child {\n will-change: margin-top, margin-left, margin-right, width;\n transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay);\n }\n\n & > .navigation-bar__profile-edit {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar__actions {\n & > .icon-button.close {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay,\n transform $duration $delay;\n }\n\n & > .compose__action-bar .icon-button {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay + $duration * 0.5,\n transform $duration $delay;\n }\n }\n }\n\n .is-composing {\n .tabs-bar,\n .search {\n margin-top: -50px;\n }\n\n .navigation-bar {\n padding-bottom: 0;\n\n & > a:first-child {\n margin: -100px 10px 0 -50px;\n }\n\n .navigation-bar__profile {\n padding-top: 2px;\n }\n\n .navigation-bar__profile-edit {\n position: absolute;\n margin-top: -60px;\n }\n\n .navigation-bar__actions {\n .icon-button.close {\n pointer-events: auto;\n opacity: 1;\n transform: scale(1, 1) translate(0, 0);\n bottom: 5px;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: none;\n opacity: 0;\n transform: scale(0, 1) translate(100%, 0);\n }\n }\n }\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.column-inline-form {\n padding: 15px;\n padding-right: 0;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 10px;\n }\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n\n.list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n cursor: pointer;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.announcements {\n background: lighten($ui-base-color, 8%);\n font-size: 13px;\n display: flex;\n align-items: flex-end;\n\n &__mastodon {\n width: 124px;\n flex: 0 0 auto;\n\n @media screen and (max-width: 124px + 300px) {\n display: none;\n }\n }\n\n &__container {\n width: calc(100% - 124px);\n flex: 0 0 auto;\n position: relative;\n\n @media screen and (max-width: 124px + 300px) {\n width: 100%;\n }\n }\n\n &__item {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n max-height: 50vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &__range {\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n padding-right: 18px;\n }\n\n &__unread {\n position: absolute;\n top: 19px;\n right: 19px;\n display: block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n }\n }\n\n &__pagination {\n padding: 15px;\n color: $darker-text-color;\n position: absolute;\n bottom: 3px;\n right: 0;\n }\n}\n\n.layout-multiple-columns .announcements__mastodon {\n display: none;\n}\n\n.layout-multiple-columns .announcements__container {\n width: 100%;\n}\n\n.reactions-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-top: 15px;\n margin-left: -2px;\n width: calc(100% - (90px - 33px));\n\n &__item {\n flex-shrink: 0;\n background: lighten($ui-base-color, 12%);\n border: 0;\n border-radius: 3px;\n margin: 2px;\n cursor: pointer;\n user-select: none;\n padding: 0 6px;\n display: flex;\n align-items: center;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &__emoji {\n display: block;\n margin: 3px 0;\n width: 16px;\n height: 16px;\n\n img {\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n min-width: auto;\n min-height: auto;\n vertical-align: bottom;\n object-fit: contain;\n }\n }\n\n &__count {\n display: block;\n min-width: 9px;\n font-size: 13px;\n font-weight: 500;\n text-align: center;\n margin-left: 6px;\n color: $darker-text-color;\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 16%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n\n &__count {\n color: lighten($darker-text-color, 4%);\n }\n }\n\n &.active {\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%);\n\n .reactions-bar__item__count {\n color: lighten($highlight-text-color, 8%);\n }\n }\n }\n\n .emoji-picker-dropdown {\n margin: 2px;\n }\n\n &:hover .emoji-button {\n opacity: 0.85;\n }\n\n .emoji-button {\n color: $darker-text-color;\n margin: 0;\n font-size: 16px;\n width: auto;\n flex-shrink: 0;\n padding: 0 6px;\n height: 22px;\n display: flex;\n align-items: center;\n opacity: 0.5;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n opacity: 1;\n color: lighten($darker-text-color, 4%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n }\n\n &--empty {\n .emoji-button {\n padding: 0;\n }\n }\n}\n",null,"@mixin avatar-radius {\n border-radius: 4px;\n background: transparent no-repeat;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size: 48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin search-input {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: 0;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n border-radius: 4px;\n display: block;\n background: darken($ui-primary-color, 5%);\n height: 5px;\n min-width: 1%;\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__option {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n &__text {\n display: inline-block;\n word-wrap: break-word;\n overflow-wrap: break-word;\n max-width: calc(100% - 45px - 25px);\n }\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($valid-value-color, 15%);\n border-width: 4px;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 45px;\n font-weight: 700;\n flex: 0 0 45px;\n }\n\n &__voted {\n padding: 0 5px;\n display: inline-block;\n\n &__mark {\n font-size: 18px;\n }\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__option {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".emoji-mart {\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: -1px;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -5px;\n left: 0;\n width: 100%;\n height: 4px;\n background-color: $highlight-text-color;\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n summary {\n display: list-item;\n }\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: 0;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &--with-select strong {\n display: block;\n margin-bottom: 10px;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n line-height: 20px;\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: $darker-text-color;\n font-size: 14px;\n padding: 0 10px;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n\n.announcements-list {\n border: 1px solid lighten($ui-base-color, 4%);\n border-radius: 4px;\n\n &__item {\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &__title {\n padding: 0 15px;\n display: block;\n font-weight: 500;\n font-size: 18px;\n line-height: 1.5;\n color: $secondary-text-color;\n text-decoration: none;\n margin-bottom: 10px;\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n }\n\n &__meta {\n padding: 0 15px;\n color: $dark-text-color;\n }\n\n &__action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .status__avatar {\n left: auto;\n right: 10px;\n }\n\n .status,\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n","$black-emojis: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash';\n\n%white-emoji-outline {\n filter: drop-shadow(1px 1px 0 $white) drop-shadow(-1px 1px 0 $white) drop-shadow(1px -1px 0 $white) drop-shadow(-1px -1px 0 $white);\n transform: scale(.71);\n}\n\n.emojione {\n @each $emoji in $black-emojis {\n &[title=':#{$emoji}:'] {\n @extend %white-emoji-outline;\n }\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/flavours/vanilla/common.js b/priv/static/packs/flavours/vanilla/common.js index 9918570ee..a69c77f8c 100644 Binary files a/priv/static/packs/flavours/vanilla/common.js and b/priv/static/packs/flavours/vanilla/common.js differ diff --git a/priv/static/packs/flavours/vanilla/embed.js b/priv/static/packs/flavours/vanilla/embed.js index d715c4ce0..428bde4a8 100644 Binary files a/priv/static/packs/flavours/vanilla/embed.js and b/priv/static/packs/flavours/vanilla/embed.js differ diff --git a/priv/static/packs/flavours/vanilla/embed.js.LICENSE b/priv/static/packs/flavours/vanilla/embed.js.LICENSE deleted file mode 100644 index 487bc60d8..000000000 --- a/priv/static/packs/flavours/vanilla/embed.js.LICENSE +++ /dev/null @@ -1,41 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/** @license React v16.12.0 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v0.18.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/priv/static/packs/flavours/vanilla/embed.js.LICENSE.txt b/priv/static/packs/flavours/vanilla/embed.js.LICENSE.txt new file mode 100644 index 000000000..2196b2def --- /dev/null +++ b/priv/static/packs/flavours/vanilla/embed.js.LICENSE.txt @@ -0,0 +1,41 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +/** @license React v0.19.0 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.12.0 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.0 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/priv/static/packs/flavours/vanilla/embed.js.map b/priv/static/packs/flavours/vanilla/embed.js.map index 99939ba39..11aaa64bb 100644 Binary files a/priv/static/packs/flavours/vanilla/embed.js.map and b/priv/static/packs/flavours/vanilla/embed.js.map differ diff --git a/priv/static/packs/flavours/vanilla/error.js b/priv/static/packs/flavours/vanilla/error.js index bb2bd90b3..7a5535676 100644 Binary files a/priv/static/packs/flavours/vanilla/error.js and b/priv/static/packs/flavours/vanilla/error.js differ diff --git a/priv/static/packs/flavours/vanilla/home.js b/priv/static/packs/flavours/vanilla/home.js index d3fdeb2aa..2412557a6 100644 Binary files a/priv/static/packs/flavours/vanilla/home.js and b/priv/static/packs/flavours/vanilla/home.js differ diff --git a/priv/static/packs/flavours/vanilla/about.js.LICENSE b/priv/static/packs/flavours/vanilla/home.js.LICENSE.txt similarity index 98% rename from priv/static/packs/flavours/vanilla/about.js.LICENSE rename to priv/static/packs/flavours/vanilla/home.js.LICENSE.txt index 0a0301353..90a9a7678 100644 --- a/priv/static/packs/flavours/vanilla/about.js.LICENSE +++ b/priv/static/packs/flavours/vanilla/home.js.LICENSE.txt @@ -1,3 +1,9 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + /*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see @@ -12,31 +18,145 @@ * MIT Licensed */ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/** @license React v16.12.0 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. +/*! + * wavesurfer.js 3.3.1 (2020-01-14) + * https://github.com/katspaugh/wavesurfer.js + * @license BSD-3-Clause */ -/** @license React v16.12.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ +/*! ./ajax */ -/** @license React v0.18.0 +/*! ./drawer */ + +/*! ./drawer.canvasentry */ + +/*! ./drawer.multicanvas */ + +/*! ./extend */ + +/*! ./fetch */ + +/*! ./frame */ + +/*! ./get-id */ + +/*! ./max */ + +/*! ./mediaelement */ + +/*! ./mediaelement-webaudio */ + +/*! ./min */ + +/*! ./observer */ + +/*! ./peakcache */ + +/*! ./prevent-click */ + +/*! ./request-animation-frame */ + +/*! ./style */ + +/*! ./util */ + +/*! ./util/get-id */ + +/*! ./util/style */ + +/*! ./webaudio */ + +/*! debounce */ + +/*! https://mths.be/punycode v1.4.1 by @mathias */ + +/*! no static exports found */ + +/*!***********************!*\ + !*** ./src/drawer.js ***! + \***********************/ + +/*!*************************!*\ + !*** ./src/util/max.js ***! + \*************************/ + +/*!*************************!*\ + !*** ./src/util/min.js ***! + \*************************/ + +/*!*************************!*\ + !*** ./src/webaudio.js ***! + \*************************/ + +/*!**************************!*\ + !*** ./src/peakcache.js ***! + \**************************/ + +/*!**************************!*\ + !*** ./src/util/ajax.js ***! + \**************************/ + +/*!***************************!*\ + !*** ./src/util/fetch.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/frame.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/index.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/style.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/wavesurfer.js ***! + \***************************/ + +/*!****************************!*\ + !*** ./src/util/extend.js ***! + \****************************/ + +/*!****************************!*\ + !*** ./src/util/get-id.js ***! + \****************************/ + +/*!*****************************!*\ + !*** ./src/mediaelement.js ***! + \*****************************/ + +/*!******************************!*\ + !*** ./src/util/observer.js ***! + \******************************/ + +/*!***********************************!*\ + !*** ./src/drawer.canvasentry.js ***! + \***********************************/ + +/*!***********************************!*\ + !*** ./src/drawer.multicanvas.js ***! + \***********************************/ + +/*!***********************************!*\ + !*** ./src/util/prevent-click.js ***! + \***********************************/ + +/*!**************************************!*\ + !*** ./src/mediaelement-webaudio.js ***! + \**************************************/ + +/*!****************************************!*\ + !*** ./node_modules/debounce/index.js ***! + \****************************************/ + +/*!*********************************************!*\ + !*** ./src/util/request-animation-frame.js ***! + \*********************************************/ + +/** @license React v0.19.0 * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -54,140 +174,20 @@ object-assign * LICENSE file in the root directory of this source tree. */ -/*! - * wavesurfer.js 3.3.1 (2020-01-14) - * https://github.com/katspaugh/wavesurfer.js - * @license BSD-3-Clause +/** @license React v16.13.0 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ -/*!****************************************!*\ - !*** ./node_modules/debounce/index.js ***! - \****************************************/ - -/*! no static exports found */ - -/*!***********************************!*\ - !*** ./src/drawer.canvasentry.js ***! - \***********************************/ - -/*! ./util/style */ - -/*! ./util/get-id */ - -/*!***********************!*\ - !*** ./src/drawer.js ***! - \***********************/ - -/*! ./util */ - -/*!***********************************!*\ - !*** ./src/drawer.multicanvas.js ***! - \***********************************/ - -/*! ./drawer */ - -/*! ./drawer.canvasentry */ - -/*!**************************************!*\ - !*** ./src/mediaelement-webaudio.js ***! - \**************************************/ - -/*! ./mediaelement */ - -/*!*****************************!*\ - !*** ./src/mediaelement.js ***! - \*****************************/ - -/*! ./webaudio */ - -/*!**************************!*\ - !*** ./src/peakcache.js ***! - \**************************/ - -/*!**************************!*\ - !*** ./src/util/ajax.js ***! - \**************************/ - -/*! ./observer */ - -/*!****************************!*\ - !*** ./src/util/extend.js ***! - \****************************/ - -/*!***************************!*\ - !*** ./src/util/fetch.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/frame.js ***! - \***************************/ - -/*! ./request-animation-frame */ - -/*!****************************!*\ - !*** ./src/util/get-id.js ***! - \****************************/ - -/*!***************************!*\ - !*** ./src/util/index.js ***! - \***************************/ - -/*! ./ajax */ - -/*! ./get-id */ - -/*! ./max */ - -/*! ./min */ - -/*! ./extend */ - -/*! ./style */ - -/*! ./frame */ - -/*! debounce */ - -/*! ./prevent-click */ - -/*! ./fetch */ - -/*!*************************!*\ - !*** ./src/util/max.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/util/min.js ***! - \*************************/ - -/*!******************************!*\ - !*** ./src/util/observer.js ***! - \******************************/ - -/*!***********************************!*\ - !*** ./src/util/prevent-click.js ***! - \***********************************/ - -/*!*********************************************!*\ - !*** ./src/util/request-animation-frame.js ***! - \*********************************************/ - -/*!***************************!*\ - !*** ./src/util/style.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/wavesurfer.js ***! - \***************************/ - -/*! ./drawer.multicanvas */ - -/*! ./peakcache */ - -/*! ./mediaelement-webaudio */ - -/*!*************************!*\ - !*** ./src/webaudio.js ***! - \*************************/ - -/*! https://mths.be/punycode v1.4.1 by @mathias */ +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/priv/static/packs/flavours/vanilla/home.js.map b/priv/static/packs/flavours/vanilla/home.js.map index a32b3005b..28aab11ac 100644 Binary files a/priv/static/packs/flavours/vanilla/home.js.map and b/priv/static/packs/flavours/vanilla/home.js.map differ diff --git a/priv/static/packs/flavours/vanilla/public.js b/priv/static/packs/flavours/vanilla/public.js index 6810fccc7..7f1a585ee 100644 Binary files a/priv/static/packs/flavours/vanilla/public.js and b/priv/static/packs/flavours/vanilla/public.js differ diff --git a/priv/static/packs/flavours/vanilla/public.js.LICENSE b/priv/static/packs/flavours/vanilla/public.js.LICENSE deleted file mode 100644 index 487bc60d8..000000000 --- a/priv/static/packs/flavours/vanilla/public.js.LICENSE +++ /dev/null @@ -1,41 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/** @license React v16.12.0 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v0.18.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/priv/static/packs/flavours/vanilla/public.js.LICENSE.txt b/priv/static/packs/flavours/vanilla/public.js.LICENSE.txt new file mode 100644 index 000000000..2196b2def --- /dev/null +++ b/priv/static/packs/flavours/vanilla/public.js.LICENSE.txt @@ -0,0 +1,41 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +/** @license React v0.19.0 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.12.0 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.0 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/priv/static/packs/flavours/vanilla/public.js.map b/priv/static/packs/flavours/vanilla/public.js.map index 18eb23360..df384658a 100644 Binary files a/priv/static/packs/flavours/vanilla/public.js.map and b/priv/static/packs/flavours/vanilla/public.js.map differ diff --git a/priv/static/packs/flavours/vanilla/settings.js b/priv/static/packs/flavours/vanilla/settings.js index cd7983274..21cfd13f4 100644 Binary files a/priv/static/packs/flavours/vanilla/settings.js and b/priv/static/packs/flavours/vanilla/settings.js differ diff --git a/priv/static/packs/flavours/vanilla/settings.js.LICENSE b/priv/static/packs/flavours/vanilla/settings.js.LICENSE deleted file mode 100644 index 487bc60d8..000000000 --- a/priv/static/packs/flavours/vanilla/settings.js.LICENSE +++ /dev/null @@ -1,41 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/** @license React v16.12.0 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v0.18.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/priv/static/packs/flavours/vanilla/settings.js.LICENSE.txt b/priv/static/packs/flavours/vanilla/settings.js.LICENSE.txt new file mode 100644 index 000000000..2196b2def --- /dev/null +++ b/priv/static/packs/flavours/vanilla/settings.js.LICENSE.txt @@ -0,0 +1,41 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +/** @license React v0.19.0 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.12.0 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.0 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/priv/static/packs/flavours/vanilla/settings.js.map b/priv/static/packs/flavours/vanilla/settings.js.map index d2789d073..92c015611 100644 Binary files a/priv/static/packs/flavours/vanilla/settings.js.map and b/priv/static/packs/flavours/vanilla/settings.js.map differ diff --git a/priv/static/packs/flavours/vanilla/share.js b/priv/static/packs/flavours/vanilla/share.js index 7efe63b00..fdfa039cb 100644 Binary files a/priv/static/packs/flavours/vanilla/share.js and b/priv/static/packs/flavours/vanilla/share.js differ diff --git a/priv/static/packs/flavours/vanilla/share.js.LICENSE b/priv/static/packs/flavours/vanilla/share.js.LICENSE.txt similarity index 98% rename from priv/static/packs/flavours/vanilla/share.js.LICENSE rename to priv/static/packs/flavours/vanilla/share.js.LICENSE.txt index 58e46bc71..2ea8cbae4 100644 --- a/priv/static/packs/flavours/vanilla/share.js.LICENSE +++ b/priv/static/packs/flavours/vanilla/share.js.LICENSE.txt @@ -1,3 +1,9 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + /*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see @@ -12,31 +18,143 @@ * MIT Licensed */ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/** @license React v16.12.0 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. +/*! + * wavesurfer.js 3.3.1 (2020-01-14) + * https://github.com/katspaugh/wavesurfer.js + * @license BSD-3-Clause */ -/** @license React v16.12.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ +/*! ./ajax */ -/** @license React v0.18.0 +/*! ./drawer */ + +/*! ./drawer.canvasentry */ + +/*! ./drawer.multicanvas */ + +/*! ./extend */ + +/*! ./fetch */ + +/*! ./frame */ + +/*! ./get-id */ + +/*! ./max */ + +/*! ./mediaelement */ + +/*! ./mediaelement-webaudio */ + +/*! ./min */ + +/*! ./observer */ + +/*! ./peakcache */ + +/*! ./prevent-click */ + +/*! ./request-animation-frame */ + +/*! ./style */ + +/*! ./util */ + +/*! ./util/get-id */ + +/*! ./util/style */ + +/*! ./webaudio */ + +/*! debounce */ + +/*! no static exports found */ + +/*!***********************!*\ + !*** ./src/drawer.js ***! + \***********************/ + +/*!*************************!*\ + !*** ./src/util/max.js ***! + \*************************/ + +/*!*************************!*\ + !*** ./src/util/min.js ***! + \*************************/ + +/*!*************************!*\ + !*** ./src/webaudio.js ***! + \*************************/ + +/*!**************************!*\ + !*** ./src/peakcache.js ***! + \**************************/ + +/*!**************************!*\ + !*** ./src/util/ajax.js ***! + \**************************/ + +/*!***************************!*\ + !*** ./src/util/fetch.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/frame.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/index.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/util/style.js ***! + \***************************/ + +/*!***************************!*\ + !*** ./src/wavesurfer.js ***! + \***************************/ + +/*!****************************!*\ + !*** ./src/util/extend.js ***! + \****************************/ + +/*!****************************!*\ + !*** ./src/util/get-id.js ***! + \****************************/ + +/*!*****************************!*\ + !*** ./src/mediaelement.js ***! + \*****************************/ + +/*!******************************!*\ + !*** ./src/util/observer.js ***! + \******************************/ + +/*!***********************************!*\ + !*** ./src/drawer.canvasentry.js ***! + \***********************************/ + +/*!***********************************!*\ + !*** ./src/drawer.multicanvas.js ***! + \***********************************/ + +/*!***********************************!*\ + !*** ./src/util/prevent-click.js ***! + \***********************************/ + +/*!**************************************!*\ + !*** ./src/mediaelement-webaudio.js ***! + \**************************************/ + +/*!****************************************!*\ + !*** ./node_modules/debounce/index.js ***! + \****************************************/ + +/*!*********************************************!*\ + !*** ./src/util/request-animation-frame.js ***! + \*********************************************/ + +/** @license React v0.19.0 * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -54,138 +172,20 @@ object-assign * LICENSE file in the root directory of this source tree. */ -/*! - * wavesurfer.js 3.3.1 (2020-01-14) - * https://github.com/katspaugh/wavesurfer.js - * @license BSD-3-Clause +/** @license React v16.13.0 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ -/*!****************************************!*\ - !*** ./node_modules/debounce/index.js ***! - \****************************************/ - -/*! no static exports found */ - -/*!***********************************!*\ - !*** ./src/drawer.canvasentry.js ***! - \***********************************/ - -/*! ./util/style */ - -/*! ./util/get-id */ - -/*!***********************!*\ - !*** ./src/drawer.js ***! - \***********************/ - -/*! ./util */ - -/*!***********************************!*\ - !*** ./src/drawer.multicanvas.js ***! - \***********************************/ - -/*! ./drawer */ - -/*! ./drawer.canvasentry */ - -/*!**************************************!*\ - !*** ./src/mediaelement-webaudio.js ***! - \**************************************/ - -/*! ./mediaelement */ - -/*!*****************************!*\ - !*** ./src/mediaelement.js ***! - \*****************************/ - -/*! ./webaudio */ - -/*!**************************!*\ - !*** ./src/peakcache.js ***! - \**************************/ - -/*!**************************!*\ - !*** ./src/util/ajax.js ***! - \**************************/ - -/*! ./observer */ - -/*!****************************!*\ - !*** ./src/util/extend.js ***! - \****************************/ - -/*!***************************!*\ - !*** ./src/util/fetch.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/frame.js ***! - \***************************/ - -/*! ./request-animation-frame */ - -/*!****************************!*\ - !*** ./src/util/get-id.js ***! - \****************************/ - -/*!***************************!*\ - !*** ./src/util/index.js ***! - \***************************/ - -/*! ./ajax */ - -/*! ./get-id */ - -/*! ./max */ - -/*! ./min */ - -/*! ./extend */ - -/*! ./style */ - -/*! ./frame */ - -/*! debounce */ - -/*! ./prevent-click */ - -/*! ./fetch */ - -/*!*************************!*\ - !*** ./src/util/max.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/util/min.js ***! - \*************************/ - -/*!******************************!*\ - !*** ./src/util/observer.js ***! - \******************************/ - -/*!***********************************!*\ - !*** ./src/util/prevent-click.js ***! - \***********************************/ - -/*!*********************************************!*\ - !*** ./src/util/request-animation-frame.js ***! - \*********************************************/ - -/*!***************************!*\ - !*** ./src/util/style.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/wavesurfer.js ***! - \***************************/ - -/*! ./drawer.multicanvas */ - -/*! ./peakcache */ - -/*! ./mediaelement-webaudio */ - -/*!*************************!*\ - !*** ./src/webaudio.js ***! - \*************************/ +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/priv/static/packs/flavours/vanilla/share.js.map b/priv/static/packs/flavours/vanilla/share.js.map index 52c37a2a1..8aefdd1c4 100644 Binary files a/priv/static/packs/flavours/vanilla/share.js.map and b/priv/static/packs/flavours/vanilla/share.js.map differ diff --git a/priv/static/packs/locales.js b/priv/static/packs/locales.js index 433c0d429..ad614f53b 100644 Binary files a/priv/static/packs/locales.js and b/priv/static/packs/locales.js differ diff --git a/priv/static/packs/locales.js.map b/priv/static/packs/locales.js.map index 134ab600d..45f8b2b61 100644 Binary files a/priv/static/packs/locales.js.map and b/priv/static/packs/locales.js.map differ diff --git a/priv/static/packs/locales/glitch/ar.js b/priv/static/packs/locales/glitch/ar.js index 8a0ba7b46..d99aca589 100644 Binary files a/priv/static/packs/locales/glitch/ar.js and b/priv/static/packs/locales/glitch/ar.js differ diff --git a/priv/static/packs/locales/glitch/ar.js.map b/priv/static/packs/locales/glitch/ar.js.map index c7eb80c27..86279ae70 100644 Binary files a/priv/static/packs/locales/glitch/ar.js.map and b/priv/static/packs/locales/glitch/ar.js.map differ diff --git a/priv/static/packs/locales/glitch/ast.js b/priv/static/packs/locales/glitch/ast.js index 85c8d227f..692011d30 100644 Binary files a/priv/static/packs/locales/glitch/ast.js and b/priv/static/packs/locales/glitch/ast.js differ diff --git a/priv/static/packs/locales/glitch/ast.js.map b/priv/static/packs/locales/glitch/ast.js.map index 7ae4686eb..7c0782e9d 100644 Binary files a/priv/static/packs/locales/glitch/ast.js.map and b/priv/static/packs/locales/glitch/ast.js.map differ diff --git a/priv/static/packs/locales/glitch/bg.js b/priv/static/packs/locales/glitch/bg.js index 5f093fc35..f657dbfdd 100644 Binary files a/priv/static/packs/locales/glitch/bg.js and b/priv/static/packs/locales/glitch/bg.js differ diff --git a/priv/static/packs/locales/glitch/bg.js.map b/priv/static/packs/locales/glitch/bg.js.map index 785293b7f..d881df95c 100644 Binary files a/priv/static/packs/locales/glitch/bg.js.map and b/priv/static/packs/locales/glitch/bg.js.map differ diff --git a/priv/static/packs/locales/glitch/bn.js b/priv/static/packs/locales/glitch/bn.js index af813f4f6..961c6ac85 100644 Binary files a/priv/static/packs/locales/glitch/bn.js and b/priv/static/packs/locales/glitch/bn.js differ diff --git a/priv/static/packs/locales/glitch/bn.js.map b/priv/static/packs/locales/glitch/bn.js.map index 319ae3adf..5af427b0f 100644 Binary files a/priv/static/packs/locales/glitch/bn.js.map and b/priv/static/packs/locales/glitch/bn.js.map differ diff --git a/priv/static/packs/locales/glitch/br.js b/priv/static/packs/locales/glitch/br.js index b4f8b1411..6db685b77 100644 Binary files a/priv/static/packs/locales/glitch/br.js and b/priv/static/packs/locales/glitch/br.js differ diff --git a/priv/static/packs/locales/glitch/br.js.map b/priv/static/packs/locales/glitch/br.js.map index ccef003ef..f1a4aa7fc 100644 Binary files a/priv/static/packs/locales/glitch/br.js.map and b/priv/static/packs/locales/glitch/br.js.map differ diff --git a/priv/static/packs/locales/glitch/ca.js b/priv/static/packs/locales/glitch/ca.js index 3f4a2544e..23b6e5a69 100644 Binary files a/priv/static/packs/locales/glitch/ca.js and b/priv/static/packs/locales/glitch/ca.js differ diff --git a/priv/static/packs/locales/glitch/ca.js.map b/priv/static/packs/locales/glitch/ca.js.map index 9322ae353..94b5ce457 100644 Binary files a/priv/static/packs/locales/glitch/ca.js.map and b/priv/static/packs/locales/glitch/ca.js.map differ diff --git a/priv/static/packs/locales/glitch/co.js b/priv/static/packs/locales/glitch/co.js index a9c0fdd98..986d0b547 100644 Binary files a/priv/static/packs/locales/glitch/co.js and b/priv/static/packs/locales/glitch/co.js differ diff --git a/priv/static/packs/locales/glitch/co.js.map b/priv/static/packs/locales/glitch/co.js.map index b959be024..e263b0566 100644 Binary files a/priv/static/packs/locales/glitch/co.js.map and b/priv/static/packs/locales/glitch/co.js.map differ diff --git a/priv/static/packs/locales/glitch/cs.js b/priv/static/packs/locales/glitch/cs.js index 1163f6e44..41b8c5938 100644 Binary files a/priv/static/packs/locales/glitch/cs.js and b/priv/static/packs/locales/glitch/cs.js differ diff --git a/priv/static/packs/locales/glitch/cs.js.map b/priv/static/packs/locales/glitch/cs.js.map index 9b382546f..04c3961a2 100644 Binary files a/priv/static/packs/locales/glitch/cs.js.map and b/priv/static/packs/locales/glitch/cs.js.map differ diff --git a/priv/static/packs/locales/glitch/cy.js b/priv/static/packs/locales/glitch/cy.js index b563d99c7..353d89efc 100644 Binary files a/priv/static/packs/locales/glitch/cy.js and b/priv/static/packs/locales/glitch/cy.js differ diff --git a/priv/static/packs/locales/glitch/cy.js.map b/priv/static/packs/locales/glitch/cy.js.map index 3ecea7c82..9f6f51fae 100644 Binary files a/priv/static/packs/locales/glitch/cy.js.map and b/priv/static/packs/locales/glitch/cy.js.map differ diff --git a/priv/static/packs/locales/glitch/da.js b/priv/static/packs/locales/glitch/da.js index c92db7ce5..6089d5e67 100644 Binary files a/priv/static/packs/locales/glitch/da.js and b/priv/static/packs/locales/glitch/da.js differ diff --git a/priv/static/packs/locales/glitch/da.js.map b/priv/static/packs/locales/glitch/da.js.map index ac132c436..4123e5095 100644 Binary files a/priv/static/packs/locales/glitch/da.js.map and b/priv/static/packs/locales/glitch/da.js.map differ diff --git a/priv/static/packs/locales/glitch/de.js b/priv/static/packs/locales/glitch/de.js index 7108ca09e..3692ac715 100644 Binary files a/priv/static/packs/locales/glitch/de.js and b/priv/static/packs/locales/glitch/de.js differ diff --git a/priv/static/packs/locales/glitch/de.js.map b/priv/static/packs/locales/glitch/de.js.map index 0f60052e3..0b379b1c0 100644 Binary files a/priv/static/packs/locales/glitch/de.js.map and b/priv/static/packs/locales/glitch/de.js.map differ diff --git a/priv/static/packs/locales/glitch/el.js b/priv/static/packs/locales/glitch/el.js index 65ca11a6e..2aa456032 100644 Binary files a/priv/static/packs/locales/glitch/el.js and b/priv/static/packs/locales/glitch/el.js differ diff --git a/priv/static/packs/locales/glitch/el.js.map b/priv/static/packs/locales/glitch/el.js.map index bb34a1d6e..628818b30 100644 Binary files a/priv/static/packs/locales/glitch/el.js.map and b/priv/static/packs/locales/glitch/el.js.map differ diff --git a/priv/static/packs/locales/glitch/en.js b/priv/static/packs/locales/glitch/en.js index 2c366a501..de94c6aa0 100644 Binary files a/priv/static/packs/locales/glitch/en.js and b/priv/static/packs/locales/glitch/en.js differ diff --git a/priv/static/packs/locales/glitch/en.js.map b/priv/static/packs/locales/glitch/en.js.map index cb9057773..a543edf11 100644 Binary files a/priv/static/packs/locales/glitch/en.js.map and b/priv/static/packs/locales/glitch/en.js.map differ diff --git a/priv/static/packs/locales/glitch/eo.js b/priv/static/packs/locales/glitch/eo.js index efa3859f4..406eb79cc 100644 Binary files a/priv/static/packs/locales/glitch/eo.js and b/priv/static/packs/locales/glitch/eo.js differ diff --git a/priv/static/packs/locales/glitch/eo.js.map b/priv/static/packs/locales/glitch/eo.js.map index 1b659c2f8..7e2ed6dfd 100644 Binary files a/priv/static/packs/locales/glitch/eo.js.map and b/priv/static/packs/locales/glitch/eo.js.map differ diff --git a/priv/static/packs/locales/glitch/es-AR.js b/priv/static/packs/locales/glitch/es-AR.js index f838642ef..b841aaaa6 100644 Binary files a/priv/static/packs/locales/glitch/es-AR.js and b/priv/static/packs/locales/glitch/es-AR.js differ diff --git a/priv/static/packs/locales/glitch/es-AR.js.map b/priv/static/packs/locales/glitch/es-AR.js.map index a0975a92e..414744318 100644 Binary files a/priv/static/packs/locales/glitch/es-AR.js.map and b/priv/static/packs/locales/glitch/es-AR.js.map differ diff --git a/priv/static/packs/locales/glitch/es.js b/priv/static/packs/locales/glitch/es.js index 4cbaa8f21..2395c7620 100644 Binary files a/priv/static/packs/locales/glitch/es.js and b/priv/static/packs/locales/glitch/es.js differ diff --git a/priv/static/packs/locales/glitch/es.js.map b/priv/static/packs/locales/glitch/es.js.map index 55feaa6f0..9f904dbd1 100644 Binary files a/priv/static/packs/locales/glitch/es.js.map and b/priv/static/packs/locales/glitch/es.js.map differ diff --git a/priv/static/packs/locales/glitch/et.js b/priv/static/packs/locales/glitch/et.js index d4ba1fe29..301d249d8 100644 Binary files a/priv/static/packs/locales/glitch/et.js and b/priv/static/packs/locales/glitch/et.js differ diff --git a/priv/static/packs/locales/glitch/et.js.map b/priv/static/packs/locales/glitch/et.js.map index 977da58e6..1ebdeed17 100644 Binary files a/priv/static/packs/locales/glitch/et.js.map and b/priv/static/packs/locales/glitch/et.js.map differ diff --git a/priv/static/packs/locales/glitch/eu.js b/priv/static/packs/locales/glitch/eu.js index 241b6563a..e4a114489 100644 Binary files a/priv/static/packs/locales/glitch/eu.js and b/priv/static/packs/locales/glitch/eu.js differ diff --git a/priv/static/packs/locales/glitch/eu.js.map b/priv/static/packs/locales/glitch/eu.js.map index 4f3ebea43..e19dfafed 100644 Binary files a/priv/static/packs/locales/glitch/eu.js.map and b/priv/static/packs/locales/glitch/eu.js.map differ diff --git a/priv/static/packs/locales/glitch/fa.js b/priv/static/packs/locales/glitch/fa.js index 7d80b332b..b39d7c8be 100644 Binary files a/priv/static/packs/locales/glitch/fa.js and b/priv/static/packs/locales/glitch/fa.js differ diff --git a/priv/static/packs/locales/glitch/fa.js.map b/priv/static/packs/locales/glitch/fa.js.map index a7d10fba0..9dc4cadc5 100644 Binary files a/priv/static/packs/locales/glitch/fa.js.map and b/priv/static/packs/locales/glitch/fa.js.map differ diff --git a/priv/static/packs/locales/glitch/fi.js b/priv/static/packs/locales/glitch/fi.js index f44bef546..891d5f510 100644 Binary files a/priv/static/packs/locales/glitch/fi.js and b/priv/static/packs/locales/glitch/fi.js differ diff --git a/priv/static/packs/locales/glitch/fi.js.map b/priv/static/packs/locales/glitch/fi.js.map index a1fd351f5..5257a095d 100644 Binary files a/priv/static/packs/locales/glitch/fi.js.map and b/priv/static/packs/locales/glitch/fi.js.map differ diff --git a/priv/static/packs/locales/glitch/fr.js b/priv/static/packs/locales/glitch/fr.js index 7b000a883..a347e27ca 100644 Binary files a/priv/static/packs/locales/glitch/fr.js and b/priv/static/packs/locales/glitch/fr.js differ diff --git a/priv/static/packs/locales/glitch/fr.js.map b/priv/static/packs/locales/glitch/fr.js.map index bc2b07d02..51f5f7911 100644 Binary files a/priv/static/packs/locales/glitch/fr.js.map and b/priv/static/packs/locales/glitch/fr.js.map differ diff --git a/priv/static/packs/locales/glitch/ga.js b/priv/static/packs/locales/glitch/ga.js index 927e24296..699637416 100644 Binary files a/priv/static/packs/locales/glitch/ga.js and b/priv/static/packs/locales/glitch/ga.js differ diff --git a/priv/static/packs/locales/glitch/ga.js.map b/priv/static/packs/locales/glitch/ga.js.map index 973a6b1d8..cd7be7d00 100644 Binary files a/priv/static/packs/locales/glitch/ga.js.map and b/priv/static/packs/locales/glitch/ga.js.map differ diff --git a/priv/static/packs/locales/glitch/gl.js b/priv/static/packs/locales/glitch/gl.js index 964b54a5b..f4194822b 100644 Binary files a/priv/static/packs/locales/glitch/gl.js and b/priv/static/packs/locales/glitch/gl.js differ diff --git a/priv/static/packs/locales/glitch/gl.js.map b/priv/static/packs/locales/glitch/gl.js.map index e87ec9a7b..3e6f840bd 100644 Binary files a/priv/static/packs/locales/glitch/gl.js.map and b/priv/static/packs/locales/glitch/gl.js.map differ diff --git a/priv/static/packs/locales/glitch/he.js b/priv/static/packs/locales/glitch/he.js index e433e68dc..76bf1117e 100644 Binary files a/priv/static/packs/locales/glitch/he.js and b/priv/static/packs/locales/glitch/he.js differ diff --git a/priv/static/packs/locales/glitch/he.js.map b/priv/static/packs/locales/glitch/he.js.map index c0c5bc33d..112537ef6 100644 Binary files a/priv/static/packs/locales/glitch/he.js.map and b/priv/static/packs/locales/glitch/he.js.map differ diff --git a/priv/static/packs/locales/glitch/hi.js b/priv/static/packs/locales/glitch/hi.js index db38a62b8..31abe01f0 100644 Binary files a/priv/static/packs/locales/glitch/hi.js and b/priv/static/packs/locales/glitch/hi.js differ diff --git a/priv/static/packs/locales/glitch/hi.js.map b/priv/static/packs/locales/glitch/hi.js.map index 4a944f819..b5417c255 100644 Binary files a/priv/static/packs/locales/glitch/hi.js.map and b/priv/static/packs/locales/glitch/hi.js.map differ diff --git a/priv/static/packs/locales/glitch/hr.js b/priv/static/packs/locales/glitch/hr.js index 1230ef6bd..fe52cd08c 100644 Binary files a/priv/static/packs/locales/glitch/hr.js and b/priv/static/packs/locales/glitch/hr.js differ diff --git a/priv/static/packs/locales/glitch/hr.js.map b/priv/static/packs/locales/glitch/hr.js.map index 8279a2ee3..fb5486977 100644 Binary files a/priv/static/packs/locales/glitch/hr.js.map and b/priv/static/packs/locales/glitch/hr.js.map differ diff --git a/priv/static/packs/locales/glitch/hu.js b/priv/static/packs/locales/glitch/hu.js index cb3f8fdc2..682ca2159 100644 Binary files a/priv/static/packs/locales/glitch/hu.js and b/priv/static/packs/locales/glitch/hu.js differ diff --git a/priv/static/packs/locales/glitch/hu.js.map b/priv/static/packs/locales/glitch/hu.js.map index 6cf72dd63..127ec071b 100644 Binary files a/priv/static/packs/locales/glitch/hu.js.map and b/priv/static/packs/locales/glitch/hu.js.map differ diff --git a/priv/static/packs/locales/glitch/hy.js b/priv/static/packs/locales/glitch/hy.js index cc7b75474..f2011b0e3 100644 Binary files a/priv/static/packs/locales/glitch/hy.js and b/priv/static/packs/locales/glitch/hy.js differ diff --git a/priv/static/packs/locales/glitch/hy.js.map b/priv/static/packs/locales/glitch/hy.js.map index 312575745..db9fdc1f9 100644 Binary files a/priv/static/packs/locales/glitch/hy.js.map and b/priv/static/packs/locales/glitch/hy.js.map differ diff --git a/priv/static/packs/locales/glitch/id.js b/priv/static/packs/locales/glitch/id.js index b6404585b..6ca78b22c 100644 Binary files a/priv/static/packs/locales/glitch/id.js and b/priv/static/packs/locales/glitch/id.js differ diff --git a/priv/static/packs/locales/glitch/id.js.map b/priv/static/packs/locales/glitch/id.js.map index b4dcf75b2..ab59c6e02 100644 Binary files a/priv/static/packs/locales/glitch/id.js.map and b/priv/static/packs/locales/glitch/id.js.map differ diff --git a/priv/static/packs/locales/glitch/io.js b/priv/static/packs/locales/glitch/io.js index 97a6738a0..074da73b8 100644 Binary files a/priv/static/packs/locales/glitch/io.js and b/priv/static/packs/locales/glitch/io.js differ diff --git a/priv/static/packs/locales/glitch/io.js.map b/priv/static/packs/locales/glitch/io.js.map index 5dab3979d..89999c4c1 100644 Binary files a/priv/static/packs/locales/glitch/io.js.map and b/priv/static/packs/locales/glitch/io.js.map differ diff --git a/priv/static/packs/locales/glitch/is.js b/priv/static/packs/locales/glitch/is.js index bc9b34f29..ec9436d27 100644 Binary files a/priv/static/packs/locales/glitch/is.js and b/priv/static/packs/locales/glitch/is.js differ diff --git a/priv/static/packs/locales/glitch/is.js.map b/priv/static/packs/locales/glitch/is.js.map index 30afc9926..054176ba2 100644 Binary files a/priv/static/packs/locales/glitch/is.js.map and b/priv/static/packs/locales/glitch/is.js.map differ diff --git a/priv/static/packs/locales/glitch/it.js b/priv/static/packs/locales/glitch/it.js index 9fbb63879..d43b84c3b 100644 Binary files a/priv/static/packs/locales/glitch/it.js and b/priv/static/packs/locales/glitch/it.js differ diff --git a/priv/static/packs/locales/glitch/it.js.map b/priv/static/packs/locales/glitch/it.js.map index 1b8965bcc..54575e8f4 100644 Binary files a/priv/static/packs/locales/glitch/it.js.map and b/priv/static/packs/locales/glitch/it.js.map differ diff --git a/priv/static/packs/locales/glitch/ja.js b/priv/static/packs/locales/glitch/ja.js index bb38c4897..a3b5e4e67 100644 Binary files a/priv/static/packs/locales/glitch/ja.js and b/priv/static/packs/locales/glitch/ja.js differ diff --git a/priv/static/packs/locales/glitch/ja.js.map b/priv/static/packs/locales/glitch/ja.js.map index 6cb25f836..85cff94e4 100644 Binary files a/priv/static/packs/locales/glitch/ja.js.map and b/priv/static/packs/locales/glitch/ja.js.map differ diff --git a/priv/static/packs/locales/glitch/ka.js b/priv/static/packs/locales/glitch/ka.js index e4b32a068..c68203d60 100644 Binary files a/priv/static/packs/locales/glitch/ka.js and b/priv/static/packs/locales/glitch/ka.js differ diff --git a/priv/static/packs/locales/glitch/ka.js.map b/priv/static/packs/locales/glitch/ka.js.map index 0e49e8a7a..51ec3c320 100644 Binary files a/priv/static/packs/locales/glitch/ka.js.map and b/priv/static/packs/locales/glitch/ka.js.map differ diff --git a/priv/static/packs/locales/glitch/kab.js b/priv/static/packs/locales/glitch/kab.js index 6cbce4c04..38367c712 100644 Binary files a/priv/static/packs/locales/glitch/kab.js and b/priv/static/packs/locales/glitch/kab.js differ diff --git a/priv/static/packs/locales/glitch/kab.js.map b/priv/static/packs/locales/glitch/kab.js.map index 28eed3207..0fb9d18d9 100644 Binary files a/priv/static/packs/locales/glitch/kab.js.map and b/priv/static/packs/locales/glitch/kab.js.map differ diff --git a/priv/static/packs/locales/glitch/kk.js b/priv/static/packs/locales/glitch/kk.js index 0faca2334..328c5caef 100644 Binary files a/priv/static/packs/locales/glitch/kk.js and b/priv/static/packs/locales/glitch/kk.js differ diff --git a/priv/static/packs/locales/glitch/kk.js.map b/priv/static/packs/locales/glitch/kk.js.map index e802ba374..71a3e55fd 100644 Binary files a/priv/static/packs/locales/glitch/kk.js.map and b/priv/static/packs/locales/glitch/kk.js.map differ diff --git a/priv/static/packs/locales/glitch/kn.js b/priv/static/packs/locales/glitch/kn.js index aeed46c13..d6920594d 100644 Binary files a/priv/static/packs/locales/glitch/kn.js and b/priv/static/packs/locales/glitch/kn.js differ diff --git a/priv/static/packs/locales/glitch/kn.js.map b/priv/static/packs/locales/glitch/kn.js.map index 77cb0271c..1d2cfb6e2 100644 Binary files a/priv/static/packs/locales/glitch/kn.js.map and b/priv/static/packs/locales/glitch/kn.js.map differ diff --git a/priv/static/packs/locales/glitch/ko.js b/priv/static/packs/locales/glitch/ko.js index 4600783d6..8ee071c52 100644 Binary files a/priv/static/packs/locales/glitch/ko.js and b/priv/static/packs/locales/glitch/ko.js differ diff --git a/priv/static/packs/locales/glitch/ko.js.map b/priv/static/packs/locales/glitch/ko.js.map index 4ced3f971..b3c6ad083 100644 Binary files a/priv/static/packs/locales/glitch/ko.js.map and b/priv/static/packs/locales/glitch/ko.js.map differ diff --git a/priv/static/packs/locales/glitch/lt.js b/priv/static/packs/locales/glitch/lt.js index 9c3f5bd03..f8374f9d2 100644 Binary files a/priv/static/packs/locales/glitch/lt.js and b/priv/static/packs/locales/glitch/lt.js differ diff --git a/priv/static/packs/locales/glitch/lt.js.map b/priv/static/packs/locales/glitch/lt.js.map index 7c0fc3d5b..93f2b59df 100644 Binary files a/priv/static/packs/locales/glitch/lt.js.map and b/priv/static/packs/locales/glitch/lt.js.map differ diff --git a/priv/static/packs/locales/glitch/lv.js b/priv/static/packs/locales/glitch/lv.js index 96162a9eb..a625417cd 100644 Binary files a/priv/static/packs/locales/glitch/lv.js and b/priv/static/packs/locales/glitch/lv.js differ diff --git a/priv/static/packs/locales/glitch/lv.js.map b/priv/static/packs/locales/glitch/lv.js.map index 0601ecdb6..034556730 100644 Binary files a/priv/static/packs/locales/glitch/lv.js.map and b/priv/static/packs/locales/glitch/lv.js.map differ diff --git a/priv/static/packs/locales/glitch/mk.js b/priv/static/packs/locales/glitch/mk.js index 3ab2cdcb2..d1aa2c57d 100644 Binary files a/priv/static/packs/locales/glitch/mk.js and b/priv/static/packs/locales/glitch/mk.js differ diff --git a/priv/static/packs/locales/glitch/mk.js.map b/priv/static/packs/locales/glitch/mk.js.map index 915ef6d06..650c0520c 100644 Binary files a/priv/static/packs/locales/glitch/mk.js.map and b/priv/static/packs/locales/glitch/mk.js.map differ diff --git a/priv/static/packs/locales/glitch/ml.js b/priv/static/packs/locales/glitch/ml.js index 28123c440..817c72647 100644 Binary files a/priv/static/packs/locales/glitch/ml.js and b/priv/static/packs/locales/glitch/ml.js differ diff --git a/priv/static/packs/locales/glitch/ml.js.map b/priv/static/packs/locales/glitch/ml.js.map index 3711ae7df..319cca685 100644 Binary files a/priv/static/packs/locales/glitch/ml.js.map and b/priv/static/packs/locales/glitch/ml.js.map differ diff --git a/priv/static/packs/locales/glitch/mr.js b/priv/static/packs/locales/glitch/mr.js index 7f30dc141..73ede96fe 100644 Binary files a/priv/static/packs/locales/glitch/mr.js and b/priv/static/packs/locales/glitch/mr.js differ diff --git a/priv/static/packs/locales/glitch/mr.js.map b/priv/static/packs/locales/glitch/mr.js.map index 87356e45b..f6ee01063 100644 Binary files a/priv/static/packs/locales/glitch/mr.js.map and b/priv/static/packs/locales/glitch/mr.js.map differ diff --git a/priv/static/packs/locales/glitch/ms.js b/priv/static/packs/locales/glitch/ms.js index 6f4a4f059..549ef5cdc 100644 Binary files a/priv/static/packs/locales/glitch/ms.js and b/priv/static/packs/locales/glitch/ms.js differ diff --git a/priv/static/packs/locales/glitch/ms.js.map b/priv/static/packs/locales/glitch/ms.js.map index 7ab26e470..c3814701a 100644 Binary files a/priv/static/packs/locales/glitch/ms.js.map and b/priv/static/packs/locales/glitch/ms.js.map differ diff --git a/priv/static/packs/locales/glitch/nl.js b/priv/static/packs/locales/glitch/nl.js index 59c26947e..e38907733 100644 Binary files a/priv/static/packs/locales/glitch/nl.js and b/priv/static/packs/locales/glitch/nl.js differ diff --git a/priv/static/packs/locales/glitch/nl.js.map b/priv/static/packs/locales/glitch/nl.js.map index 501dd33b9..f975976d6 100644 Binary files a/priv/static/packs/locales/glitch/nl.js.map and b/priv/static/packs/locales/glitch/nl.js.map differ diff --git a/priv/static/packs/locales/glitch/nn.js b/priv/static/packs/locales/glitch/nn.js index b58e0e0e9..3aefbec9c 100644 Binary files a/priv/static/packs/locales/glitch/nn.js and b/priv/static/packs/locales/glitch/nn.js differ diff --git a/priv/static/packs/locales/glitch/nn.js.map b/priv/static/packs/locales/glitch/nn.js.map index ef2bd2759..fc106bc1a 100644 Binary files a/priv/static/packs/locales/glitch/nn.js.map and b/priv/static/packs/locales/glitch/nn.js.map differ diff --git a/priv/static/packs/locales/glitch/no.js b/priv/static/packs/locales/glitch/no.js index 6f372666b..d386209be 100644 Binary files a/priv/static/packs/locales/glitch/no.js and b/priv/static/packs/locales/glitch/no.js differ diff --git a/priv/static/packs/locales/glitch/no.js.map b/priv/static/packs/locales/glitch/no.js.map index 375fb7e7f..f1b9b20c9 100644 Binary files a/priv/static/packs/locales/glitch/no.js.map and b/priv/static/packs/locales/glitch/no.js.map differ diff --git a/priv/static/packs/locales/glitch/oc.js b/priv/static/packs/locales/glitch/oc.js index 56bed8938..820d2dc81 100644 Binary files a/priv/static/packs/locales/glitch/oc.js and b/priv/static/packs/locales/glitch/oc.js differ diff --git a/priv/static/packs/locales/glitch/oc.js.map b/priv/static/packs/locales/glitch/oc.js.map index 24974675c..29b6cbdb1 100644 Binary files a/priv/static/packs/locales/glitch/oc.js.map and b/priv/static/packs/locales/glitch/oc.js.map differ diff --git a/priv/static/packs/locales/glitch/pl.js b/priv/static/packs/locales/glitch/pl.js index d1684d3a2..7bdeb1088 100644 Binary files a/priv/static/packs/locales/glitch/pl.js and b/priv/static/packs/locales/glitch/pl.js differ diff --git a/priv/static/packs/locales/glitch/pl.js.map b/priv/static/packs/locales/glitch/pl.js.map index 7bfd358ee..470de5ebe 100644 Binary files a/priv/static/packs/locales/glitch/pl.js.map and b/priv/static/packs/locales/glitch/pl.js.map differ diff --git a/priv/static/packs/locales/glitch/pt-BR.js b/priv/static/packs/locales/glitch/pt-BR.js index dbd2e04c9..08950cd4d 100644 Binary files a/priv/static/packs/locales/glitch/pt-BR.js and b/priv/static/packs/locales/glitch/pt-BR.js differ diff --git a/priv/static/packs/locales/glitch/pt-BR.js.map b/priv/static/packs/locales/glitch/pt-BR.js.map index b27f848cc..584e0e410 100644 Binary files a/priv/static/packs/locales/glitch/pt-BR.js.map and b/priv/static/packs/locales/glitch/pt-BR.js.map differ diff --git a/priv/static/packs/locales/glitch/pt-PT.js b/priv/static/packs/locales/glitch/pt-PT.js index 09f100392..83d72b3fc 100644 Binary files a/priv/static/packs/locales/glitch/pt-PT.js and b/priv/static/packs/locales/glitch/pt-PT.js differ diff --git a/priv/static/packs/locales/glitch/pt-PT.js.map b/priv/static/packs/locales/glitch/pt-PT.js.map index f3f1d1200..51a2aa03f 100644 Binary files a/priv/static/packs/locales/glitch/pt-PT.js.map and b/priv/static/packs/locales/glitch/pt-PT.js.map differ diff --git a/priv/static/packs/locales/glitch/ro.js b/priv/static/packs/locales/glitch/ro.js index 2bec5b1d1..667af3651 100644 Binary files a/priv/static/packs/locales/glitch/ro.js and b/priv/static/packs/locales/glitch/ro.js differ diff --git a/priv/static/packs/locales/glitch/ro.js.map b/priv/static/packs/locales/glitch/ro.js.map index fccc7736d..3fd116429 100644 Binary files a/priv/static/packs/locales/glitch/ro.js.map and b/priv/static/packs/locales/glitch/ro.js.map differ diff --git a/priv/static/packs/locales/glitch/ru.js b/priv/static/packs/locales/glitch/ru.js index 6caa8d668..44c66bd7d 100644 Binary files a/priv/static/packs/locales/glitch/ru.js and b/priv/static/packs/locales/glitch/ru.js differ diff --git a/priv/static/packs/locales/glitch/ru.js.map b/priv/static/packs/locales/glitch/ru.js.map index 88dba64a9..f4bcd78fb 100644 Binary files a/priv/static/packs/locales/glitch/ru.js.map and b/priv/static/packs/locales/glitch/ru.js.map differ diff --git a/priv/static/packs/locales/glitch/sk.js b/priv/static/packs/locales/glitch/sk.js index 65e1e5e8a..9476a2f58 100644 Binary files a/priv/static/packs/locales/glitch/sk.js and b/priv/static/packs/locales/glitch/sk.js differ diff --git a/priv/static/packs/locales/glitch/sk.js.map b/priv/static/packs/locales/glitch/sk.js.map index a6f88af3c..747cb346d 100644 Binary files a/priv/static/packs/locales/glitch/sk.js.map and b/priv/static/packs/locales/glitch/sk.js.map differ diff --git a/priv/static/packs/locales/glitch/sl.js b/priv/static/packs/locales/glitch/sl.js index 6e1e09a12..4d99f2414 100644 Binary files a/priv/static/packs/locales/glitch/sl.js and b/priv/static/packs/locales/glitch/sl.js differ diff --git a/priv/static/packs/locales/glitch/sl.js.map b/priv/static/packs/locales/glitch/sl.js.map index ab1bc4134..805563fa1 100644 Binary files a/priv/static/packs/locales/glitch/sl.js.map and b/priv/static/packs/locales/glitch/sl.js.map differ diff --git a/priv/static/packs/locales/glitch/sq.js b/priv/static/packs/locales/glitch/sq.js index 3c01b8e28..3b0bcce3b 100644 Binary files a/priv/static/packs/locales/glitch/sq.js and b/priv/static/packs/locales/glitch/sq.js differ diff --git a/priv/static/packs/locales/glitch/sq.js.map b/priv/static/packs/locales/glitch/sq.js.map index d2f5392e3..17be693bf 100644 Binary files a/priv/static/packs/locales/glitch/sq.js.map and b/priv/static/packs/locales/glitch/sq.js.map differ diff --git a/priv/static/packs/locales/glitch/sr-Latn.js b/priv/static/packs/locales/glitch/sr-Latn.js index fb2be7e67..7613638cb 100644 Binary files a/priv/static/packs/locales/glitch/sr-Latn.js and b/priv/static/packs/locales/glitch/sr-Latn.js differ diff --git a/priv/static/packs/locales/glitch/sr-Latn.js.map b/priv/static/packs/locales/glitch/sr-Latn.js.map index 3557bb908..89ab44978 100644 Binary files a/priv/static/packs/locales/glitch/sr-Latn.js.map and b/priv/static/packs/locales/glitch/sr-Latn.js.map differ diff --git a/priv/static/packs/locales/glitch/sr.js b/priv/static/packs/locales/glitch/sr.js index 7d9c50942..e772dda4f 100644 Binary files a/priv/static/packs/locales/glitch/sr.js and b/priv/static/packs/locales/glitch/sr.js differ diff --git a/priv/static/packs/locales/glitch/sr.js.map b/priv/static/packs/locales/glitch/sr.js.map index 44f0dbb70..cf7001869 100644 Binary files a/priv/static/packs/locales/glitch/sr.js.map and b/priv/static/packs/locales/glitch/sr.js.map differ diff --git a/priv/static/packs/locales/glitch/sv.js b/priv/static/packs/locales/glitch/sv.js index feda6682c..549120a2a 100644 Binary files a/priv/static/packs/locales/glitch/sv.js and b/priv/static/packs/locales/glitch/sv.js differ diff --git a/priv/static/packs/locales/glitch/sv.js.map b/priv/static/packs/locales/glitch/sv.js.map index 367a2e89c..6db7b18b9 100644 Binary files a/priv/static/packs/locales/glitch/sv.js.map and b/priv/static/packs/locales/glitch/sv.js.map differ diff --git a/priv/static/packs/locales/glitch/ta.js b/priv/static/packs/locales/glitch/ta.js index 81fe1ff5e..ec8b2b111 100644 Binary files a/priv/static/packs/locales/glitch/ta.js and b/priv/static/packs/locales/glitch/ta.js differ diff --git a/priv/static/packs/locales/glitch/ta.js.map b/priv/static/packs/locales/glitch/ta.js.map index a67fb4e1f..b7e271261 100644 Binary files a/priv/static/packs/locales/glitch/ta.js.map and b/priv/static/packs/locales/glitch/ta.js.map differ diff --git a/priv/static/packs/locales/glitch/te.js b/priv/static/packs/locales/glitch/te.js index 9ff95c237..d7e85ee36 100644 Binary files a/priv/static/packs/locales/glitch/te.js and b/priv/static/packs/locales/glitch/te.js differ diff --git a/priv/static/packs/locales/glitch/te.js.map b/priv/static/packs/locales/glitch/te.js.map index a5f81b52a..a58e520cb 100644 Binary files a/priv/static/packs/locales/glitch/te.js.map and b/priv/static/packs/locales/glitch/te.js.map differ diff --git a/priv/static/packs/locales/glitch/th.js b/priv/static/packs/locales/glitch/th.js index d86f43e10..4cbdcbcf5 100644 Binary files a/priv/static/packs/locales/glitch/th.js and b/priv/static/packs/locales/glitch/th.js differ diff --git a/priv/static/packs/locales/glitch/th.js.map b/priv/static/packs/locales/glitch/th.js.map index 4e17eb892..65e5c656b 100644 Binary files a/priv/static/packs/locales/glitch/th.js.map and b/priv/static/packs/locales/glitch/th.js.map differ diff --git a/priv/static/packs/locales/glitch/tr.js b/priv/static/packs/locales/glitch/tr.js index 091ec391b..5c6386138 100644 Binary files a/priv/static/packs/locales/glitch/tr.js and b/priv/static/packs/locales/glitch/tr.js differ diff --git a/priv/static/packs/locales/glitch/tr.js.map b/priv/static/packs/locales/glitch/tr.js.map index b8ab1f599..0ed931331 100644 Binary files a/priv/static/packs/locales/glitch/tr.js.map and b/priv/static/packs/locales/glitch/tr.js.map differ diff --git a/priv/static/packs/locales/glitch/uk.js b/priv/static/packs/locales/glitch/uk.js index fc00bdc76..04388c934 100644 Binary files a/priv/static/packs/locales/glitch/uk.js and b/priv/static/packs/locales/glitch/uk.js differ diff --git a/priv/static/packs/locales/glitch/uk.js.map b/priv/static/packs/locales/glitch/uk.js.map index 7ec9350cf..803672f6f 100644 Binary files a/priv/static/packs/locales/glitch/uk.js.map and b/priv/static/packs/locales/glitch/uk.js.map differ diff --git a/priv/static/packs/locales/glitch/ur.js b/priv/static/packs/locales/glitch/ur.js index c365028a1..cb9988dd4 100644 Binary files a/priv/static/packs/locales/glitch/ur.js and b/priv/static/packs/locales/glitch/ur.js differ diff --git a/priv/static/packs/locales/glitch/ur.js.map b/priv/static/packs/locales/glitch/ur.js.map index 8df87f4e4..204bc365f 100644 Binary files a/priv/static/packs/locales/glitch/ur.js.map and b/priv/static/packs/locales/glitch/ur.js.map differ diff --git a/priv/static/packs/locales/glitch/vi.js b/priv/static/packs/locales/glitch/vi.js index c881b97ff..b45ffbc87 100644 Binary files a/priv/static/packs/locales/glitch/vi.js and b/priv/static/packs/locales/glitch/vi.js differ diff --git a/priv/static/packs/locales/glitch/vi.js.map b/priv/static/packs/locales/glitch/vi.js.map index 6b0faec01..11fc5629a 100644 Binary files a/priv/static/packs/locales/glitch/vi.js.map and b/priv/static/packs/locales/glitch/vi.js.map differ diff --git a/priv/static/packs/locales/glitch/zh-CN.js b/priv/static/packs/locales/glitch/zh-CN.js index c6ed12a3a..e3fbce7e1 100644 Binary files a/priv/static/packs/locales/glitch/zh-CN.js and b/priv/static/packs/locales/glitch/zh-CN.js differ diff --git a/priv/static/packs/locales/glitch/zh-CN.js.map b/priv/static/packs/locales/glitch/zh-CN.js.map index 024666d64..96a461367 100644 Binary files a/priv/static/packs/locales/glitch/zh-CN.js.map and b/priv/static/packs/locales/glitch/zh-CN.js.map differ diff --git a/priv/static/packs/locales/glitch/zh-HK.js b/priv/static/packs/locales/glitch/zh-HK.js index 79aafff13..0690558e6 100644 Binary files a/priv/static/packs/locales/glitch/zh-HK.js and b/priv/static/packs/locales/glitch/zh-HK.js differ diff --git a/priv/static/packs/locales/glitch/zh-HK.js.map b/priv/static/packs/locales/glitch/zh-HK.js.map index 18dd8ffad..1b64d826f 100644 Binary files a/priv/static/packs/locales/glitch/zh-HK.js.map and b/priv/static/packs/locales/glitch/zh-HK.js.map differ diff --git a/priv/static/packs/locales/glitch/zh-TW.js b/priv/static/packs/locales/glitch/zh-TW.js index 5ec359e10..4a9ec7186 100644 Binary files a/priv/static/packs/locales/glitch/zh-TW.js and b/priv/static/packs/locales/glitch/zh-TW.js differ diff --git a/priv/static/packs/locales/glitch/zh-TW.js.map b/priv/static/packs/locales/glitch/zh-TW.js.map index bb0634947..ef62a54ff 100644 Binary files a/priv/static/packs/locales/glitch/zh-TW.js.map and b/priv/static/packs/locales/glitch/zh-TW.js.map differ diff --git a/priv/static/packs/locales/vanilla/ar.js b/priv/static/packs/locales/vanilla/ar.js index 1dd13b40f..6b4181bd5 100644 Binary files a/priv/static/packs/locales/vanilla/ar.js and b/priv/static/packs/locales/vanilla/ar.js differ diff --git a/priv/static/packs/locales/vanilla/ar.js.map b/priv/static/packs/locales/vanilla/ar.js.map index 7e305f0cf..1802fd3f8 100644 Binary files a/priv/static/packs/locales/vanilla/ar.js.map and b/priv/static/packs/locales/vanilla/ar.js.map differ diff --git a/priv/static/packs/locales/vanilla/ast.js b/priv/static/packs/locales/vanilla/ast.js index 0b505c496..376afbe70 100644 Binary files a/priv/static/packs/locales/vanilla/ast.js and b/priv/static/packs/locales/vanilla/ast.js differ diff --git a/priv/static/packs/locales/vanilla/ast.js.map b/priv/static/packs/locales/vanilla/ast.js.map index dae5f5c19..ac9e083d8 100644 Binary files a/priv/static/packs/locales/vanilla/ast.js.map and b/priv/static/packs/locales/vanilla/ast.js.map differ diff --git a/priv/static/packs/locales/vanilla/bg.js b/priv/static/packs/locales/vanilla/bg.js index a2389e8f1..272033cc2 100644 Binary files a/priv/static/packs/locales/vanilla/bg.js and b/priv/static/packs/locales/vanilla/bg.js differ diff --git a/priv/static/packs/locales/vanilla/bg.js.map b/priv/static/packs/locales/vanilla/bg.js.map index 0df1dbb7e..ec253ea61 100644 Binary files a/priv/static/packs/locales/vanilla/bg.js.map and b/priv/static/packs/locales/vanilla/bg.js.map differ diff --git a/priv/static/packs/locales/vanilla/bn.js b/priv/static/packs/locales/vanilla/bn.js index 24f8b350f..ebdf68537 100644 Binary files a/priv/static/packs/locales/vanilla/bn.js and b/priv/static/packs/locales/vanilla/bn.js differ diff --git a/priv/static/packs/locales/vanilla/bn.js.map b/priv/static/packs/locales/vanilla/bn.js.map index deb68b0a5..45a9c014e 100644 Binary files a/priv/static/packs/locales/vanilla/bn.js.map and b/priv/static/packs/locales/vanilla/bn.js.map differ diff --git a/priv/static/packs/locales/vanilla/br.js b/priv/static/packs/locales/vanilla/br.js index 741262bf4..f6ab20245 100644 Binary files a/priv/static/packs/locales/vanilla/br.js and b/priv/static/packs/locales/vanilla/br.js differ diff --git a/priv/static/packs/locales/vanilla/br.js.map b/priv/static/packs/locales/vanilla/br.js.map index 994a36723..6d53acc51 100644 Binary files a/priv/static/packs/locales/vanilla/br.js.map and b/priv/static/packs/locales/vanilla/br.js.map differ diff --git a/priv/static/packs/locales/vanilla/ca.js b/priv/static/packs/locales/vanilla/ca.js index 2b5adff9d..e8453b5b9 100644 Binary files a/priv/static/packs/locales/vanilla/ca.js and b/priv/static/packs/locales/vanilla/ca.js differ diff --git a/priv/static/packs/locales/vanilla/ca.js.map b/priv/static/packs/locales/vanilla/ca.js.map index 35c2ed352..b0f1a6789 100644 Binary files a/priv/static/packs/locales/vanilla/ca.js.map and b/priv/static/packs/locales/vanilla/ca.js.map differ diff --git a/priv/static/packs/locales/vanilla/co.js b/priv/static/packs/locales/vanilla/co.js index c2bf0f920..9bbc5f461 100644 Binary files a/priv/static/packs/locales/vanilla/co.js and b/priv/static/packs/locales/vanilla/co.js differ diff --git a/priv/static/packs/locales/vanilla/co.js.map b/priv/static/packs/locales/vanilla/co.js.map index ec94caa16..303dbdf41 100644 Binary files a/priv/static/packs/locales/vanilla/co.js.map and b/priv/static/packs/locales/vanilla/co.js.map differ diff --git a/priv/static/packs/locales/vanilla/cs.js b/priv/static/packs/locales/vanilla/cs.js index 1272736fd..d5ea53c06 100644 Binary files a/priv/static/packs/locales/vanilla/cs.js and b/priv/static/packs/locales/vanilla/cs.js differ diff --git a/priv/static/packs/locales/vanilla/cs.js.map b/priv/static/packs/locales/vanilla/cs.js.map index 2fcac0fd2..253a990b7 100644 Binary files a/priv/static/packs/locales/vanilla/cs.js.map and b/priv/static/packs/locales/vanilla/cs.js.map differ diff --git a/priv/static/packs/locales/vanilla/cy.js b/priv/static/packs/locales/vanilla/cy.js index d6edb602c..9c41b6da4 100644 Binary files a/priv/static/packs/locales/vanilla/cy.js and b/priv/static/packs/locales/vanilla/cy.js differ diff --git a/priv/static/packs/locales/vanilla/cy.js.map b/priv/static/packs/locales/vanilla/cy.js.map index 83b72c10b..33ea782c7 100644 Binary files a/priv/static/packs/locales/vanilla/cy.js.map and b/priv/static/packs/locales/vanilla/cy.js.map differ diff --git a/priv/static/packs/locales/vanilla/da.js b/priv/static/packs/locales/vanilla/da.js index 139341108..6f12d46dc 100644 Binary files a/priv/static/packs/locales/vanilla/da.js and b/priv/static/packs/locales/vanilla/da.js differ diff --git a/priv/static/packs/locales/vanilla/da.js.map b/priv/static/packs/locales/vanilla/da.js.map index 0f8da806a..c3d938e88 100644 Binary files a/priv/static/packs/locales/vanilla/da.js.map and b/priv/static/packs/locales/vanilla/da.js.map differ diff --git a/priv/static/packs/locales/vanilla/de.js b/priv/static/packs/locales/vanilla/de.js index fe0e254e4..268accd2f 100644 Binary files a/priv/static/packs/locales/vanilla/de.js and b/priv/static/packs/locales/vanilla/de.js differ diff --git a/priv/static/packs/locales/vanilla/de.js.map b/priv/static/packs/locales/vanilla/de.js.map index a33f920c0..3b1203043 100644 Binary files a/priv/static/packs/locales/vanilla/de.js.map and b/priv/static/packs/locales/vanilla/de.js.map differ diff --git a/priv/static/packs/locales/vanilla/el.js b/priv/static/packs/locales/vanilla/el.js index 57efdd693..2dd5a9895 100644 Binary files a/priv/static/packs/locales/vanilla/el.js and b/priv/static/packs/locales/vanilla/el.js differ diff --git a/priv/static/packs/locales/vanilla/el.js.map b/priv/static/packs/locales/vanilla/el.js.map index a0b0f7f07..612980507 100644 Binary files a/priv/static/packs/locales/vanilla/el.js.map and b/priv/static/packs/locales/vanilla/el.js.map differ diff --git a/priv/static/packs/locales/vanilla/en.js b/priv/static/packs/locales/vanilla/en.js index ff8617a8f..226dde828 100644 Binary files a/priv/static/packs/locales/vanilla/en.js and b/priv/static/packs/locales/vanilla/en.js differ diff --git a/priv/static/packs/locales/vanilla/en.js.map b/priv/static/packs/locales/vanilla/en.js.map index 6c29e9803..2c5d92626 100644 Binary files a/priv/static/packs/locales/vanilla/en.js.map and b/priv/static/packs/locales/vanilla/en.js.map differ diff --git a/priv/static/packs/locales/vanilla/eo.js b/priv/static/packs/locales/vanilla/eo.js index c92427011..74d3bf896 100644 Binary files a/priv/static/packs/locales/vanilla/eo.js and b/priv/static/packs/locales/vanilla/eo.js differ diff --git a/priv/static/packs/locales/vanilla/eo.js.map b/priv/static/packs/locales/vanilla/eo.js.map index d271c3a2a..4aa69e848 100644 Binary files a/priv/static/packs/locales/vanilla/eo.js.map and b/priv/static/packs/locales/vanilla/eo.js.map differ diff --git a/priv/static/packs/locales/vanilla/es-AR.js b/priv/static/packs/locales/vanilla/es-AR.js index 6552d0ce3..1cd0935b2 100644 Binary files a/priv/static/packs/locales/vanilla/es-AR.js and b/priv/static/packs/locales/vanilla/es-AR.js differ diff --git a/priv/static/packs/locales/vanilla/es-AR.js.map b/priv/static/packs/locales/vanilla/es-AR.js.map index 297ef325e..9fdd3bde5 100644 Binary files a/priv/static/packs/locales/vanilla/es-AR.js.map and b/priv/static/packs/locales/vanilla/es-AR.js.map differ diff --git a/priv/static/packs/locales/vanilla/es.js b/priv/static/packs/locales/vanilla/es.js index ed37b0006..b2079bd66 100644 Binary files a/priv/static/packs/locales/vanilla/es.js and b/priv/static/packs/locales/vanilla/es.js differ diff --git a/priv/static/packs/locales/vanilla/es.js.map b/priv/static/packs/locales/vanilla/es.js.map index 38d258c9a..7f6210e0b 100644 Binary files a/priv/static/packs/locales/vanilla/es.js.map and b/priv/static/packs/locales/vanilla/es.js.map differ diff --git a/priv/static/packs/locales/vanilla/et.js b/priv/static/packs/locales/vanilla/et.js index b3df9d742..34a94d107 100644 Binary files a/priv/static/packs/locales/vanilla/et.js and b/priv/static/packs/locales/vanilla/et.js differ diff --git a/priv/static/packs/locales/vanilla/et.js.map b/priv/static/packs/locales/vanilla/et.js.map index a61d60808..394bb7428 100644 Binary files a/priv/static/packs/locales/vanilla/et.js.map and b/priv/static/packs/locales/vanilla/et.js.map differ diff --git a/priv/static/packs/locales/vanilla/eu.js b/priv/static/packs/locales/vanilla/eu.js index b448e0fc3..30cd4e43c 100644 Binary files a/priv/static/packs/locales/vanilla/eu.js and b/priv/static/packs/locales/vanilla/eu.js differ diff --git a/priv/static/packs/locales/vanilla/eu.js.map b/priv/static/packs/locales/vanilla/eu.js.map index 17dc81b17..e22dd44c5 100644 Binary files a/priv/static/packs/locales/vanilla/eu.js.map and b/priv/static/packs/locales/vanilla/eu.js.map differ diff --git a/priv/static/packs/locales/vanilla/fa.js b/priv/static/packs/locales/vanilla/fa.js index 8646e092d..b616d72a6 100644 Binary files a/priv/static/packs/locales/vanilla/fa.js and b/priv/static/packs/locales/vanilla/fa.js differ diff --git a/priv/static/packs/locales/vanilla/fa.js.map b/priv/static/packs/locales/vanilla/fa.js.map index b5cd146cb..3ec9c2377 100644 Binary files a/priv/static/packs/locales/vanilla/fa.js.map and b/priv/static/packs/locales/vanilla/fa.js.map differ diff --git a/priv/static/packs/locales/vanilla/fi.js b/priv/static/packs/locales/vanilla/fi.js index 43aa01ba3..4a1631a4d 100644 Binary files a/priv/static/packs/locales/vanilla/fi.js and b/priv/static/packs/locales/vanilla/fi.js differ diff --git a/priv/static/packs/locales/vanilla/fi.js.map b/priv/static/packs/locales/vanilla/fi.js.map index 752201541..debb697d9 100644 Binary files a/priv/static/packs/locales/vanilla/fi.js.map and b/priv/static/packs/locales/vanilla/fi.js.map differ diff --git a/priv/static/packs/locales/vanilla/fr.js b/priv/static/packs/locales/vanilla/fr.js index 96d12e8f5..431bd4ae7 100644 Binary files a/priv/static/packs/locales/vanilla/fr.js and b/priv/static/packs/locales/vanilla/fr.js differ diff --git a/priv/static/packs/locales/vanilla/fr.js.map b/priv/static/packs/locales/vanilla/fr.js.map index ea38b4b8c..b6324ca17 100644 Binary files a/priv/static/packs/locales/vanilla/fr.js.map and b/priv/static/packs/locales/vanilla/fr.js.map differ diff --git a/priv/static/packs/locales/vanilla/ga.js b/priv/static/packs/locales/vanilla/ga.js index 75596c19f..8b98545b3 100644 Binary files a/priv/static/packs/locales/vanilla/ga.js and b/priv/static/packs/locales/vanilla/ga.js differ diff --git a/priv/static/packs/locales/vanilla/ga.js.map b/priv/static/packs/locales/vanilla/ga.js.map index 04c200127..c0303f4f9 100644 Binary files a/priv/static/packs/locales/vanilla/ga.js.map and b/priv/static/packs/locales/vanilla/ga.js.map differ diff --git a/priv/static/packs/locales/vanilla/gl.js b/priv/static/packs/locales/vanilla/gl.js index 0cc410ca4..e0c3e6a38 100644 Binary files a/priv/static/packs/locales/vanilla/gl.js and b/priv/static/packs/locales/vanilla/gl.js differ diff --git a/priv/static/packs/locales/vanilla/gl.js.map b/priv/static/packs/locales/vanilla/gl.js.map index 100c44bb0..9f305218a 100644 Binary files a/priv/static/packs/locales/vanilla/gl.js.map and b/priv/static/packs/locales/vanilla/gl.js.map differ diff --git a/priv/static/packs/locales/vanilla/he.js b/priv/static/packs/locales/vanilla/he.js index 44cb712d9..73d91419a 100644 Binary files a/priv/static/packs/locales/vanilla/he.js and b/priv/static/packs/locales/vanilla/he.js differ diff --git a/priv/static/packs/locales/vanilla/he.js.map b/priv/static/packs/locales/vanilla/he.js.map index cd36595c2..c98587628 100644 Binary files a/priv/static/packs/locales/vanilla/he.js.map and b/priv/static/packs/locales/vanilla/he.js.map differ diff --git a/priv/static/packs/locales/vanilla/hi.js b/priv/static/packs/locales/vanilla/hi.js index 8ce3abc13..27a6eb946 100644 Binary files a/priv/static/packs/locales/vanilla/hi.js and b/priv/static/packs/locales/vanilla/hi.js differ diff --git a/priv/static/packs/locales/vanilla/hi.js.map b/priv/static/packs/locales/vanilla/hi.js.map index 088cac143..7a5858596 100644 Binary files a/priv/static/packs/locales/vanilla/hi.js.map and b/priv/static/packs/locales/vanilla/hi.js.map differ diff --git a/priv/static/packs/locales/vanilla/hr.js b/priv/static/packs/locales/vanilla/hr.js index 5e81ef38e..d8d788315 100644 Binary files a/priv/static/packs/locales/vanilla/hr.js and b/priv/static/packs/locales/vanilla/hr.js differ diff --git a/priv/static/packs/locales/vanilla/hr.js.map b/priv/static/packs/locales/vanilla/hr.js.map index 61803b58f..f9c432fb6 100644 Binary files a/priv/static/packs/locales/vanilla/hr.js.map and b/priv/static/packs/locales/vanilla/hr.js.map differ diff --git a/priv/static/packs/locales/vanilla/hu.js b/priv/static/packs/locales/vanilla/hu.js index df5aec299..f1e7682d6 100644 Binary files a/priv/static/packs/locales/vanilla/hu.js and b/priv/static/packs/locales/vanilla/hu.js differ diff --git a/priv/static/packs/locales/vanilla/hu.js.map b/priv/static/packs/locales/vanilla/hu.js.map index 37d4b7e91..220a6e92b 100644 Binary files a/priv/static/packs/locales/vanilla/hu.js.map and b/priv/static/packs/locales/vanilla/hu.js.map differ diff --git a/priv/static/packs/locales/vanilla/hy.js b/priv/static/packs/locales/vanilla/hy.js index 0ee6fe350..f21e393eb 100644 Binary files a/priv/static/packs/locales/vanilla/hy.js and b/priv/static/packs/locales/vanilla/hy.js differ diff --git a/priv/static/packs/locales/vanilla/hy.js.map b/priv/static/packs/locales/vanilla/hy.js.map index 1647a44dd..a395c87fe 100644 Binary files a/priv/static/packs/locales/vanilla/hy.js.map and b/priv/static/packs/locales/vanilla/hy.js.map differ diff --git a/priv/static/packs/locales/vanilla/id.js b/priv/static/packs/locales/vanilla/id.js index 0bf8d76cd..6591b818a 100644 Binary files a/priv/static/packs/locales/vanilla/id.js and b/priv/static/packs/locales/vanilla/id.js differ diff --git a/priv/static/packs/locales/vanilla/id.js.map b/priv/static/packs/locales/vanilla/id.js.map index 3bad1633a..d0f909013 100644 Binary files a/priv/static/packs/locales/vanilla/id.js.map and b/priv/static/packs/locales/vanilla/id.js.map differ diff --git a/priv/static/packs/locales/vanilla/io.js b/priv/static/packs/locales/vanilla/io.js index 204797e62..22f39d73a 100644 Binary files a/priv/static/packs/locales/vanilla/io.js and b/priv/static/packs/locales/vanilla/io.js differ diff --git a/priv/static/packs/locales/vanilla/io.js.map b/priv/static/packs/locales/vanilla/io.js.map index 358b74e3a..11d01d926 100644 Binary files a/priv/static/packs/locales/vanilla/io.js.map and b/priv/static/packs/locales/vanilla/io.js.map differ diff --git a/priv/static/packs/locales/vanilla/is.js b/priv/static/packs/locales/vanilla/is.js index a5002812b..05db56dfd 100644 Binary files a/priv/static/packs/locales/vanilla/is.js and b/priv/static/packs/locales/vanilla/is.js differ diff --git a/priv/static/packs/locales/vanilla/is.js.map b/priv/static/packs/locales/vanilla/is.js.map index 0da088d4d..e45da8547 100644 Binary files a/priv/static/packs/locales/vanilla/is.js.map and b/priv/static/packs/locales/vanilla/is.js.map differ diff --git a/priv/static/packs/locales/vanilla/it.js b/priv/static/packs/locales/vanilla/it.js index 4779ebdbb..f8877398f 100644 Binary files a/priv/static/packs/locales/vanilla/it.js and b/priv/static/packs/locales/vanilla/it.js differ diff --git a/priv/static/packs/locales/vanilla/it.js.map b/priv/static/packs/locales/vanilla/it.js.map index 1cc7b2ef4..79aed8726 100644 Binary files a/priv/static/packs/locales/vanilla/it.js.map and b/priv/static/packs/locales/vanilla/it.js.map differ diff --git a/priv/static/packs/locales/vanilla/ja.js b/priv/static/packs/locales/vanilla/ja.js index c45f7b0fe..99efb72a3 100644 Binary files a/priv/static/packs/locales/vanilla/ja.js and b/priv/static/packs/locales/vanilla/ja.js differ diff --git a/priv/static/packs/locales/vanilla/ja.js.map b/priv/static/packs/locales/vanilla/ja.js.map index df85f46fc..8a7d4edb0 100644 Binary files a/priv/static/packs/locales/vanilla/ja.js.map and b/priv/static/packs/locales/vanilla/ja.js.map differ diff --git a/priv/static/packs/locales/vanilla/ka.js b/priv/static/packs/locales/vanilla/ka.js index e0670762a..6091581a1 100644 Binary files a/priv/static/packs/locales/vanilla/ka.js and b/priv/static/packs/locales/vanilla/ka.js differ diff --git a/priv/static/packs/locales/vanilla/ka.js.map b/priv/static/packs/locales/vanilla/ka.js.map index 4e4743f35..aa254d9ab 100644 Binary files a/priv/static/packs/locales/vanilla/ka.js.map and b/priv/static/packs/locales/vanilla/ka.js.map differ diff --git a/priv/static/packs/locales/vanilla/kab.js b/priv/static/packs/locales/vanilla/kab.js index b6082022e..b9001a1cc 100644 Binary files a/priv/static/packs/locales/vanilla/kab.js and b/priv/static/packs/locales/vanilla/kab.js differ diff --git a/priv/static/packs/locales/vanilla/kab.js.map b/priv/static/packs/locales/vanilla/kab.js.map index 86bf00317..148c3351a 100644 Binary files a/priv/static/packs/locales/vanilla/kab.js.map and b/priv/static/packs/locales/vanilla/kab.js.map differ diff --git a/priv/static/packs/locales/vanilla/kk.js b/priv/static/packs/locales/vanilla/kk.js index bc99a54bb..f74b2cb3d 100644 Binary files a/priv/static/packs/locales/vanilla/kk.js and b/priv/static/packs/locales/vanilla/kk.js differ diff --git a/priv/static/packs/locales/vanilla/kk.js.map b/priv/static/packs/locales/vanilla/kk.js.map index 357325795..ced32c979 100644 Binary files a/priv/static/packs/locales/vanilla/kk.js.map and b/priv/static/packs/locales/vanilla/kk.js.map differ diff --git a/priv/static/packs/locales/vanilla/kn.js b/priv/static/packs/locales/vanilla/kn.js index 170fab533..a8be6ca7c 100644 Binary files a/priv/static/packs/locales/vanilla/kn.js and b/priv/static/packs/locales/vanilla/kn.js differ diff --git a/priv/static/packs/locales/vanilla/kn.js.map b/priv/static/packs/locales/vanilla/kn.js.map index a817395c8..c7f28697d 100644 Binary files a/priv/static/packs/locales/vanilla/kn.js.map and b/priv/static/packs/locales/vanilla/kn.js.map differ diff --git a/priv/static/packs/locales/vanilla/ko.js b/priv/static/packs/locales/vanilla/ko.js index 8ca8e8473..8940912cd 100644 Binary files a/priv/static/packs/locales/vanilla/ko.js and b/priv/static/packs/locales/vanilla/ko.js differ diff --git a/priv/static/packs/locales/vanilla/ko.js.map b/priv/static/packs/locales/vanilla/ko.js.map index aed5a710a..781e7af50 100644 Binary files a/priv/static/packs/locales/vanilla/ko.js.map and b/priv/static/packs/locales/vanilla/ko.js.map differ diff --git a/priv/static/packs/locales/vanilla/lt.js b/priv/static/packs/locales/vanilla/lt.js index 14c75f1b8..540f622a3 100644 Binary files a/priv/static/packs/locales/vanilla/lt.js and b/priv/static/packs/locales/vanilla/lt.js differ diff --git a/priv/static/packs/locales/vanilla/lt.js.map b/priv/static/packs/locales/vanilla/lt.js.map index b9e31d3fc..0ad385eaf 100644 Binary files a/priv/static/packs/locales/vanilla/lt.js.map and b/priv/static/packs/locales/vanilla/lt.js.map differ diff --git a/priv/static/packs/locales/vanilla/lv.js b/priv/static/packs/locales/vanilla/lv.js index 0960392ff..b58d988c1 100644 Binary files a/priv/static/packs/locales/vanilla/lv.js and b/priv/static/packs/locales/vanilla/lv.js differ diff --git a/priv/static/packs/locales/vanilla/lv.js.map b/priv/static/packs/locales/vanilla/lv.js.map index 9a81fb657..f448f8432 100644 Binary files a/priv/static/packs/locales/vanilla/lv.js.map and b/priv/static/packs/locales/vanilla/lv.js.map differ diff --git a/priv/static/packs/locales/vanilla/mk.js b/priv/static/packs/locales/vanilla/mk.js index 1788d66cf..205f06f17 100644 Binary files a/priv/static/packs/locales/vanilla/mk.js and b/priv/static/packs/locales/vanilla/mk.js differ diff --git a/priv/static/packs/locales/vanilla/mk.js.map b/priv/static/packs/locales/vanilla/mk.js.map index 70f8d8747..470d982ec 100644 Binary files a/priv/static/packs/locales/vanilla/mk.js.map and b/priv/static/packs/locales/vanilla/mk.js.map differ diff --git a/priv/static/packs/locales/vanilla/ml.js b/priv/static/packs/locales/vanilla/ml.js index e7beaf740..010562bb8 100644 Binary files a/priv/static/packs/locales/vanilla/ml.js and b/priv/static/packs/locales/vanilla/ml.js differ diff --git a/priv/static/packs/locales/vanilla/ml.js.map b/priv/static/packs/locales/vanilla/ml.js.map index 547658dcb..1be28164c 100644 Binary files a/priv/static/packs/locales/vanilla/ml.js.map and b/priv/static/packs/locales/vanilla/ml.js.map differ diff --git a/priv/static/packs/locales/vanilla/mr.js b/priv/static/packs/locales/vanilla/mr.js index 291b8054b..5fd186344 100644 Binary files a/priv/static/packs/locales/vanilla/mr.js and b/priv/static/packs/locales/vanilla/mr.js differ diff --git a/priv/static/packs/locales/vanilla/mr.js.map b/priv/static/packs/locales/vanilla/mr.js.map index cd29ccccf..cf404625f 100644 Binary files a/priv/static/packs/locales/vanilla/mr.js.map and b/priv/static/packs/locales/vanilla/mr.js.map differ diff --git a/priv/static/packs/locales/vanilla/ms.js b/priv/static/packs/locales/vanilla/ms.js index 7d40a3be9..aea0ef4c3 100644 Binary files a/priv/static/packs/locales/vanilla/ms.js and b/priv/static/packs/locales/vanilla/ms.js differ diff --git a/priv/static/packs/locales/vanilla/ms.js.map b/priv/static/packs/locales/vanilla/ms.js.map index 228f13cd7..897a1b7f8 100644 Binary files a/priv/static/packs/locales/vanilla/ms.js.map and b/priv/static/packs/locales/vanilla/ms.js.map differ diff --git a/priv/static/packs/locales/vanilla/nl.js b/priv/static/packs/locales/vanilla/nl.js index f24cd1d6b..84b479dd8 100644 Binary files a/priv/static/packs/locales/vanilla/nl.js and b/priv/static/packs/locales/vanilla/nl.js differ diff --git a/priv/static/packs/locales/vanilla/nl.js.map b/priv/static/packs/locales/vanilla/nl.js.map index 7f984bbee..677ff9cc5 100644 Binary files a/priv/static/packs/locales/vanilla/nl.js.map and b/priv/static/packs/locales/vanilla/nl.js.map differ diff --git a/priv/static/packs/locales/vanilla/nn.js b/priv/static/packs/locales/vanilla/nn.js index 7e4f9ff90..a015c275e 100644 Binary files a/priv/static/packs/locales/vanilla/nn.js and b/priv/static/packs/locales/vanilla/nn.js differ diff --git a/priv/static/packs/locales/vanilla/nn.js.map b/priv/static/packs/locales/vanilla/nn.js.map index 8ef48ff9f..01dfd6647 100644 Binary files a/priv/static/packs/locales/vanilla/nn.js.map and b/priv/static/packs/locales/vanilla/nn.js.map differ diff --git a/priv/static/packs/locales/vanilla/no.js b/priv/static/packs/locales/vanilla/no.js index d4a853588..19eeca907 100644 Binary files a/priv/static/packs/locales/vanilla/no.js and b/priv/static/packs/locales/vanilla/no.js differ diff --git a/priv/static/packs/locales/vanilla/no.js.map b/priv/static/packs/locales/vanilla/no.js.map index b469881f6..97d18247c 100644 Binary files a/priv/static/packs/locales/vanilla/no.js.map and b/priv/static/packs/locales/vanilla/no.js.map differ diff --git a/priv/static/packs/locales/vanilla/oc.js b/priv/static/packs/locales/vanilla/oc.js index e8580a16b..25d9e5663 100644 Binary files a/priv/static/packs/locales/vanilla/oc.js and b/priv/static/packs/locales/vanilla/oc.js differ diff --git a/priv/static/packs/locales/vanilla/oc.js.map b/priv/static/packs/locales/vanilla/oc.js.map index bc1dd8aa6..1890f6364 100644 Binary files a/priv/static/packs/locales/vanilla/oc.js.map and b/priv/static/packs/locales/vanilla/oc.js.map differ diff --git a/priv/static/packs/locales/vanilla/pl.js b/priv/static/packs/locales/vanilla/pl.js index 97f15bf38..f0b6e02ff 100644 Binary files a/priv/static/packs/locales/vanilla/pl.js and b/priv/static/packs/locales/vanilla/pl.js differ diff --git a/priv/static/packs/locales/vanilla/pl.js.map b/priv/static/packs/locales/vanilla/pl.js.map index 85145e5a6..5ce3d9490 100644 Binary files a/priv/static/packs/locales/vanilla/pl.js.map and b/priv/static/packs/locales/vanilla/pl.js.map differ diff --git a/priv/static/packs/locales/vanilla/pt-BR.js b/priv/static/packs/locales/vanilla/pt-BR.js index 7550603cc..bc1bf0707 100644 Binary files a/priv/static/packs/locales/vanilla/pt-BR.js and b/priv/static/packs/locales/vanilla/pt-BR.js differ diff --git a/priv/static/packs/locales/vanilla/pt-BR.js.map b/priv/static/packs/locales/vanilla/pt-BR.js.map index 267a7ef8b..99718f8e3 100644 Binary files a/priv/static/packs/locales/vanilla/pt-BR.js.map and b/priv/static/packs/locales/vanilla/pt-BR.js.map differ diff --git a/priv/static/packs/locales/vanilla/pt-PT.js b/priv/static/packs/locales/vanilla/pt-PT.js index 6895c5c7b..1400d34d0 100644 Binary files a/priv/static/packs/locales/vanilla/pt-PT.js and b/priv/static/packs/locales/vanilla/pt-PT.js differ diff --git a/priv/static/packs/locales/vanilla/pt-PT.js.map b/priv/static/packs/locales/vanilla/pt-PT.js.map index bab41c08a..65881dc14 100644 Binary files a/priv/static/packs/locales/vanilla/pt-PT.js.map and b/priv/static/packs/locales/vanilla/pt-PT.js.map differ diff --git a/priv/static/packs/locales/vanilla/ro.js b/priv/static/packs/locales/vanilla/ro.js index 481554f9f..6c786214d 100644 Binary files a/priv/static/packs/locales/vanilla/ro.js and b/priv/static/packs/locales/vanilla/ro.js differ diff --git a/priv/static/packs/locales/vanilla/ro.js.map b/priv/static/packs/locales/vanilla/ro.js.map index 3986b97e5..816cec77c 100644 Binary files a/priv/static/packs/locales/vanilla/ro.js.map and b/priv/static/packs/locales/vanilla/ro.js.map differ diff --git a/priv/static/packs/locales/vanilla/ru.js b/priv/static/packs/locales/vanilla/ru.js index 0bbdc37ab..9ae59768e 100644 Binary files a/priv/static/packs/locales/vanilla/ru.js and b/priv/static/packs/locales/vanilla/ru.js differ diff --git a/priv/static/packs/locales/vanilla/ru.js.map b/priv/static/packs/locales/vanilla/ru.js.map index c1f831ec3..1ce82af25 100644 Binary files a/priv/static/packs/locales/vanilla/ru.js.map and b/priv/static/packs/locales/vanilla/ru.js.map differ diff --git a/priv/static/packs/locales/vanilla/sk.js b/priv/static/packs/locales/vanilla/sk.js index 2ef30e303..2bfc244c5 100644 Binary files a/priv/static/packs/locales/vanilla/sk.js and b/priv/static/packs/locales/vanilla/sk.js differ diff --git a/priv/static/packs/locales/vanilla/sk.js.map b/priv/static/packs/locales/vanilla/sk.js.map index 083c50619..78be422ca 100644 Binary files a/priv/static/packs/locales/vanilla/sk.js.map and b/priv/static/packs/locales/vanilla/sk.js.map differ diff --git a/priv/static/packs/locales/vanilla/sl.js b/priv/static/packs/locales/vanilla/sl.js index 896523275..a91f08ff0 100644 Binary files a/priv/static/packs/locales/vanilla/sl.js and b/priv/static/packs/locales/vanilla/sl.js differ diff --git a/priv/static/packs/locales/vanilla/sl.js.map b/priv/static/packs/locales/vanilla/sl.js.map index e6d452df9..2a5f516d5 100644 Binary files a/priv/static/packs/locales/vanilla/sl.js.map and b/priv/static/packs/locales/vanilla/sl.js.map differ diff --git a/priv/static/packs/locales/vanilla/sq.js b/priv/static/packs/locales/vanilla/sq.js index 0d2c41318..2077d9e64 100644 Binary files a/priv/static/packs/locales/vanilla/sq.js and b/priv/static/packs/locales/vanilla/sq.js differ diff --git a/priv/static/packs/locales/vanilla/sq.js.map b/priv/static/packs/locales/vanilla/sq.js.map index 8eaf76d44..034c534ba 100644 Binary files a/priv/static/packs/locales/vanilla/sq.js.map and b/priv/static/packs/locales/vanilla/sq.js.map differ diff --git a/priv/static/packs/locales/vanilla/sr-Latn.js b/priv/static/packs/locales/vanilla/sr-Latn.js index d2ebf8e5e..c6ba642c9 100644 Binary files a/priv/static/packs/locales/vanilla/sr-Latn.js and b/priv/static/packs/locales/vanilla/sr-Latn.js differ diff --git a/priv/static/packs/locales/vanilla/sr-Latn.js.map b/priv/static/packs/locales/vanilla/sr-Latn.js.map index 86dd4c8f2..23a189d12 100644 Binary files a/priv/static/packs/locales/vanilla/sr-Latn.js.map and b/priv/static/packs/locales/vanilla/sr-Latn.js.map differ diff --git a/priv/static/packs/locales/vanilla/sr.js b/priv/static/packs/locales/vanilla/sr.js index 1a0aa8fc0..c70e85181 100644 Binary files a/priv/static/packs/locales/vanilla/sr.js and b/priv/static/packs/locales/vanilla/sr.js differ diff --git a/priv/static/packs/locales/vanilla/sr.js.map b/priv/static/packs/locales/vanilla/sr.js.map index ff378b7d5..34d0058c0 100644 Binary files a/priv/static/packs/locales/vanilla/sr.js.map and b/priv/static/packs/locales/vanilla/sr.js.map differ diff --git a/priv/static/packs/locales/vanilla/sv.js b/priv/static/packs/locales/vanilla/sv.js index 68b96c657..c9edf7b80 100644 Binary files a/priv/static/packs/locales/vanilla/sv.js and b/priv/static/packs/locales/vanilla/sv.js differ diff --git a/priv/static/packs/locales/vanilla/sv.js.map b/priv/static/packs/locales/vanilla/sv.js.map index b7c53c0f4..b0ca89829 100644 Binary files a/priv/static/packs/locales/vanilla/sv.js.map and b/priv/static/packs/locales/vanilla/sv.js.map differ diff --git a/priv/static/packs/locales/vanilla/ta.js b/priv/static/packs/locales/vanilla/ta.js index 88dabb897..2d274230d 100644 Binary files a/priv/static/packs/locales/vanilla/ta.js and b/priv/static/packs/locales/vanilla/ta.js differ diff --git a/priv/static/packs/locales/vanilla/ta.js.map b/priv/static/packs/locales/vanilla/ta.js.map index de245f786..ffebb252a 100644 Binary files a/priv/static/packs/locales/vanilla/ta.js.map and b/priv/static/packs/locales/vanilla/ta.js.map differ diff --git a/priv/static/packs/locales/vanilla/te.js b/priv/static/packs/locales/vanilla/te.js index eefd698ec..a9548c9f3 100644 Binary files a/priv/static/packs/locales/vanilla/te.js and b/priv/static/packs/locales/vanilla/te.js differ diff --git a/priv/static/packs/locales/vanilla/te.js.map b/priv/static/packs/locales/vanilla/te.js.map index 62232430e..d6f33a0b9 100644 Binary files a/priv/static/packs/locales/vanilla/te.js.map and b/priv/static/packs/locales/vanilla/te.js.map differ diff --git a/priv/static/packs/locales/vanilla/th.js b/priv/static/packs/locales/vanilla/th.js index 5230f7ed0..5fd67d669 100644 Binary files a/priv/static/packs/locales/vanilla/th.js and b/priv/static/packs/locales/vanilla/th.js differ diff --git a/priv/static/packs/locales/vanilla/th.js.map b/priv/static/packs/locales/vanilla/th.js.map index 20e4a78eb..25c2c4641 100644 Binary files a/priv/static/packs/locales/vanilla/th.js.map and b/priv/static/packs/locales/vanilla/th.js.map differ diff --git a/priv/static/packs/locales/vanilla/tr.js b/priv/static/packs/locales/vanilla/tr.js index 04ca75e3b..0e245a4ec 100644 Binary files a/priv/static/packs/locales/vanilla/tr.js and b/priv/static/packs/locales/vanilla/tr.js differ diff --git a/priv/static/packs/locales/vanilla/tr.js.map b/priv/static/packs/locales/vanilla/tr.js.map index 4eaf7717f..fb38b5cde 100644 Binary files a/priv/static/packs/locales/vanilla/tr.js.map and b/priv/static/packs/locales/vanilla/tr.js.map differ diff --git a/priv/static/packs/locales/vanilla/uk.js b/priv/static/packs/locales/vanilla/uk.js index 8b22d2c84..ea579e1a9 100644 Binary files a/priv/static/packs/locales/vanilla/uk.js and b/priv/static/packs/locales/vanilla/uk.js differ diff --git a/priv/static/packs/locales/vanilla/uk.js.map b/priv/static/packs/locales/vanilla/uk.js.map index aed57a251..e11d638c8 100644 Binary files a/priv/static/packs/locales/vanilla/uk.js.map and b/priv/static/packs/locales/vanilla/uk.js.map differ diff --git a/priv/static/packs/locales/vanilla/ur.js b/priv/static/packs/locales/vanilla/ur.js index 507ca10a0..fd92d1ab0 100644 Binary files a/priv/static/packs/locales/vanilla/ur.js and b/priv/static/packs/locales/vanilla/ur.js differ diff --git a/priv/static/packs/locales/vanilla/ur.js.map b/priv/static/packs/locales/vanilla/ur.js.map index 1e1f29498..7aa1dc75c 100644 Binary files a/priv/static/packs/locales/vanilla/ur.js.map and b/priv/static/packs/locales/vanilla/ur.js.map differ diff --git a/priv/static/packs/locales/vanilla/vi.js b/priv/static/packs/locales/vanilla/vi.js index f7964f810..74b75f64e 100644 Binary files a/priv/static/packs/locales/vanilla/vi.js and b/priv/static/packs/locales/vanilla/vi.js differ diff --git a/priv/static/packs/locales/vanilla/vi.js.map b/priv/static/packs/locales/vanilla/vi.js.map index e3a49bb69..ea34ab185 100644 Binary files a/priv/static/packs/locales/vanilla/vi.js.map and b/priv/static/packs/locales/vanilla/vi.js.map differ diff --git a/priv/static/packs/locales/vanilla/zh-CN.js b/priv/static/packs/locales/vanilla/zh-CN.js index 1c6668c14..35514a2ee 100644 Binary files a/priv/static/packs/locales/vanilla/zh-CN.js and b/priv/static/packs/locales/vanilla/zh-CN.js differ diff --git a/priv/static/packs/locales/vanilla/zh-CN.js.map b/priv/static/packs/locales/vanilla/zh-CN.js.map index c8a4f1f4a..e619f8655 100644 Binary files a/priv/static/packs/locales/vanilla/zh-CN.js.map and b/priv/static/packs/locales/vanilla/zh-CN.js.map differ diff --git a/priv/static/packs/locales/vanilla/zh-HK.js b/priv/static/packs/locales/vanilla/zh-HK.js index 4e6a49912..a0eb66b6e 100644 Binary files a/priv/static/packs/locales/vanilla/zh-HK.js and b/priv/static/packs/locales/vanilla/zh-HK.js differ diff --git a/priv/static/packs/locales/vanilla/zh-HK.js.map b/priv/static/packs/locales/vanilla/zh-HK.js.map index 5ccfee79b..aac2821fa 100644 Binary files a/priv/static/packs/locales/vanilla/zh-HK.js.map and b/priv/static/packs/locales/vanilla/zh-HK.js.map differ diff --git a/priv/static/packs/locales/vanilla/zh-TW.js b/priv/static/packs/locales/vanilla/zh-TW.js index 03165b6da..585a10947 100644 Binary files a/priv/static/packs/locales/vanilla/zh-TW.js and b/priv/static/packs/locales/vanilla/zh-TW.js differ diff --git a/priv/static/packs/locales/vanilla/zh-TW.js.map b/priv/static/packs/locales/vanilla/zh-TW.js.map index 5a5dc377b..9ae897a48 100644 Binary files a/priv/static/packs/locales/vanilla/zh-TW.js.map and b/priv/static/packs/locales/vanilla/zh-TW.js.map differ diff --git a/priv/static/packs/modals/block_modal.js b/priv/static/packs/modals/block_modal.js index 90c88d163..b74a7a3d0 100644 Binary files a/priv/static/packs/modals/block_modal.js and b/priv/static/packs/modals/block_modal.js differ diff --git a/priv/static/packs/modals/block_modal.js.map b/priv/static/packs/modals/block_modal.js.map index 406846735..2796f6af6 100644 Binary files a/priv/static/packs/modals/block_modal.js.map and b/priv/static/packs/modals/block_modal.js.map differ diff --git a/priv/static/packs/modals/embed_modal.js b/priv/static/packs/modals/embed_modal.js index 21ab12b50..9092bee72 100644 Binary files a/priv/static/packs/modals/embed_modal.js and b/priv/static/packs/modals/embed_modal.js differ diff --git a/priv/static/packs/modals/embed_modal.js.map b/priv/static/packs/modals/embed_modal.js.map index c2c70ba99..0fd5ad06d 100644 Binary files a/priv/static/packs/modals/embed_modal.js.map and b/priv/static/packs/modals/embed_modal.js.map differ diff --git a/priv/static/packs/modals/mute_modal.js b/priv/static/packs/modals/mute_modal.js index df9cdcb60..d239d0dab 100644 Binary files a/priv/static/packs/modals/mute_modal.js and b/priv/static/packs/modals/mute_modal.js differ diff --git a/priv/static/packs/modals/mute_modal.js.map b/priv/static/packs/modals/mute_modal.js.map index ac6f90cad..8a2885173 100644 Binary files a/priv/static/packs/modals/mute_modal.js.map and b/priv/static/packs/modals/mute_modal.js.map differ diff --git a/priv/static/packs/modals/report_modal.js b/priv/static/packs/modals/report_modal.js index 004baf326..cc6d7904f 100644 Binary files a/priv/static/packs/modals/report_modal.js and b/priv/static/packs/modals/report_modal.js differ diff --git a/priv/static/packs/modals/report_modal.js.map b/priv/static/packs/modals/report_modal.js.map index 079fd6be6..d695d2a81 100644 Binary files a/priv/static/packs/modals/report_modal.js.map and b/priv/static/packs/modals/report_modal.js.map differ diff --git a/priv/static/packs/skins/glitch/contrast/common.css b/priv/static/packs/skins/glitch/contrast/common.css index 79ea1f515..748cdc91f 100644 Binary files a/priv/static/packs/skins/glitch/contrast/common.css and b/priv/static/packs/skins/glitch/contrast/common.css differ diff --git a/priv/static/packs/skins/glitch/contrast/common.css.map b/priv/static/packs/skins/glitch/contrast/common.css.map index 0fe13838c..2869e4adc 100644 --- a/priv/static/packs/skins/glitch/contrast/common.css.map +++ b/priv/static/packs/skins/glitch/contrast/common.css.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///common.scss","webpack:///./app/javascript/flavours/glitch/styles/reset.scss","webpack:///./app/javascript/flavours/glitch/styles/contrast/variables.scss","webpack:///./app/javascript/flavours/glitch/styles/basics.scss","webpack:///./app/javascript/flavours/glitch/styles/variables.scss","webpack:///./app/javascript/flavours/glitch/styles/containers.scss","webpack:///./app/javascript/flavours/glitch/styles/_mixins.scss","webpack:///./app/javascript/flavours/glitch/styles/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/footer.scss","webpack:///./app/javascript/flavours/glitch/styles/compact_header.scss","webpack:///./app/javascript/flavours/glitch/styles/widgets.scss","webpack:///./app/javascript/flavours/glitch/styles/forms.scss","webpack:///./app/javascript/flavours/glitch/styles/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/statuses.scss","webpack:///./app/javascript/flavours/glitch/styles/components/index.scss","webpack:///./app/javascript/flavours/glitch/styles/components/boost.scss","webpack:///./app/javascript/flavours/glitch/styles/components/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/components/domains.scss","webpack:///./app/javascript/flavours/glitch/styles/components/status.scss","webpack:///./app/javascript/flavours/glitch/styles/components/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/components/composer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/columns.scss","webpack:///./app/javascript/flavours/glitch/styles/components/regeneration_indicator.scss","webpack:///./app/javascript/flavours/glitch/styles/components/directory.scss","webpack:///./app/javascript/flavours/glitch/styles/components/search.scss","webpack:///","webpack:///./app/javascript/flavours/glitch/styles/components/emoji.scss","webpack:///./app/javascript/flavours/glitch/styles/components/doodle.scss","webpack:///./app/javascript/flavours/glitch/styles/components/drawer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/media.scss","webpack:///./app/javascript/flavours/glitch/styles/components/sensitive.scss","webpack:///./app/javascript/flavours/glitch/styles/components/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/components/emoji_picker.scss","webpack:///./app/javascript/flavours/glitch/styles/components/local_settings.scss","webpack:///./app/javascript/flavours/glitch/styles/components/error_boundary.scss","webpack:///./app/javascript/flavours/glitch/styles/components/single_column.scss","webpack:///./app/javascript/flavours/glitch/styles/polls.scss","webpack:///./app/javascript/flavours/glitch/styles/about.scss","webpack:///./app/javascript/flavours/glitch/styles/tables.scss","webpack:///./app/javascript/flavours/glitch/styles/admin.scss","webpack:///./app/javascript/flavours/glitch/styles/accessibility.scss","webpack:///./app/javascript/flavours/glitch/styles/rtl.scss","webpack:///./app/javascript/flavours/glitch/styles/dashboard.scss","webpack:///./app/javascript/flavours/glitch/styles/contrast/diff.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,sCACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,0BACA,CC9EmB,iEDqFrB,kBCrFqB,4BDyFrB,sBACE,MEtFF,sBACE,mBACA,eACA,iBACA,gBACA,WCVM,kCDYN,6BACA,8BACA,CADA,0BACA,CADA,yBACA,CADA,qBACA,0CACA,wCACA,kBAEA,sIAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBDpDmB,kBCwDnB,iBACE,kBACA,0BAEA,iBACE,YAIJ,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cDzEgB,mBAZC,WCwFjB,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,wBAEA,aACE,gBACA,WACA,YACA,kBACA,uBAGF,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,6BAKF,YAEE,WACA,mBACA,uBACA,oBACA,yEAKF,gBAEE,+EAKF,WAEE,gBErJJ,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SDrBI,YCuBF,kBACA,sBAGF,YACE,uBACA,mBACA,WD9BE,qBCgCF,UACA,kBACA,iBACA,uBACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAKA,UACqB,sCC3EvB,iBD4EE,6BAEA,UACE,YACA,cACA,SACA,kBACA,iBD5BkB,wBE9DtB,4BACA,uBD8FA,aACE,cHjFmB,wBGmFnB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UD1UA,qCC6UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cHlVc,mBGoVd,kBACA,uHAEA,yBAGE,WDvWA,qCC2WF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBH1aiB,8CG+anB,yBACE,gBACA,aACA,kBACA,mBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,CAEA,WACqB,yCCzgB3B,kBD0gBM,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,iBD7dc,wBE9DtB,4BACA,qCD+hBI,2CAvCF,YAwCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAKA,UACqB,sCCtiB7B,CDuiBQ,sBACA,wDAEA,QACE,kBACA,iBDrfY,wBE9DtB,4BACA,2DDsjBQ,mDAbF,YAcI,sCAKN,2CApEF,eAqEI,sCAGF,2CAxEF,cAyEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WDhlBF,gBCklBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WD1lBJ,gBC4lBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aHrmBQ,oDG4mBd,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cHjoBU,aGmoBV,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BHjqBW,wEGuqBX,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WDzsBJ,uBC2sBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cHluBY,uDGquBZ,oBACE,cHtuBU,qBGwuBV,aACA,gBACA,8DAEA,eACE,WD1vBJ,qCCgwBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aD3yBU,8DCizBV,mBACA,WDnzBE,qFCuzBJ,YAEE,eACA,cH7yBc,2CGizBhB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBHz3Ba,+IG43BX,kBAGE,WEl4BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,eChBJ,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,yBCrBF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cPnFc,6BOsFd,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cRYgB,gBQVhB,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cRJiB,wBQQnB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBPPI,uBOUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBTlBmB,aSoBjB,0BACA,eACA,cTVgB,iBSYhB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aTxCmB,qBS0CjB,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cTjEgB,+BSqElB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aT9FkB,aSmGpB,YACE,kBACA,mBTjHmB,mCSmHnB,qBAGF,YACE,kBACA,0BACA,kBACA,cT9GkB,mBSgHlB,iBAGF,eACE,eACA,cTrHkB,iBSuHlB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cThIgB,0BSoIlB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cT7IgB,qBS+IhB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBT3KmB,mCS6KnB,cT/JqB,gBSiKrB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cT5Mc,8DSkNhB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,ePlPM,COoPN,cACA,cTvOkB,mBSyOlB,+BANA,iBACA,CPlPM,kCOgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,UPjQM,eOmQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cT7PgB,qCSiQlB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBTvRqB,kBSyRnB,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBTpSe,kBSsSf,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBT3SiB,eS6Sf,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WPnUE,mBOqUF,gBACA,uBACA,wBAEA,aT5Tc,0BSgUd,aACE,gBACA,eACA,eACA,cTpUY,yFS0Ud,UPvVE,+BO8VJ,aACE,YACA,uDAGF,oBTxViB,eS8VrB,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cTtYgB,gBSwYhB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WP3aI,8BO8aJ,aACE,cTlac,gBSoad,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aTngBkB,iCSkgBpB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cT1hBiB,4JS6hBjB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WP9jBI,gCOgkBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MC/kBJ,+BACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WRhDA,cQkDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aVjEoB,0BUmElB,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aVvFkB,sBU0FhB,aVnGsB,yBUuGtB,iBACE,kBACA,mBACA,wBAIJ,aACE,eACA,eACA,qBAGF,kBACE,cV5GgB,iCU+GhB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WRzJA,gBQ2JA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WR/KE,cQiLF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WRrME,cQuMF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,6BAIJ,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WRnRI,cQqRJ,WACA,2CAKE,mBACE,eACA,WR7RA,qBQ+RA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WR7TI,cQ+TJ,WACA,UACA,oBACA,gBACA,mBACA,yBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,wQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBRpVY,oLQwVZ,iBACE,4WAGF,oBVzVsB,mBU4VpB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBVnYiB,WEXb,eQiZJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBV1aoB,gGU8apB,kBR9aQ,kHQibN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WRjcI,cQmcJ,WACA,UACA,oBACA,gBACA,wXACA,yBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cVjdY,oBUmdZ,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,iEACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,8BACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UR/gBF,aQyhBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cVphBkB,kBUshBlB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cRziBY,sBQ6iBd,mCACE,+BACA,cR9iBQ,kBQkjBV,oBACE,cVxiBgB,qBU0iBhB,wBAEA,URzjBI,0BQ2jBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gCACA,mBVzkBiB,WEDb,eQ6kBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aVrmBkB,qBUumBhB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aVloBwB,yBUooBtB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cVzoBkB,oCU4oBlB,cACE,mBACA,kBACA,4CAGF,aVhpBqB,gBUkpBnB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBRtrBM,YQwrBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cVrrBqB,WUurBrB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WRluBI,qCQouBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UR1uBI,0BQ4uBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cV5wBkB,0BU+wBlB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WRtyBI,kBQwyBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aRhzBc,0SQ0zBZ,+BACE,aAIJ,kBACE,yBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gCACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBRp2Bc,gBQs2BZ,2BAEA,kBRx2BY,gBQ02BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SC36BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,mBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,CAEA,UACqB,sCPpDzB,gBOqDI,wBAEA,UACE,YACA,cACA,SACA,kBACA,iBTLgB,wBE9DtB,4BACA,mBOoEM,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WT/EA,gBSiFA,gBACA,uBACA,+BAGF,aACE,eACA,cX3EY,gBW6EZ,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WT7GI,gBS+GJ,qBACA,iBACA,qBACA,sBAGF,eTrHM,oBSuHJ,WXxHI,eW0HJ,cACA,kBAGF,cACE,uCAGF,wBAEE,cXpHmB,oBWwHrB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,cACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBX7KqB,mCW+KnB,cX3JiB,eW6JjB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cX5MwB,sCW8MxB,sCACA,6DAEA,aTnNc,sCSqNZ,kCACA,qDAGF,aACE,sCACA,kCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cX/OmB,6BWiPnB,6BAGF,aACE,cXvPgB,4BW2PlB,aXpQwB,qBWsQtB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aTtRY,gBSwRV,0CAGF,aT3RY,wCSgSd,eACE,wCAIJ,UACE,0BAIA,aX9RkB,4BWiShB,aX3SsB,qBW6SpB,qGAEA,yBAGE,iCAIJ,UTzTI,gBS2TF,wBAIJ,eACE,kBClUJ,kCACE,kBACA,gBACA,mBACA,qCAEA,iBANF,eAOI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBZxBmB,6GY2BjB,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBZhEmB,WEXb,oBU8EN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UVxFI,gFU4FN,kBAGE,qNAKA,kBZlGoB,4IY0GpB,kBV1GQ,qCUiHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAKA,cACA,iBACA,mBACA,mFAGF,iBACE,eACA,WACA,WACA,WACA,qMAGF,eAGE,mEASF,cACE,gBACA,qFAGF,aZhKc,YYkKZ,eACA,WACA,eACA,gBACA,+GAGF,aACE,eACA,CACA,sBACA,eACA,yJAEA,cACE,uEAIJ,WACE,kBACA,WACA,eACA,iDAQF,iBACE,mBACA,yHAEA,iBACE,gBACA,+FAGF,UACE,WC3NR,gCACE,4CACA,cAGF,aACE,eACA,iBACA,cbKmB,SaHnB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,abhBsB,eakBpB,SAIJ,wBACE,YACA,kBACA,sBACA,WX5BM,eW8BN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,qCACA,mBACA,WACA,4CAEA,wBAGE,4BACA,qCACA,sBAGF,eACE,mFAEA,wBX3DQ,gBW+DN,kBAIJ,wBbnEsB,eaqEpB,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,UbtFM,mBAGgB,qGauFpB,wBAGE,8BAIJ,kBXlEsB,2GWqEpB,wBAGE,0BAIJ,cACE,iBACA,YACA,cbhGgB,oBakGhB,uBACA,iBACA,kBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,cAIJ,oBACE,UACA,cbxHoB,Sa0HpB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,uCACA,4BACA,2CACA,oBAGF,qCACE,uBAGF,aACE,6BACA,eACA,qBAGF,abjKwB,gCaqKxB,QACE,uEAGF,mBAGE,uBAGF,ab/JmB,sFakKjB,aAGE,oCACA,6BAGF,kCACE,gCAGF,aACE,6BACA,8BAGF,ablMsB,uCaqMpB,aACE,wBAKN,sBACE,0BACA,yBACA,kBACA,YACA,8BAEA,yBACE,mBAKN,abxMqB,Sa0MnB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,oCACA,4BACA,2CACA,yBAGF,kCACE,4BAGF,aACE,6BACA,eACA,0BAGF,abzPwB,qCa6PxB,QACE,sFAGF,mBAGE,gBAIJ,iBACE,uBACA,YAGF,WACE,cACA,qBACA,QACA,SACA,kBACA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,uCAIJ,MACE,kBACA,CXvSU,sEW8SZ,aX9SY,uBWkTZ,aXnTc,4DWyTV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UX7UM,0BW+UJ,eAIJ,aACE,eACA,gBACA,uBACA,mBACA,iBAEA,aACE,wBACA,sBAIA,cACA,gBAKA,yCAPF,WACE,CAEA,gBACA,uBACA,gBACA,mBAWA,CAVA,mBAGF,aACE,CACA,cAKA,8BAIA,yBACE,sBAIJ,SACE,YACA,eACA,iBACA,uBACA,mBACA,gBACA,CAME,sDAGF,cACE,YACA,kBACA,oBACA,qBAKN,eACE,wBAGF,cACE,eAGF,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cXhX4B,eAEC,0DWiX3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cXxY4B,eAEC,WWyY3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,WAIJ,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBbhd0B,cakdxB,kBACA,uCACA,mBAEA,eACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BbpesB,2BawexB,WACE,iBACA,uBACA,yBb3esB,8Ba+exB,QACE,iBACA,uBACA,4BblfsB,6BasfxB,SACE,gBACA,2BACA,2BbzfsB,wBa+fxB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBbrgBsB,WAJlB,gBa4gBJ,uBACA,mBACA,yFAEA,kBbpgBiB,cAIE,UaqgBjB,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBb/hBsB,caiiBtB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBbxjBsB,WAJlB,gBa+jBJ,uBACA,mBACA,oDAEA,SACE,oDAGF,kBb3jBiB,cAIE,iBa8jBvB,qBACE,iBAIA,sBACA,cbrkBgB,oBawkBhB,cACE,gBACA,mBACA,kBACA,mBAGF,cACE,mBACA,iBAIJ,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WXnpBM,qBWqpBN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCThoBA,6GADF,kBSwoBI,4BACA,kHTpoBJ,kBSmoBI,4BACA,wBAIJ,+BACE,cbxqBsB,sBa4qBxB,eACE,aACA,2BAGF,aACE,eACA,kBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBbtrBiB,yBawrBjB,gBACA,kBACA,eACA,gBACA,iBACA,WXxsBI,mDW6sBR,oBACE,aAGF,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,gBAIJ,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,0CACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBbjxBmB,qCamxBnB,sEAGF,wBACE,4CAGF,wBbhxBqB,+EaoxBrB,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,yBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBb50BmB,yDag1BrB,kBb11BqB,2Bag2BrB,iBACE,gBACA,cAGF,aACE,kBAGF,kBbz2BqB,ca22BnB,oBAEA,ab/1BqB,oBam2BrB,abp2BgB,yBaw2BhB,0BACE,CADF,uBACE,CADF,kBACE,kDAKA,sBACA,cACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,ab13Bc,ea43BZ,0DAEA,ab93BY,0Bag4BV,sDAIJ,oBACE,cbt4Bc,sMay4Bd,yBAGE,0BAKN,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cbz5Bc,aa25Bd,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,abp7Bc,qBa27BpB,oBACE,kBACA,eACA,iBACA,gBACA,mBb58BmB,gBa88BnB,iBACA,qBAGF,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,ab39BoB,uBa69BlB,CACA,WACA,CADA,+BACA,sBACA,cACA,oBACA,mBACA,cACA,WACA,0CAEA,UXp/BM,4BFWa,qCIYjB,yDADF,cSq+BE,sBAGF,Ub//BM,gCaigCJ,sDAEA,UbngCI,4BAYa,mDa+/BrB,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAIJ,uBACE,2BACA,gDAGF,ab3gCsB,6Ba6gCpB,uDAGF,ab7hC0B,yDaiiC1B,aACE,YAGF,aACE,cb5hCgB,6Ba8hChB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,oBAGF,gBACE,qEAGF,4BACE,gCAGF,eACE,kBACA,MACA,QACA,YACA,kBACA,YAEA,mBACA,yBACA,eACA,aAEA,wCAEA,UXvhCsB,mBWyhCpB,aACA,sBACA,mBACA,uBACA,mBACA,8BACA,wBACA,gCACA,uCAGF,wBACE,kBACA,WACA,YACA,eACA,cb7lCgB,yBa+lChB,aACA,uBACA,mBACA,sCAGF,mBACE,6CAEA,8BACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,oBAGF,abxnCkB,ea0nChB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,6BAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,YACE,SACA,QACA,WACA,YACA,mBACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,0BACA,kBACA,iBACA,WXnyCE,gBWqyCF,eACA,+LAMA,yBACE,mEAKF,yBACE,iBAMR,aACE,iBACA,mEAGF,abjzCoB,qBaqzClB,mBACA,gBACA,sBACA,gBAGF,aACE,iBACA,uBAGF,eACE,8BAGF,abp0CoB,eas0ClB,cACA,gBACA,gBACA,uBAGF,qBACE,sBAGF,WACE,8BAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA3BF,qBAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,iBAIJ,0DACE,CADF,kDACE,cAGF,kBACE,0BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBbn6CmB,kCaq6CnB,uBAGF,MACE,aACA,mBACA,uBACA,cb95CqB,eag6CrB,gBACA,0BACA,kBACA,qCAGF,SACE,oBACA,CADA,WACA,cAGF,wBb/6CqB,Wai7CnB,kBACA,MACA,OACA,aACA,qBAGF,iBACE,aAGF,iBACE,cACA,aACA,WACA,yBbh8CmB,kBak8CnB,cACA,UACA,WACA,eAGF,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,uBAGF,oBACE,mBbl+CsB,kBao+CtB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cb/+Cc,kBai/Cd,+BAGF,abp/CgB,eas/Cd,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UX3gDE,qBW6gDA,oHAEA,yBAGE,yCAKN,QACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UXviDI,oBWgjDN,kBACA,cACA,2BAGF,eACE,UAGF,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cbrjDmB,gBaujDnB,gBAEA,abpkDsB,0BaskDpB,sBAEA,oBACE,gBAIJ,qBACE,4BAKN,GACE,cACA,eACA,WARI,mBAKN,GACE,cACA,eACA,2CC5lDF,u+KACE,uCAEA,u+KACE,CAOA,8MAMF,okBACE,UClBJ,YACE,gCACA,cACA,qBACA,iCAEA,aACE,cACA,cfOgB,gBeLhB,qBACA,eACA,gBAGF,WACE,UACA,yCAEA,8CAEA,WACE,iBACA,mBAKN,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,gBb0BwB,wBE9DtB,4BACA,kBWqCA,eACA,yBAEA,oBACE,sBACA,iBACA,4BX3CF,eWgDE,CACA,cACA,2DAJF,gBbesB,wBE9DtB,4BACA,CWgDE,iBAQE,CANF,+BXlDF,UWsDI,CACA,qBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WbjEE,6BamEF,gBACA,eACA,0BAKN,iBACE,WACqB,sCXrErB,+BANA,UW+EuB,sCXzEvB,gEWuEA,gBbhBsB,wBE9DtB,4BW0FE,CXnFF,iCANA,UWoFuB,sCX9EvB,kBWgFE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,2BAGF,aACE,mBACA,sBAGF,YACE,cf5FgB,6Be+FhB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,4BAGF,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,8BACA,eACA,oCACA,uCAEA,aACE,kCAGF,+BACE,gCAGF,aACE,yBACA,eACA,cf1JgB,kCe8JlB,aACE,eACA,gBACA,Wb9KI,CamLA,2NADF,eACE,gCAKN,afpLwB,oBeyL1B,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,wBAGF,gBACE,qBACA,eACA,cflMkB,eeoMlB,kBACA,4BAEA,afhNwB,6BeoNxB,aACE,gBACA,uBACA,iBAIJ,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,aftOoB,eewOlB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SX7MF,sBACA,WACA,YACA,gBACA,oBACA,mBJxDmB,cAYD,eI+ClB,SACA,+EWuMI,aACE,CXxMN,qEWuMI,aACE,CXxMN,yEWuMI,aACE,CXxMN,0EWuMI,aACE,CXxMN,gEWuMI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,af7Qc,iBe+QZ,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,afvSgB,0He4ShB,cAEE,gBACA,cf9SY,kZeiTZ,aAGE,gEAIJ,wBACE,iDAGF,eb1UI,kBEkEN,CAEA,eACA,cJhDiB,uCIkDjB,UWqQI,mBfzUoB,oDIsExB,wBACE,cJrDe,eIuDf,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,WJ3FI,sDeiVJ,WACE,mDAGF,UfrVI,kBeuVF,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UbvWQ,kBayWN,cACA,mBACA,sBb5WM,yBa8WN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,6BAIJ,YACE,eACA,gBACA,wBAGF,WACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cfrZgB,eeuZhB,eACA,gBACA,kBACA,qBACA,kBACA,yJAEA,af5ZmB,qWe+ZjB,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,sBAQR,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cfldc,Ceqdd,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,2BAIJ,af/eoB,eeiflB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WbhnBA,gBaknBA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cf5mBU,gBe8mBV,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,Wb7oBE,gDaipBJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,ab5pBU,yBakqBd,cACE,gCAEA,cACE,cf1pBc,ee4pBd,kCAEA,oBACE,cf/pBY,qBeiqBZ,iBACA,gBACA,yCAEA,eACE,WbnrBF,ScFR,YACE,gCACA,8BAEA,aACE,cACA,WdJI,qBcMJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,mCCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,EDGF,0BCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,qCAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,EAtBA,2BAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,gCAIJ,cACE,kBAGF,iBACE,cACA,eACA,iBACA,qBACA,gBACA,iBACA,gBACA,wBAEA,SACE,4BAGF,UACE,YACA,gBACA,sBAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,qEAGF,kBACE,qBACA,sGAEA,eACE,qEAIJ,eAEE,qJAEA,kBAEE,mXAGF,eACE,mBACA,qJAGF,eACE,gBACA,2EAGF,eACE,+NAGF,eACE,2FAGF,iBACE,8BACA,cjBjGc,mBiBmGd,qHAEA,eACE,2JAIJ,eACE,mJAGF,iBACE,6EAGF,iBACE,eACA,6EAGF,iBACE,qBACA,qJAGF,eACE,6JAEA,QACE,2EAIJ,oBACE,2EAGF,uBACE,oBAIJ,af9Ic,qBegJZ,0BAEA,yBACE,8BAEA,aACE,kCAKF,oBACE,uCAEA,yBACE,wBAKN,ajBlKc,4CiBuKhB,YACE,8EAEA,aACE,mCAIJ,aACE,oDAEA,af5LQ,ee8LN,iDAIJ,kBACE,uDAEA,kBACE,qBACA,gCAKN,oBACE,kBACA,mBACA,YACA,WjBrNM,gBiBuNN,eACA,cACA,yBACA,oBACA,eACA,sBACA,sCAEA,kBACE,qBACA,+DAGF,oBACE,iBACA,sBACA,kBACA,eACA,oBACA,2GAKF,oBAGE,4BAIJ,ajBvOkB,SiByOhB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,mDAGF,iBAEE,gCAGA,qEAEA,eACE,kBAKF,SACE,mBACA,kDAEA,kBACE,wDAEA,sBACE,iFAIJ,kBAEE,SAKN,iBACE,kBACA,YACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QAPF,kBAUI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,ajBpTiB,CArBb,uEiBkVF,UjBlVE,kCiBsVF,ajBjUe,gCiBsUjB,UjB3VI,kCiB8VF,ajBzVoB,gEiB6VpB,UfjWE,mBFEgB,sEiBmWhB,kBACE,mBAMR,uBACE,sBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,yCAEA,aACE,kBACA,OACA,QACA,MACA,SACA,6FACA,oBACA,WACA,2DAGF,oBACE,oCAGF,WACE,gBACA,uBACA,cACA,0CAEA,UACE,kBACA,MACA,gBACA,6DACA,oBACA,4CAGF,oBACE,gDAGJ,oDACE,mEAEF,oDACE,0CAGF,eACE,6DAGF,kBACE,gCAIJ,mBACE,+CAKF,sBACE,qEAEA,aACE,wBAKN,oBACE,YACA,CjBvagB,ciByahB,iBACA,mBACA,CACA,sBACA,8CANA,ajBvagB,CiB2ahB,eAOA,8CAGF,aACE,eACA,eAGF,YACE,8BACA,eACA,oBAEA,sBACE,gBACA,2CAGF,oBACE,sBAIJ,YACE,mBACA,WACA,cjBzcoB,iIiB4cpB,gBAGE,kBACA,0EAGF,yBACE,yEAMA,0CACE,CADF,kCACE,2EAKF,2CACE,CADF,mCACE,wBAKN,YACE,mBACA,2BACA,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,mBACA,iBACA,cjBvhBgB,CiByhBhB,iBACA,eACA,kBACA,+CAEA,ajB9hBgB,uBiBkiBhB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cjBxjBgB,4BiB8jBtB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cjBpnBgB,eiBsnBhB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,6JAGF,oBAME,4DAKA,UfzqBM,kBe+qBN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,ajB7rBuB,ciB+rBrB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,Wf3tBI,kCeguBR,UACE,kBACA,iBAGF,SACE,kBACA,YACA,WACA,CjB3tBgB,8IiBsuBhB,ajBtuBgB,wBiB0uBhB,UACE,wCAGF,kBf9tBsB,WF/BhB,8CiBiwBJ,kBACE,qBACA,+DAOJ,yBACE,cAIJ,YACE,eACA,yBACA,kBACA,cjBpwBgB,gBiBswBhB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cjB/xBiB,uBiBiyBjB,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UfvzBE,yBe8zBJ,cACE,kBACA,YACA,+DAGF,aACE,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACE,YACA,SACA,2BAIF,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cjBx1BkB,gBiB01BlB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,ajBt2BoB,oBiB02BpB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,kBAGF,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cjB97Bc,iBiBg8Bd,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cjB59BY,gBiB89BZ,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,ajB/+Bc,oCiBq/BlB,cACE,cACA,SACA,uBACA,UACA,kBACA,oBACA,oFAEA,yBAEE,6BChhCJ,kBACE,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,0BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,6CAGF,kBlBrC0B,WAJlB,kBkB8CN,gBACA,aACA,sBACA,0BAGF,WACE,WACA,gBACA,iBACA,8DAEA,UACE,YACA,sBACA,aACA,sBACA,mBACA,uBACA,aACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAIJ,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,qCAGF,kBACE,UACE,YACA,gBACA,0BAGF,UACE,YACA,eACA,gBACA,cACA,oDAIJ,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,alB9GmB,SkBiHjB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,qiBAGF,UlBvJI,qwDkB2JF,aAGE,sBAMR,sBACE,yBAGF,aACE,aACA,mBACA,uBACA,wBAGF,UACE,YACA,mBACA,mBACA,aACA,eACA,8BAEA,kBACE,+BAGF,cACE,mBACA,kCAIJ,mBACE,CACA,mBACA,0EAEA,mBACE,yBAIJ,cACE,iBACA,4BAEA,cACE,gBACA,WlBjNI,mBkBmNJ,2BAGF,alBjNwB,kGkBoNtB,aAGE,2CAIJ,aACE,2BAGF,cACE,clBhNiB,gBkBkNjB,mBACA,sCAEA,eACE,kCAGF,eACE,mBlB7Oe,cAcE,kBkBkOjB,eACA,gBACA,CAII,2NADF,eACE,oCAOV,WACE,UACA,mCAME,mBACA,mBACA,sCAEA,cACE,iBACA,kBACA,qCAGF,eACE,oCAIJ,kBACE,mBACA,kBACA,eAIJ,iBACE,eACA,mBACA,sBAEA,eACE,WlBnSI,kBkBqSJ,yBACA,eACA,qBAGF,kBlBxSmB,cAcE,gBkB6RnB,aACA,kBACA,6HAQF,eACE,qJAGF,kBACE,clB5SmB,mBkB8SnB,kBACA,aACA,kBACA,eACA,sCACA,yPAEA,iBACE,mBACA,qNAGF,mBACE,gBACA,4CAMJ,YACE,mBACA,gDAEA,UACE,cACA,4DAEA,aACE,2DAGF,cACE,kDAGF,iBACE,uDAIJ,eACE,sDAIJ,UhB3WM,2DgBgXR,0BACE,cACE,iBACA,qJAGF,cAIE,mBACA,4CAGF,kBACE,sDAGF,WACE,eACA,mBAIJ,oBACE,eACA,gBACA,iBACA,uHAGF,kBAOE,WlBvZM,kBkByZN,gBACA,eACA,YACA,kBACA,sBACA,+SAEA,alBjZgB,YkBmZd,eACA,WACA,eACA,gBACA,uSAGF,YACE,uPAGF,WACE,WACA,+WAGF,UACE,wBAKF,ehBvbM,CFGkB,gBkBubtB,oBACA,iEhB3bI,2BFGkB,qDkBgc1B,iBAEE,aACA,qEAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,kKAIJ,YAKE,8BACA,mBlBjdwB,akBmdxB,iBACA,0LAEA,aACE,iBACA,clBvciB,mBkBycjB,kNAGF,aACE,6DAIJ,cAEE,yDAGF,WAEE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,alBvhBwB,qCkB2hBxB,oDAZF,eAaI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,UlB1jBI,gBECA,agB4jBJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,ehB5kBI,yBgB8kBF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,UlB7lBE,oBkB+lBA,eACA,gBhB/lBA,+CgBomBJ,YACE,8BACA,mBACA,4CAIJ,aACE,WlB7mBI,ekB+mBJ,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,UlBxnBI,ekB0nBF,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eAWE,eACA,wBAXA,eACE,iBACA,uBAGF,aACE,gBACA,2CAMF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,UlBzqBE,akB2qBA,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBlB9qBW,WEXb,iJgBgsBA,iBAGE,oMAUR,aACE,iIAIJ,4BAIE,clBlsBmB,ekBosBnB,gBACA,6cAEA,aAGE,6BACA,uCAIJ,iBACE,mBACA,oBACA,eAEA,yFAEA,qBACE,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,UlBnxBI,CkBqxBF,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gDACA,mBlB5zBe,WEDb,egBg0BF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,cAKN,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBhB12BM,yDgB62BN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBhBr3BI,uBgBy3BN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UhBt5BI,egBw5BF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,wBAKN,gBACE,sCAEA,eACE,gCAGF,eACE,qDAGF,UlB57BM,iDkBg8BN,YACE,0DAEA,YACE,0BAIJ,YACE,iBACA,uBACA,kDAGF,alB57BoB,qBkB87BlB,wDAEA,yBACE,WCp9BN,YACE,oBAGF,cACE,uBACA,eACA,gBACA,cnBcmB,4CmBXnB,ajBNY,sCiBWd,2CACE,oBAGF,QACE,wBACA,UACA,+CAEA,WACE,mBACA,UACA,0BAGF,aACE,sBACA,SACA,YACA,kBACA,aACA,WACA,UACA,WnBtCI,gBECA,eiBwCJ,oBACA,gBACA,qDAEA,anB9Bc,CmB4Bd,2CAEA,anB9Bc,CmB4Bd,+CAEA,anB9Bc,CmB4Bd,gDAEA,anB9Bc,CmB4Bd,sCAEA,anB9Bc,gCmBkCd,8CfpCA,uCADF,cesC4D,0CfjC5D,ceiC4D,oBAI9D,UnBtDQ,mBmBwDN,mBnBrDsB,oCmBuDtB,iBACA,kBACA,eACA,gBACA,sBAEA,anB3CmB,gBmB6CjB,0BACA,mFAEA,oBAEU,iCAKZ,mBACA,eAEA,gBACA,wCAEA,anB7EwB,sDmBiFxB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,gBACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBnBnGsB,qCmB0G1B,eACE,kBACA,aACA,mBnB/GsB,gBmBiHtB,gBACA,cACA,yBAEA,iBACE,gBACA,wCAEA,UnB5HI,iCmB8HJ,WACE,iBACA,2BAIJ,iBACE,cACA,CACA,cACA,iBACA,WnBzII,qBmB2IJ,gBACA,iBACA,qBACA,mBACA,gBACA,gGAEA,kBACE,qBACA,iIAEA,eACE,kJAIJ,eACE,mBACA,2DAGF,eACE,eACA,8BAGF,cACE,wFAGF,eACE,sCAGF,iBACE,2BACA,WnB/KE,mBmBiLF,mDAEA,eACE,8DAIJ,eACE,0DAGF,iBACE,+BAGF,iBACE,eACA,2DAGF,eACE,+DAEA,QACE,8BAIJ,oBACE,8BAGF,uBACE,6BAGF,anBhMiB,qBmBkMf,mCAEA,oEAGE,oBACE,gDAEA,qDAMR,UACE,YACA,gBACA,wBAIJ,iBACE,UACA,QACA,gHAEA,+BAEE,uDAIJ,iBAEE,WACA,mIAGE,aACE,sBACA,SACA,YACA,0BACA,yBACA,WACA,iBACA,UACA,WnBtQE,gBECA,eiBwQF,oBACA,YACA,qBACA,yLAEA,anB/PY,CmB6PZ,sKAEA,anB/PY,CmB6PZ,8KAEA,anB/PY,CmB6PZ,gLAEA,anB/PY,CmB6PZ,4JAEA,anB/PY,yKmBmQZ,SACE,qJAGF,kBnBlRoB,+ImBmRpB,8Cf1QF,8JADF,ce4Q8D,kKfvQ9D,ceuQ8D,qCfhQ5D,8TADF,sBeoQM,gBACA,6BAMR,aACE,kBACA,SACA,UACA,WACA,gBACA,2CAEA,aACE,mBACA,WACA,YACA,cnBzRiB,emB2RjB,iBACA,kBACA,WACA,4CAIJ,iBACE,SACA,oCAGF,aACE,kBACA,sBACA,SACA,0BACA,YACA,WACA,WnBnUM,mBAIkB,sCmBkUxB,eACA,WACA,aACA,6CAGF,aACE,0CAGF,YACE,eACA,kBACA,iMAEA,kBAGa,iKAEb,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,+DAGF,6BACE,qEAEA,aACE,gBACA,uBACA,mBACA,sEAGF,eACE,qEAGF,aACE,iBACA,gBACA,uBACA,mBACA,4EAMA,anBzWe,wBmB8WrB,eACE,iCAEA,YACE,mBACA,eACA,oBACA,YACA,gBACA,8BAIJ,UACE,WACA,cACA,kCAEA,iBACE,kBACA,aACA,WACA,sBjBzZI,wBiB2ZJ,sBACA,4BACA,gBACA,2CAEA,aACE,kBACA,sBACA,SACA,OACA,SACA,SACA,aACA,WACA,cnBzZiB,gFmB2ZjB,eACA,oBACA,gBACA,UACA,UACA,4BACA,iDAEA,UjBlbE,sEiBobF,WACE,cnBtae,CEff,4DiBobF,WACE,cnBtae,CEff,gEiBobF,WACE,cnBtae,CEff,iEiBobF,WACE,cnBtae,CEff,uDiBobF,WACE,cnBtae,yCmB2anB,2EAKE,0CAKN,iFACE,aACA,uBACA,8BACA,UACA,4BACA,8CAEA,aACE,cnB1csB,emB4ctB,gBACA,aACA,oBACA,2JAEA,aAGE,wCAIJ,SACE,kCAIJ,YACE,aACA,cnBrdkB,gBmBudlB,sCAEA,cACE,kBACA,2CAGF,aACE,gDAEA,aACE,eACA,gBACA,yBACA,qDAGF,iBACE,eACA,kBACA,WACA,WACA,mBjB5dkB,8DiB+dlB,iBACE,MACA,OACA,WACA,kBACA,mBnBvfa,0BmB8frB,UnB1gBQ,oBmB4gBN,eACA,gBjB5gBM,4BiBghBR,YACE,mBACA,0BACA,YACA,aACA,8BACA,cACA,oBAGF,YACE,cACA,sBAEA,oBACE,uBACA,cACA,YACA,iBACA,sBACA,uBAGF,oBACE,aACA,CAEA,oBACA,CADA,6BACA,UACA,QACA,YACA,uBACA,2BAIJ,iBACE,iBACA,0CAKE,yBACE,qCACA,WjB7jBE,mBFWa,gBmBqjBf,8CAGA,yBACE,oCACA,uCAMR,iBACE,kBACA,uCACA,gBjB9kBM,gBiBglBN,uBACA,6CAGF,YACE,mBACA,aACA,WnBxlBM,emB0lBN,sDAEA,aACE,cnBxkBiB,wEmB2kBjB,6EAEA,aACE,WnBnmBE,gBmBqmBF,sGAIJ,kBnB7lBmB,WEXb,6PiBgnBF,UjBhnBE,0DiBonBN,wCAGF,gBACE,iBACA,mBACA,gBACA,yBACA,cACA,+BAEA,oBACE,SACA,eACA,kBACA,gCAGF,oBACE,aACA,UACA,WACA,kBACA,kCAIA,ajB5oBU,CkBFZ,+BAHF,YACE,cACA,kBAUA,CATA,cAKA,kBACA,2BACA,gBAEA,uBAEA,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,wHAMJ,WAGE,mCAIJ,YACE,mBACA,uBACA,YACA,CpBrFmB,IoBoGrB,aACE,aACA,sBACA,WACA,YACA,CAIA,oBAGF,qBACE,WACA,mBACA,cpBhHwB,eoBkHxB,cACA,eACA,SACA,iBACA,aACA,SACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cpBnIwB,eoBqIxB,cACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,cAGF,kBACE,WlB5KM,ckB8KN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cpB3LsB,kGoB8LtB,sBAGE,WlBpME,kCkBwMJ,apB7LiB,oBoBmMrB,oBACE,iBACA,oBAGF,kBpBlNqB,cAaH,iBoBwMhB,eACA,gBACA,yBACA,eACA,yBAGF,iBACE,cACA,uCAGE,aACE,WACA,kBACA,SACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,gFACA,gBAKN,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,uBAEA,QACE,YACA,aACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,apBxQwB,uBoB4QxB,qCACE,4CAEA,apB/QsB,wCoBiRpB,4CAIJ,SAEE,SAIJ,WACE,kBACA,sBACA,aACA,sBACA,gBACA,wDAEA,SACE,gBACA,gBACA,qBAGF,kBpB5SmB,yBoBiTrB,WACE,aACA,cACA,uBAGF,kBACE,iCAGF,iBACE,sEAGF,kBACE,SACA,cpBrTkB,eoBuTlB,eACA,eACA,kFAEA,aACE,CAKA,kLAEA,UlBhVI,mBkBkVF,kFAKJ,2BACE,wCAIJ,YACE,oBACA,6BACA,+CAEA,sBAEE,kBACA,eACA,qBACA,0CAGF,eACE,gDAKJ,SACE,6BAGF,eACE,gBACA,gBACA,cpBzWkB,0DoB2WlB,UACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,iCAIF,eACE,2CACA,YACE,WACA,mCAKN,kBACE,aACA,mCAIA,apB/YkB,0BoBiZhB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,uBAKN,oBACE,uBACA,gBACA,mBACA,OACA,sBAGF,oBACE,iBACA,uCAGF,apB7akB,mBAbG,kBoB8bnB,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBACA,sCAbF,cAcI,kDAGF,eACE,2CAGF,apB5cwB,qBoB8ctB,uDAEA,yBACE,eAKN,qBACE,uCAKA,sBACE,6BACA,qCASF,qCAXA,sBACE,6BACA,sCAgBF,mJAFF,qBAGI,sBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,kBACA,uCAEA,SACE,kCAKN,aACE,aACA,yBChhBJ,iBACE,eACA,gBACA,crBagB,mBAbG,eqBGnB,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,crBjBY,qCqBqBd,cACE,gBACA,kBCtCJ,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,mBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WpB1EF,gBoB4EE,gBACA,uBACA,0CAGF,aACE,eACA,ctBtEU,gBsBwEV,gBACA,uBACA,yBAKN,kBtB3FiB,asB6Ff,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,cAOV,kBtBjIqB,sBsBoInB,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,CC/KJ,eAGF,SnBkDE,sBACA,WACA,YACA,gBACA,oBACA,mBJxDmB,cAYD,eI+ClB,SACA,cmBxDA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,sCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,4CACA,eACA,WACA,YACA,cvBxCmB,euB0CnB,oBACA,0BAEA,mBACE,WACA,0BAIJ,sBACE,iCAEA,mBACE,WACA,gCAIJ,QACE,uBACA,cvB5DkB,euB8DlB,uCAEA,uBACE,sCAGF,aACE,yBAKN,avB7EkB,mBuB+EhB,gCACA,kBACA,eACA,gBACA,uBAGF,YACE,cvBxFkB,kBuB0FlB,iBAIA,avB7FgB,mBuB+Fd,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cvBvHY,gBuByHZ,uBACA,mBACA,4BAEA,eACE,uBAGF,avBlIc,qBuBoIZ,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cvB3JiB,0BuB+JnB,aACE,WACA,2CAEA,mCACE,yBACA,0CAGF,wBACE,WC1LR,yCCCE,qBACA,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,8BAIJ,evBXQ,kBuBaN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBvBvCM,kBuByCN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,+BAGE,2DAIJ,WACE,wBAKF,2BACE,eAIJ,aACE,eACA,iBACA,gBACA,WACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,CACA,UACA,YACA,eACA,0EAMA,SACE,oBACA,CADA,WACA,eCpGN,WAEE,0BAGF,kBANW,kBAQT,cACA,iCACA,wBACE,mCAOF,WACE,SACA,UACA,2CAGF,aACE,aAEA,sBACA,YACA,6BACA,6DAGE,oBACE,WACA,iBACA,iBACA,iJAGF,UACE,gEAEF,oBACE,gBACA,WACA,2CAKN,yBACE,sBACA,kBACA,YACA,gBACA,kDAEA,uBACE,CADF,oBACE,CADF,eACE,WACA,YACA,SACA,4BACA,WACA,yBACA,eACA,4CACA,sBACA,oBACA,6DAEA,uBACE,6DAGF,sBACE,wEAGF,sBACE,kBACA,SCjFR,WACE,sBACA,aACA,sBACA,kBACA,iBACA,UACA,qBAEA,iBACE,oBAGF,kBACE,2DvBDF,SuBI0D,yBvBC1D,SuBD0D,qCvBQxD,qLuBLA,yBAGF,eACE,gBACA,eACA,qCvBZA,4BuBgBA,SACE,WACA,YACA,eACA,UACA,+BALF,SACE,WACA,YACA,eACA,UACA,yCAIJ,4BAGF,YACE,mBACA,mBACA,UACA,mBACA,eACA,mBAEA,aACE,sBACA,oCACA,sBACA,YACA,cACA,c3BzCgB,kB2B2ChB,qBACA,eACA,mBAGF,iCACE,iDAEA,YAEE,mBACA,mCACA,SAKN,iBACE,mBACA,UACA,qCvBrDE,6CADF,euBwDkF,sCvBlEhF,sBADF,cuBoE0D,yBvB/D1D,cuB+D0D,gBAG5D,ezBlFQ,kBEkEN,CACA,sBACA,gBACA,cJhDiB,uCIkDjB,mBAEA,wBACE,cJrDe,eIuDf,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,WJ3FI,kB2BuFR,YACE,c3B1EkB,a2B4ElB,mBACA,oBAEA,aACE,qBACA,wBAGF,aACE,c3BnFmB,gB2BqFnB,mBACA,gBACA,uBACA,0BAIJ,aACE,gBACA,gBACA,kBAGF,kB3BhHqB,kB2BkHnB,gBACA,yBAEA,a3BxGgB,mB2B0Gd,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,c3BhIY,iC2BmIZ,oBACE,iBACA,8FAIJ,eAEE,mCAGF,aACE,aACA,c3B/IiB,qB2BiJjB,0HAEA,aAGE,0BACA,gBAQN,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAgBA,CAfA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,uBAEA,kB3BlMmB,0B2BuMrB,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,WACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oCAGF,aACE,WACA,YACA,YACA,eACA,sCAGF,yBAzBF,aA0BI,iBAIJ,kBACE,eACA,gBACA,mBAGF,cACE,kBACA,MACA,OACA,WACA,YACA,0BACA,oBCrPF,kBACE,gB1BAM,WACA,e0BEN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,e1BdQ,cFcY,S4BGlB,WACA,YACA,iEAEA,aAGE,iCAGF,eACE,2BxBcF,iBACE,mBACA,cACA,eACA,aACA,gBACA,yBwBfJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,6BAGF,aACE,kBACA,W1B7CM,0B0B+CN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,2DAKE,YACE,wDAKF,SACE,uBAKN,WACE,aACA,sBACA,4BAEA,iBACE,c5BpEgB,a4BsEhB,YACA,mBACA,CAGE,yDAIJ,UACE,gBAIJ,qBACE,eACA,gBACA,kBACA,kBACA,WACA,aACA,2BxB/DA,iBACE,mBACA,cACA,eACA,aACA,gBACA,sBwB8DJ,WACE,sBACA,cACA,WACA,kBACA,kBACA,gBACA,kCAEA,eACE,qEAIA,cACE,MACA,gCAIJ,e1BlIM,gC0BuIR,cACE,cACA,qBACA,c5B1HqB,kB4B4HrB,UACA,mEAEA,WAEE,WACA,sBACA,CADA,gCACA,CADA,kBACA,CAIE,0HAFF,WACE,oBACA,CADA,8BACA,CADA,gB1BtJE,C0BuJF,wBAKN,UACE,CAEA,iBACA,MACA,OACA,UACA,gB1BnKM,iC0BsKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,aACA,uBACA,qCAGF,cACE,YACA,WACA,kBACA,UACA,sBACA,CADA,gCACA,CADA,kBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,qDAEA,WACE,oBACA,CADA,8BACA,CADA,gBACA,sCAIJ,0BACE,2BACA,gBACA,kBACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,c1B3K0B,eAEC,C0BqL7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,yBACE,sBACA,SACA,W1BvQM,e0ByQN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,c5BlTsB,mF4BqTtB,yBAGE,wBAKN,oBACE,sBAGF,qB1BpUQ,Y0BsUN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wB5BpUqB,qB4BwUrB,iBACE,UACA,QACA,YACA,qKAKA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,oCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gB1BzZM,e0B2ZN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,gCAGF,UACE,YACA,0BxBjYF,iBACE,mBACA,cACA,eACA,aACA,gBACA,qBwBgYF,eACE,gBACA,UACA,kBACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gB1B9eI,cFcY,gB4BmehB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,CAGE,gUAEA,aAIE,wBAKN,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,U1BpjBE,+E0B4jBN,cAGE,gBACA,6BAGF,U1BnkBM,iB0BqkBJ,yBAGF,oBACE,aACA,mDAGF,U1B7kBM,uB0BklBN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,W1BloBE,sF0BqoBF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,iBC5sBR,YACE,mBACA,mBACA,kBACA,QACA,SACA,YACA,mBAGF,YACE,kBACA,gBACA,yBACA,0BACA,eACA,iBACA,yBACA,WACA,4BACA,wCAEA,uBCtBF,kB9BGqB,sB8BDnB,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kB9BnDqB,sB8BqDnB,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,aC3FJ,cAOE,qBACA,W/BPM,gD+BEJ,iBACA,+BAOF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mB/BjBsB,4B+BqBxB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,c/BfmB,c+BiBnB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,a/BlD0B,mC+BqDxB,aACE,oDAGF,QACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBACA,uBAIA,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gB7B5FM,sB6B8FN,sGAEA,+BAEE,oBAKF,2BACA,gB7BxGM,0B6B2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,gCACA,W/BnHI,yB+BqHJ,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,sCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gB7BpKI,mB6ByKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,c/BlKiB,mD+BqKjB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,wBC1MF,iBACE,aACA,mBACA,mBhCEwB,WAJlB,kBgCKN,YACA,WACA,gBACA,iBACA,gBACA,4DAEA,aACE,eACA,mFAGF,iBACE,kBACA,gBACA,+FAEA,iBACE,OACA,MACA,kCAIJ,aACE,chCTiB,2BgCanB,cACE,gBACA,iBACA,mBACA,2BAGF,cACE,gBACA,iBACA,gBACA,mBACA,0CAIJ,aACE,kBACA,cACA,mBACA,gCACA,eACA,qBACA,aACA,0BACA,4DAEA,aACE,iBACA,gDAGF,kBhC9DwB,iDgCkExB,kBhC1DmB,WEXb,qG8B0EN,kB9BxEU,WAFJ,oC8BgFR,kBACE,YACA,eACA,iBACA,gBACA,8BAGF,aACE,UACA,kBACA,YACA,gBACA,oCAGF,iBACE,4FAGF,eAEE,mBACA,qCAGF,mCACE,UACE,cACA,0CAGF,YACE,4DAEA,YACE,kBCtHN,U/BEQ,gC+BCN,oBAEA,cACE,iBACA,gBACA,kBACA,mBAGF,U/BVM,0B+BYJ,oBAGF,eACE,cACA,iBACA,mDAGF,UACE,YACA,gBACA,gCACA,gBC3BJ,WACE,gBACA,aACA,sBACA,yBACA,kBACA,+BAEA,gBACE,eACA,CACA,2BACA,kCAGF,QACE,iCAGF,aACE,6BAGF,sBACE,0BAGF,MACE,kBACA,aACA,sBACA,iBACA,mDAGF,eACE,sBhClCI,0BgCoCJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,YACE,gBACA,gLAEA,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,CAIA,yFAGF,eACE,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WhCjNM,kBgCmNN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,mCAGF,kBAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,QC1QJ,eACE,eACA,8BAEA,QAEE,gBACA,UAGF,kBACE,kBACA,cAGF,iBACE,MACA,OACA,YACA,qBACA,kBACA,mBACA,sBAEA,kBnCXiB,amCgBnB,iBACE,aACA,cACA,iBACA,eACA,gBACA,gEAEA,YAEE,gCAGF,aACE,8BAIA,qBACA,WACA,eACA,WnCjDE,cmCmDF,UACA,oBACA,gBjCpDE,yBiCsDF,kBACA,iBACA,oCAEA,oBnCtDoB,wBmC2DtB,cACE,sBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBjC7FY,8EiCkGZ,gBAGE,gBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,CACA,oBACA,iBACA,gBACA,mBACA,cACA,mBAGF,UACE,iBACA,eAGF,eACE,mBACA,cnC1Hc,amC8HhB,cACE,uBACA,UACA,SACA,SACA,cnCnIc,0BmCqId,kBACA,mBAEA,oBACE,sCAGF,qCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,4BACE,gCAEA,YACE,2CAGF,4BACE,aACA,aACA,mBACA,mGAEA,UAEE,aACA,+GAEA,oBnCtLoB,sDmC4LxB,cACE,gBACA,iBACA,YACA,oBACA,cnCpLkB,sCmCuLlB,gCAGF,YACE,mBACA,4CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WnC1NI,qBmC4NJ,WACA,UACA,oBACA,qXACA,yBACA,kBACA,CACA,yBACA,mDAGF,aACE,cAIJ,anC7NkB,qBmCgOhB,+BACE,6BAEA,6BACE,YC/ON,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,sBACE,eACA,gBACA,gBACA,qBACA,cpCPkB,oBoCUlB,apCnBwB,0BoCqBtB,6EAEA,oBAGE,wCAIJ,apCrBkB,oBoC0BlB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,cpClCmB,qBoCsCrB,iBACE,cpCvCmB,uBoC2CrB,eACE,mBACA,kBACA,kBACA,yHAGF,sBAME,mBACA,oBACA,gBACA,cpC3DmB,qBoC+DrB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,cpCxIc,iCoC4IhB,uBACE,gBACA,gBACA,cpC9IY,qDoCkJd,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,uBACA,eACA,iBACA,WlCpNI,iBkCsNJ,kBACA,qEAEA,aAEE,6CAIA,apChNiB,oCoCqNnB,sBACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,sBACE,eACA,iBACA,gBACA,cpClPc,mBoCoPd,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAIE,UACqB,sChCnRzB,CgCoRI,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iBlCpOgB,wBE9DtB,4BACA,iCgCsSE,cACE,mCAEA,aACE,WlC3SA,qBkC6SA,uDAGE,yBACE,2CAKN,aACE,cpC1SY,kCoCkTlB,sBAEE,CACA,eACA,eACA,iBACA,mBACA,cpCzTgB,sCoC4ThB,apCrUsB,0BoCuUpB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,sBACE,eACA,iBACA,gBACA,mBACA,cpCjVmB,wBoCoVnB,sBACE,cACA,eACA,gBACA,cACA,kBAKF,cACA,iBpC/VmB,mCoC6VrB,sBACE,CAEA,eACA,mBACA,cpClWmB,kBoCuWnB,cACA,iBpCxWmB,kBoCgXnB,cpChXmB,mCoC+WrB,sBACE,CACA,gBACA,gBACA,mBACA,cpCpXmB,kBoCyXnB,cpCzXmB,kBoCiYrB,sBACE,eACA,iBACA,gBACA,mBACA,cpCtYmB,mCoC0YrB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,4CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBpCpcmB,kBoCscjB,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAMA,UACqB,sChC9hB3B,mDgCiiBI,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA9DF,iBA+DI,mFAIJ,qBAGE,mBpC9jBiB,kBoCgkBjB,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,apChlBmB,qCoColBnB,eACE,WlCpmBE,gBkCsmBF,2CAEA,apC3lBc,gDoC8lBZ,apC5lBe,+CoCkmBnB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SlC1rBI,YkC4rBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,cpCvsBc,6BoC2sBhB,eACE,iBACA,+BAGF,kBpC5tBiB,aoC8tBf,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,sBACE,eACA,gBACA,cACA,qCAGF,cACE,cpCtvBY,uFoC4vBlB,eACE,cASA,CpCtwBgB,2CoCmwBhB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,cpC92BsB,qBoCg3BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,cpC12Bc,SqChBlB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBrCxBmB,UqC6BnB,arC1BwB,0BqC4BtB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBrCjEiB,6BqCmEf,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+BACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,crC/FkB,gBqCiGlB,0DAEA,UnChHM,wDmCoHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBrC/JiB,sBqCiKjB,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBrC9KiB,gCqCiLjB,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBrCtMiB,uCqCyMf,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,crClOY,gBqCoOZ,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,sCAEA,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBCzRN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBtCfe,YsCiBf,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SpCxCA,YoC0CE,kBACA,YACA,uCAIJ,aACE,ctCpCY,qBsCsCZ,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,ctC9EY,qBsCgFZ,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UpCzGA,yBoC2GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UpCjIE,yBFWa,gBsCyHb,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,atCrMmB,esCuMjB,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,atChNmB,esCkNjB,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,ctC7Nc,mBsC+Nd,kBACA,gCACA,4BAGF,cACE,ctCnOiB,iBsCqOjB,gBACA,0CAGF,UpCxPI,gBoC0PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WpCxQE,oBoC0QF,iBACA,gBACA,mBACA,2BAGF,cACE,iBACA,ctCnQiB,mBsCqQjB,kCAEA,UpCtRE,gBoCwRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,4CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BtCxUe,YsC+UrB,UACE,SACA,cACA,WACA,sDAKA,atCtVkB,0DsCyVhB,atClWsB,4DsCuWxB,apC1Wc,gBoC4WZ,4DAGF,apC9WU,gBoCgXR,0DAGF,atCvWgB,gBsCyWd,0DAGF,apCtXU,gBoCwXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,2BAKN,oBACE,ctCtZc,qBsCwZd,yBACA,eACA,gBACA,gCACA,iCAEA,UpC3aE,gCoC6aA,oCAGF,atC5aoB,gCsC8alB,iBAMR,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,ctC1cmB,CsC+cf,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,atCpiBwB,qBsCsiBtB,oBAEA,yBACE,SAKN,aACE,YAGF,kBACE,iBACA,oBAEA,YACE,2BACA,mBACA,aACA,mBtC7jBiB,cAYD,0BsCojBhB,eACA,kBACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,atC5kBgB,oBsCglBhB,kBACE,0BACA,aACA,ctCplBgB,gCsCslBhB,eACA,qBACA,gBACA,kBAGF,cACE,kBACA,ctC7lBc,2BsCimBhB,iBACE,SACA,WACA,WACA,YACA,kBACA,oCAEA,kBpCtnBY,oCoC0nBZ,kBACE,mCAGF,kBtCpnBiB,sDsCynBnB,atCrnBqB,qBsCynBnB,gBACA,sBAGF,aACE,0BAGF,atCjoBqB,sBsCqoBrB,apCnpBc,yDoCwpBhB,oBAIE,ctC9oBqB,iGsCipBrB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBpCxsBc,yBoC4sBd,yBACE,wBAGF,yBpC7sBU,wBoCktBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,atCjtBgB,uBsCutBhB,wBACA,qBAGF,atC1tBgB,csC+tBlB,kBtC5uBqB,kBsC8uBnB,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,ctCtvBc,yBsCwvBd,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,apCjxBM,6BoCwxBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,ctC3xBY,mLsC8xBZ,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,atCzyBU,iBsC2yBR,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,ctCtzBY,WsC6zBpB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,apCv3BY,8CoC43Bd,qBACE,aACA,WpC/3BI,coCo4BR,iBACE,kkECr4BF,kIACE,CADF,sIACE,uIAYA,aAEE,yIAGF,aAEE,qIAGF,aAEE,6IAGF,aAEE,UChCJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,+BAGF,eACE,2EAGF,UAEE,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,+BAGF,UACE,0BAGF,gBACE,eACA,UAGA,WACA,yCAGF,iBACE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,gBACA,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,kEACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,sBChbJ,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WvCrCI,uBuCuCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,czCpCgB,kByCsChB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,azCnEwB,gByCqEtB,qBACA,2GCrEM,SACE,CDoER,iGCrEM,SACE,CDoER,qGCrEM,SACE,CDoER,sGCrEM,SACE,CDoER,4FCrEM,SACE,mJAQZ,aAME,0BACA,mMAEA,oBACE,iOAGF,yBACE,CAKE,0zCAIJ,oBAGE,uUAGF,a1C3BqB,qB0C6BnB,oCAIJ,yBACE,6HAEA,oBAGE,4BAIJ,yBACE,qGAEA,oBAGE,eAIJ,a1CvDoB,yE0C2DpB,+BACE,0D","file":"skins/glitch/contrast/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#313543 rgba(0,0,0,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#313543;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#353a49}::-webkit-scrollbar-thumb:active{background:#313543}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(0,0,0,.1)}::-webkit-scrollbar-track:hover{background:#282c37}::-webkit-scrollbar-track:active{background:#282c37}::-webkit-scrollbar-corner{background:transparent}body{font-family:sans-serif,sans-serif;background:#191b22;font-size:13px;line-height:18px;font-weight:400;color:#fff;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif,sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#282c37}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.embed{background:#313543;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#1f232b;padding:0}body.error{position:absolute;text-align:center;color:#dde3ec;background:#282c37;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#fff;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#fff;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:sans-serif,sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;width:40px;height:40px;background-size:40px 40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}.account-header .name{flex:1 1 auto;color:#ecf0f4;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#fff}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#42485a}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#dde3ec;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#fff}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#4a5266;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#535b72}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#ecf0f4}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#0e1014}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#313543;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;width:120px;height:120px;background-size:120px 120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #313543;background:#17191f;border-radius:8%;background-position:50%;background-clip:padding-box}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#313543;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#fff;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#dde3ec}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#dde3ec;padding:10px;border-right:1px solid #313543;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b90d9;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#ecf0f4}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#fff;font-family:sans-serif,sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #42485a}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#dde3ec}.public-layout .public-account-header__extra__links a{display:inline-block;color:#dde3ec;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#4e79df}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#fff}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#dde3ec}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #393f4f}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #393f4f}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#282c37}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#313543}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.modal-layout{background:#282c37 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#737d99}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#737d99}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#dde3ec}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#737d99}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#737d99}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#7f88a2}.compact-header h1{font-size:24px;line-height:28px;color:#dde3ec;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#ecf0f4}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#282c37;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#dde3ec;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#fefefe}.hero-widget__text a{color:#ecf0f4;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#dde3ec}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#dde3ec}.box-widget{padding:20px;border-radius:4px;background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #c2cede;text-align:center;color:#dde3ec;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#dde3ec;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#dde3ec}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#dde3ec;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2);color:#ecf0f4;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#dde3ec}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#dde3ec;margin-bottom:10px}.page-header{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#fff;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#dde3ec}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#313543}.page-header h1{font-size:24px}}.directory{background:#282c37;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#282c37;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#393f4f}.directory__tag.active>a{background:#2b5fd9;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#dde3ec}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#dde3ec}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small{color:#fff}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#2b5fd9}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#17191f;border:2px solid #282c37}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#dde3ec;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #393f4f}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#fff}.accounts-table__count small{display:block;color:#dde3ec;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #4a5266}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#dde3ec}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#2b5fd9}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#1f232b;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#fff;border-bottom:1px solid #313543}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #313543}code{font-family:monospace,monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#fff;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#2b90d9;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#dde3ec}.simple_form .hint a{color:#2b90d9}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#0e1014}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#dde3ec}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#fff;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .required abbr{text-decoration:none;color:#e87487}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#fff;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#fff;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #c2cede;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#131419;border:1px solid #0a0b0e;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#eaeef3}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#e87487}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#000}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#2b90d9;background:#17191f}.simple_form .input.field_with_errors label{color:#e87487}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#e87487}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#e87487;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#2b5fd9;color:#fff;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#416fdd}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#2454c7}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#e3566d}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#db2a47}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#131419 url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #0a0b0e;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#c2cede;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(19, 20, 25, 0), #131419)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(40,44,55,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#fff}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#393f4f;color:#dde3ec;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#dde3ec;text-decoration:none}.flash-message a:hover{color:#fff;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:monospace,monospace;background:#282c37;color:#fff;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#313543}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#dde3ec;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#2b90d9;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#4ea2df}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#dde3ec}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#ecf0f4;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#ecf0f4;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#fff;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#dde3ec}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#fff;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:monospace,monospace}.input-copy{background:#131419;border:1px solid #0a0b0e;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:monospace,monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#1f232b;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#1f232b;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#393f4f}.card__img{height:130px;position:relative;background:#0e1014;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#313543;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box;background:#17191f;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#fff;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#000;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#ecf0f4}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#1a1a1a}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2);color:#364861;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#d9e1e8;background-color:rgba(217,225,232,.1);border:1px solid rgba(217,225,232,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#e87487;background-color:rgba(232,116,135,.1);border-color:rgba(232,116,135,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #42485a;border-bottom:1px solid #42485a;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #42485a}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#ecf0f4;background:rgba(23,25,31,.5)}.account__header__fields dd{flex:1 1 auto;color:#dde3ec}.account__header__fields a{color:#2b90d9;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#dde3ec}.pending-account__header a{color:#d9e1e8;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#fff;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#282c37}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#393f4f}.button.logo-button{flex:0 auto;font-size:14px;background:#2b5fd9;color:#fff;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#fff}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#5680e1}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{padding:8px 0;padding-bottom:2px;margin:initial;margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{position:absolute;margin:initial;float:initial;width:auto;left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}.embed .status .status__info,.public-layout .status .status__info{font-size:15px;display:initial}.embed .status .status__relative-time,.public-layout .status .status__relative-time{color:#c2cede;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.embed .status .status__info .status__display-name,.public-layout .status .status__info .status__display-name{display:block;max-width:100%;padding:6px 0;padding-right:25px;margin:initial}.embed .status .status__info .status__display-name .display-name strong,.public-layout .status .status__info .status__display-name .display-name strong{display:inline}.embed .status .status__avatar,.public-layout .status .status__avatar{height:48px;position:absolute;width:48px;margin:initial}.rtl .embed .status,.rtl .public-layout .status{padding-left:10px;padding-right:68px}.rtl .embed .status .status__info .status__display-name,.rtl .public-layout .status .status__info .status__display-name{padding-left:25px;padding-right:0}.rtl .embed .status .status__relative-time,.rtl .public-layout .status .status__relative-time{float:left}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.link-button{display:block;font-size:15px;line-height:20px;color:#2b5fd9;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#2558d0;border:10px none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;transition-property:background-color;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#4976de;transition:all 200ms ease-out;transition-property:background-color}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled{background-color:#9baec8;cursor:default}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#000;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#a8b9cf}.button.button-alternative-2{background:#606984}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#687390}.button.button-secondary{font-size:16px;line-height:36px;height:auto;color:#dde3ec;text-transform:none;background:transparent;padding:3px 15px;border-radius:4px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#a8b9cf;color:#eaeef3}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.icon-button{display:inline-block;padding:0;color:#8d9ac2;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#a4afce;background-color:rgba(141,154,194,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(141,154,194,.3)}.icon-button.disabled{color:#6274ab;background-color:transparent;cursor:default}.icon-button.active{color:#2b90d9}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#1b1e25}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#0c0d11;background-color:rgba(27,30,37,.15)}.icon-button.inverted:focus{background-color:rgba(27,30,37,.3)}.icon-button.inverted.disabled{color:#2a2e3a;background-color:transparent}.icon-button.inverted.active{color:#2b90d9}.icon-button.inverted.active.disabled{color:#63ade3}.icon-button.overlayed{box-sizing:content-box;background:rgba(0,0,0,.6);color:rgba(255,255,255,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(0,0,0,.9)}.text-icon-button{color:#1b1e25;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#0c0d11;background-color:rgba(27,30,37,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(27,30,37,.3)}.text-icon-button.disabled{color:#464d60;background-color:transparent;cursor:default}.text-icon-button.active{color:#2b90d9}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute;transform-origin:50% 0}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.notification__favourite-icon-wrapper{left:0;position:absolute}.notification__favourite-icon-wrapper .fa.star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#fff;text-decoration:underline}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name a{color:inherit;text-decoration:inherit}.display-name strong{height:18px;font-size:16px;font-weight:500;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name span{display:block;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name>a:hover strong{text-decoration:underline}.display-name.inline{padding:0;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.display-name.inline strong{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name.inline span{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #c0cdd9;margin:5px 7px 6px;height:0}.dropdown-menu{background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.dropdown-menu ul{list-style:none}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#d9e1e8}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#d9e1e8}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#2b5fd9;color:#ecf0f4;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#2b5fd9;color:#ecf0f4}.dropdown__icon{vertical-align:middle}.static-content{padding:10px;padding-top:20px;color:#c2cede}.static-content h1{font-size:16px;font-weight:500;margin-bottom:40px;text-align:center}.static-content p{font-size:13px;margin-bottom:20px}.column,.drawer{flex:1 1 100%;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#393f4f;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#fff;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #393f4f;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.auto-columns .tabs-bar__link:hover,.auto-columns .tabs-bar__link:focus,.auto-columns .tabs-bar__link:active{background:#464d60;border-bottom-color:#464d60}}.multi-columns .tabs-bar__link:hover,.multi-columns .tabs-bar__link:focus,.multi-columns .tabs-bar__link:active{background:#464d60;border-bottom-color:#464d60}.tabs-bar__link.active{border-bottom:2px solid #2b5fd9;color:#2b90d9}.tabs-bar__link span{margin-left:5px;display:none}.tabs-bar__link span.icon{margin-left:0;display:inline}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#2b5fd9;border:2px solid #393f4f;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#fff}.column-link--transparent .icon-with-badge__badge{border-color:#17191f}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#282c37;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#131419}.react-toggle--checked .react-toggle-track{background-color:#2b5fd9}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#5680e1}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #282c37;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#2b5fd9}.getting-started__wrapper,.getting_started,.flex-spacer{background:#282c37}.getting-started__wrapper{position:relative;overflow-y:auto}.flex-spacer{flex:1 1 auto}.getting-started{background:#282c37;flex:1 0 auto}.getting-started p{color:#ecf0f4}.getting-started a{color:#c2cede}.getting-started__panel{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex:0 1 auto}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{color:#c2cede;font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#c2cede;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#dde3ec}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#dde3ec;padding:10px;font-weight:500;border-bottom:1px solid #393f4f}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#dde3ec}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#282c37;padding:4px 8px;margin:-6px 10px}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#393f4f;border:1px solid #1f232b}.setting-text{color:#dde3ec;background:transparent;border:none;border-bottom:2px solid #9baec8;box-sizing:border-box;display:block;font-family:inherit;margin-bottom:10px;padding:7px 0;width:100%}.setting-text:focus,.setting-text:active{color:#fff;border-bottom-color:#2b5fd9}@media screen and (max-width: 600px){.auto-columns .setting-text,.single-column .setting-text{font-size:16px}}.setting-text.light{color:#000;border-bottom:2px solid #626c87}.setting-text.light:focus,.setting-text.light:active{color:#000;border-bottom-color:#2b5fd9}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#8d9ac2;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#2b90d9}.reduce-motion button.icon-button.disabled i.fa-retweet{color:#6274ab}.load-more{display:block;color:#c2cede;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#2c313d}.load-gap{border-bottom:1px solid #393f4f}.missing-indicator{padding-top:68px}.scrollable>div>:first-child .notification__dismiss-overlay>.wrappy{border-top:1px solid #282c37}.notification__dismiss-overlay{overflow:hidden;position:absolute;top:0;right:0;bottom:-1px;padding-left:15px;z-index:999;align-items:center;justify-content:flex-end;cursor:pointer;display:flex}.notification__dismiss-overlay .wrappy{width:4rem;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#393f4f;border-left:1px solid #535b72;box-shadow:0 0 5px #000;border-bottom:1px solid #282c37}.notification__dismiss-overlay .ckbox{border:2px solid #9baec8;border-radius:2px;width:30px;height:30px;font-size:20px;color:#dde3ec;text-shadow:0 0 5px #000;display:flex;justify-content:center;align-items:center}.notification__dismiss-overlay:focus{outline:0 !important}.notification__dismiss-overlay:focus .ckbox{box-shadow:0 0 1px 1px #2b5fd9}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.loading-indicator{color:#c2cede;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #606984;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#606984}29%{background-color:#606984}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:flex;left:4px;top:4px;width:auto;height:auto;align-items:center}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(0,0,0,.5);border-radius:8px;padding:8px 12px;color:#fff;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(0,0,0,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(0,0,0,.5)}.setting-toggle{display:block;line-height:24px}.setting-toggle__label,.setting-radio__label,.setting-meta__label{color:#dde3ec;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.setting-radio{display:block;line-height:18px}.setting-radio__label{margin-bottom:0}.column-settings__row legend{color:#dde3ec;cursor:default;display:block;font-weight:500;margin-top:10px}.setting-radio__input{vertical-align:middle}.setting-meta__label{float:right}@keyframes heartbeat{from{transform:scale(1);transform-origin:center center;animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.pulse-loading{animation:heartbeat 1.5s ease-in-out infinite both}.upload-area{align-items:center;background:rgba(0,0,0,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#282c37;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#ecf0f4;font-size:18px;font-weight:500;border:2px dashed #606984;border-radius:4px}.dropdown--active .emoji-button img{opacity:1;filter:none}.loading-bar{background-color:#2b5fd9;height:3px;position:absolute;top:0;left:0;z-index:9999}.icon-badge-wrapper{position:relative}.icon-badge{position:absolute;display:block;right:-0.25em;top:-0.25em;background-color:#2b5fd9;border-radius:50%;font-size:75%;width:1em;height:1em}.conversation{display:flex;border-bottom:1px solid #393f4f;padding:5px;padding-bottom:0}.conversation:focus{background:#2c313d;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative}.conversation__unread{display:inline-block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#dde3ec;padding-left:15px}.conversation__content__names{color:#dde3ec;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#fff;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content .status__content{margin:0}.conversation--unread{background:#2c313d}.conversation--unread:focus{background:#313543}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#fff}.ui .flash-message{margin-top:10px;margin-left:auto;margin-right:auto;margin-bottom:0;min-width:75%}::-webkit-scrollbar-thumb{border-radius:0}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#ecf0f4;max-width:400px}noscript div a{color:#2b90d9;text-decoration:underline}noscript div a:hover{text-decoration:none}noscript div a{word-break:break-word}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet,button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.status-direct button.icon-button.disabled i.fa-retweet,.status-direct button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.account{padding:10px;border-bottom:1px solid #393f4f;color:inherit;text-decoration:none}.account .account__display-name{flex:1 1 auto;display:block;color:#dde3ec;overflow:hidden;text-decoration:none;font-size:14px}.account.small{border:none;padding:0}.account.small>.account__avatar-wrapper{margin:0 8px 0 0}.account.small>.display-name{height:24px;line-height:24px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:8%;background-position:50%;background-clip:padding-box;position:relative;cursor:pointer}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:8%;background-position:50%;background-clip:padding-box;overflow:hidden;position:relative;cursor:default}.account__avatar-composite div{border-radius:8%;background-position:50%;background-clip:padding-box;float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}.account__avatar-overlay{position:relative;width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:8%;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:8%;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__header__wrapper{flex:0 0 auto;background:#313543}.account__disclaimer{padding:10px;color:#c2cede}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-left:1px solid #393f4f;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab:first-child{border-left:0}.account__action-bar__tab.active{border-bottom:4px solid #2b5fd9}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#dde3ec}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#fff}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account__action-bar__tab abbr{color:#2b90d9}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.notification__message{margin-left:42px;padding:8px 0 0 26px;cursor:default;color:#dde3ec;font-size:15px;position:relative}.notification__message .fa{color:#2b90d9}.notification__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account--panel{background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#393f4f;padding:15px}.column-settings__section{color:#dde3ec;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#282c37;color:#dde3ec;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#eaeef3}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#313543}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#c2cede;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#393f4f}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#42485a;color:#eaeef3}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#dde3ec}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#c2cede}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#d0d9e5}.column-settings__hashtags .column-select__indicator-separator{background-color:#393f4f}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#364861;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#d9e1e8}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#364861;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#000}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#000;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#b9c8d5}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#fff;margin-bottom:4px;display:block;vertical-align:top;background-color:#000;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:none;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#1f232b;border-bottom:1px solid #393f4f;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#1f232b;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#dde3ec;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#ecf0f4}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #393f4f}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #282c37}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#242731;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #191b22}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f}.account__moved-note__message{position:relative;margin-left:58px;color:#c2cede;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.account__header__content{color:#dde3ec;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#1f232b}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#313543;padding:5px;border-bottom:1px solid #42485a}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#17191f;border:2px solid #313543}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #42485a;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#fff}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #42485a}.account__header__bio .account__header__fields a{color:#4e79df}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#dde3ec;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#dde3ec;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#fff}.domain{padding:10px;border-bottom:1px solid #393f4f}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#fff;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}@keyframes spring-flip-in{0%{transform:rotate(0deg)}30%{transform:rotate(-242.4deg)}60%{transform:rotate(-158.35deg)}90%{transform:rotate(-187.5deg)}100%{transform:rotate(-180deg)}}@keyframes spring-flip-out{0%{transform:rotate(-180deg)}30%{transform:rotate(62.4deg)}60%{transform:rotate(-21.635deg)}90%{transform:rotate(7.5deg)}100%{transform:rotate(0deg)}}.status__content--with-action{cursor:pointer}.status__content{position:relative;margin:10px 0;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:visible;padding-top:5px}.status__content:focus{outline:0}.status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.status__content pre,.status__content blockquote{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.status__content pre:last-child,.status__content blockquote:last-child{margin-bottom:0}.status__content .status__content__text,.status__content .e-content{overflow:hidden}.status__content .status__content__text>ul,.status__content .status__content__text>ol,.status__content .e-content>ul,.status__content .e-content>ol{margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h1,.status__content .e-content h2,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{margin-top:20px;margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .e-content h1,.status__content .e-content h2{font-weight:700;font-size:1.2em}.status__content .status__content__text h2,.status__content .e-content h2{font-size:1.1em}.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{font-weight:500}.status__content .status__content__text blockquote,.status__content .e-content blockquote{padding-left:10px;border-left:3px solid #dde3ec;color:#dde3ec;white-space:normal}.status__content .status__content__text blockquote p:last-child,.status__content .e-content blockquote p:last-child{margin-bottom:0}.status__content .status__content__text b,.status__content .status__content__text strong,.status__content .e-content b,.status__content .e-content strong{font-weight:700}.status__content .status__content__text em,.status__content .status__content__text i,.status__content .e-content em,.status__content .e-content i{font-style:italic}.status__content .status__content__text sub,.status__content .e-content sub{font-size:smaller;text-align:sub}.status__content .status__content__text sup,.status__content .e-content sup{font-size:smaller;vertical-align:super}.status__content .status__content__text ul,.status__content .status__content__text ol,.status__content .e-content ul,.status__content .e-content ol{margin-left:1em}.status__content .status__content__text ul p,.status__content .status__content__text ol p,.status__content .e-content ul p,.status__content .e-content ol p{margin:0}.status__content .status__content__text ul,.status__content .e-content ul{list-style-type:disc}.status__content .status__content__text ol,.status__content .e-content ol{list-style-type:decimal}.status__content a{color:#d8a070;text-decoration:none}.status__content a:hover{text-decoration:underline}.status__content a:hover .fa{color:#dae1ea}.status__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span{text-decoration:underline}.status__content a .fa{color:#c2cede}.status__content .status__content__spoiler{display:none}.status__content .status__content__spoiler.status__content__spoiler--visible{display:block}.status__content a.unhandled-link{color:#4e79df}.status__content a.unhandled-link .link-origin-tag{color:#ca8f04;font-size:.8em}.status__content .status__content__spoiler-link{background:#687390}.status__content .status__content__spoiler-link:hover{background:#707b97;text-decoration:none}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:#687390;border:none;color:#000;font-weight:500;font-size:11px;padding:0 5px;text-transform:uppercase;line-height:inherit;cursor:pointer;vertical-align:bottom}.status__content__spoiler-link:hover{background:#707b97;text-decoration:none}.status__content__spoiler-link .status__content__spoiler-icon{display:inline-block;margin:0 0 0 5px;border-left:1px solid currentColor;padding:0 0 0 4px;font-size:16px;vertical-align:-2px}.notif-cleaning .status,.notif-cleaning .notification-follow,.notif-cleaning .notification-follow-request{padding-right:4.5rem}.status__wrapper--filtered{color:#c2cede;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #393f4f}.status__prepend-icon-wrapper{left:-26px;position:absolute}.notification-follow,.notification-follow-request{position:relative;border-bottom:1px solid #393f4f}.notification-follow .account,.notification-follow-request .account{border-bottom:0 none}.focusable:focus{outline:0;background:#313543}.focusable:focus.status.status-direct:not(.read){background:#42485a}.focusable:focus.status.status-direct:not(.read).muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#393f4f}.status{padding:10px 14px;position:relative;height:auto;border-bottom:1px solid #393f4f;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:28px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#393f4f;border-bottom-color:#42485a}.status.light .status__relative-time{color:#1b1e25}.status.light .status__display-name{color:#000}.status.light .display-name strong{color:#000}.status.light .display-name span{color:#1b1e25}.status.light .status__content{color:#000}.status.light .status__content a{color:#2b90d9}.status.light .status__content a.status__content__spoiler-link{color:#fff;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#b5c3d6}.status.collapsed{background-position:center;background-size:cover;user-select:none}.status.collapsed.has-background::before{display:block;position:absolute;left:0;right:0;top:0;bottom:0;background-image:linear-gradient(to bottom, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.65) 24px, rgba(0, 0, 0, 0.8));pointer-events:none;content:\"\"}.status.collapsed .display-name:hover .display-name__html{text-decoration:none}.status.collapsed .status__content{height:20px;overflow:hidden;text-overflow:ellipsis;padding-top:0}.status.collapsed .status__content:after{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background:linear-gradient(rgba(40, 44, 55, 0), #282c37);pointer-events:none}.status.collapsed .status__content a:hover{text-decoration:none}.status.collapsed:focus>.status__content:after{background:linear-gradient(rgba(49, 53, 67, 0), #313543)}.status.collapsed.status-direct:not(.read)>.status__content:after{background:linear-gradient(rgba(57, 63, 79, 0), #393f4f)}.status.collapsed .notification__message{margin-bottom:0}.status.collapsed .status__info .notification__message>span{white-space:nowrap}.status .notification__message{margin:-10px 0px 10px 0}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#b8c0d9}.status__relative-time{display:inline-block;flex-grow:1;color:#c2cede;font-size:14px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status__display-name{color:#c2cede;overflow:hidden}.status__info__account .status__display-name{display:block;max-width:100%}.status__info{display:flex;justify-content:space-between;font-size:15px}.status__info>span{text-overflow:ellipsis;overflow:hidden}.status__info .notification__message>span{word-wrap:break-word}.status__info__icons{display:flex;align-items:center;height:1em;color:#8d9ac2}.status__info__icons .status__media-icon,.status__info__icons .status__visibility-icon,.status__info__icons .status__reply-icon{padding-left:2px;padding-right:2px}.status__info__icons .status__collapse-button.active>.fa-angle-double-up{transform:rotate(-180deg)}.no-reduce-motion .status__collapse-button.activate>.fa-angle-double-up{animation:spring-flip-in 1s linear}.no-reduce-motion .status__collapse-button.deactivate>.fa-angle-double-up{animation:spring-flip-out 1s linear}.status__info__account{display:flex;align-items:center;justify-content:flex-start}.status-check-box{border-bottom:1px solid #d9e1e8;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-top:-10px;margin-bottom:10px;margin-left:58px;color:#c2cede;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#c2cede}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#8d9ac2}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#313543;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#c2cede;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#fff}.muted .emojione{opacity:.5}a.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#ecf0f4;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#fff}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{flex:none;margin:0 10px 0 0;height:48px;width:48px}.muted .status__content,.muted .status__content p,.muted .status__content a,.muted .status__content__text{color:#c2cede}.muted .status__display-name strong{color:#c2cede}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#606984;color:#000}.muted a.status__content__spoiler-link:hover{background:#66718d;text-decoration:none}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.status-card{display:flex;font-size:14px;border:1px solid #393f4f;border-radius:4px;color:#c2cede;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#ecf0f4;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}.status-card__actions a .fa,.status-card__actions a:hover .fa{color:inherit}a.status-card{cursor:pointer}a.status-card:hover{background:#393f4f}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#dde3ec;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#dde3ec}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#393f4f;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#313543}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#313543}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.attachment-list{display:flex;font-size:14px;border:1px solid #393f4f;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#c2cede;padding:8px 18px;cursor:default;border-right:1px solid #393f4f;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#c2cede;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#c2cede}.status__wrapper--filtered__button{display:inline;color:#4e79df;border:0;background:transparent;padding:0;font-size:inherit;line-height:inherit}.status__wrapper--filtered__button:hover,.status__wrapper--filtered__button:active{text-decoration:underline}.modal-container--preloader{background:#393f4f}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.onboarding-modal,.error-modal,.embed-modal{background:#d9e1e8;color:#000;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.onboarding-modal__pager{height:80vh;width:80vw;max-width:520px;max-height:470px}.onboarding-modal__pager .react-swipeable-view-container>div{width:100%;height:100%;box-sizing:border-box;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;user-select:text}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}@media screen and (max-width: 550px){.onboarding-modal{width:100%;height:100%;border-radius:0}.onboarding-modal__pager{width:100%;height:auto;max-width:none;max-height:none;flex:1 1 auto}}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#c0cdd9;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#1b1e25;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#131419;background-color:#a6b9c9}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#000}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#0a0a0a}.error-modal__footer{justify-content:center}.onboarding-modal__dots{flex:1 1 auto;display:flex;align-items:center;justify-content:center}.onboarding-modal__dot{width:14px;height:14px;border-radius:14px;background:#a6b9c9;margin:0 3px;cursor:pointer}.onboarding-modal__dot:hover{background:#a0b4c5}.onboarding-modal__dot.active{cursor:default;background:#8da5ba}.onboarding-modal__page__wrapper{pointer-events:none;padding:25px;padding-bottom:0}.onboarding-modal__page__wrapper.onboarding-modal__page__wrapper--active{pointer-events:auto}.onboarding-modal__page{cursor:default;line-height:21px}.onboarding-modal__page h1{font-size:18px;font-weight:500;color:#000;margin-bottom:20px}.onboarding-modal__page a{color:#2b90d9}.onboarding-modal__page a:hover,.onboarding-modal__page a:focus,.onboarding-modal__page a:active{color:#3c99dc}.onboarding-modal__page .navigation-bar a{color:inherit}.onboarding-modal__page p{font-size:16px;color:#1b1e25;margin-top:10px;margin-bottom:10px}.onboarding-modal__page p:last-child{margin-bottom:0}.onboarding-modal__page p strong{font-weight:500;background:#282c37;color:#ecf0f4;border-radius:4px;font-size:14px;padding:3px 6px}.onboarding-modal__page p strong:lang(ja){font-weight:700}.onboarding-modal__page p strong:lang(ko){font-weight:700}.onboarding-modal__page p strong:lang(zh-CN){font-weight:700}.onboarding-modal__page p strong:lang(zh-HK){font-weight:700}.onboarding-modal__page p strong:lang(zh-TW){font-weight:700}.onboarding-modal__page__wrapper-0{height:100%;padding:0}.onboarding-modal__page-one__lead{padding:65px;padding-top:45px;padding-bottom:0;margin-bottom:10px}.onboarding-modal__page-one__lead h1{font-size:26px;line-height:36px;margin-bottom:8px}.onboarding-modal__page-one__lead p{margin-bottom:0}.onboarding-modal__page-one__extra{padding-right:65px;padding-left:185px;text-align:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#000;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#282c37;color:#ecf0f4;font-weight:500;padding:10px;border-radius:4px}.onboarding-modal__page-two p,.onboarding-modal__page-three p,.onboarding-modal__page-four p,.onboarding-modal__page-five p{text-align:left}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{background:#17191f;color:#ecf0f4;margin-bottom:20px;border-radius:4px;padding:10px;text-align:center;font-size:14px;box-shadow:1px 2px 6px rgba(0,0,0,.3)}.onboarding-modal__page-two .figure .onboarding-modal__image,.onboarding-modal__page-three .figure .onboarding-modal__image,.onboarding-modal__page-four .figure .onboarding-modal__image,.onboarding-modal__page-five .figure .onboarding-modal__image{border-radius:4px;margin-bottom:10px}.onboarding-modal__page-two .figure.non-interactive,.onboarding-modal__page-three .figure.non-interactive,.onboarding-modal__page-four .figure.non-interactive,.onboarding-modal__page-five .figure.non-interactive{pointer-events:none;text-align:left}.onboarding-modal__page-four__columns .row{display:flex;margin-bottom:20px}.onboarding-modal__page-four__columns .row>div{flex:1 1 0;margin:0 10px}.onboarding-modal__page-four__columns .row>div:first-child{margin-left:0}.onboarding-modal__page-four__columns .row>div:last-child{margin-right:0}.onboarding-modal__page-four__columns .row>div p{text-align:center}.onboarding-modal__page-four__columns .row:last-child{margin-bottom:0}.onboarding-modal__page-four__columns .column-header{color:#fff}@media screen and (max-width: 320px)and (max-height: 600px){.onboarding-modal__page p{font-size:14px;line-height:20px}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{font-size:12px;margin-bottom:10px}.onboarding-modal__page-four__columns .row{margin-bottom:10px}.onboarding-modal__page-four__columns .column-header{padding:5px;font-size:12px}}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.doodle-modal,.favourite-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#f2f5f7;color:#000;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__relative-time,.doodle-modal .status__relative-time,.favourite-modal .status__relative-time,.confirmation-modal .status__relative-time,.report-modal .status__relative-time,.actions-modal .status__relative-time,.mute-modal .status__relative-time,.block-modal .status__relative-time{color:#c2cede;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.boost-modal .status__display-name,.doodle-modal .status__display-name,.favourite-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:flex}.boost-modal .status__avatar,.doodle-modal .status__avatar,.favourite-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:48px;width:48px}.boost-modal .status__content__spoiler-link,.doodle-modal .status__content__spoiler-link,.favourite-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#fff}.actions-modal .status{background:#fff;border-bottom-color:#d9e1e8;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#d9e1e8}.boost-modal__container,.favourite-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status,.favourite-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.doodle-modal__action-bar,.favourite-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#d9e1e8;padding:10px;line-height:36px}.boost-modal__action-bar>div,.doodle-modal__action-bar>div,.favourite-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#1b1e25;padding-right:10px}.boost-modal__action-bar .button,.doodle-modal__action-bar .button,.favourite-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header,.favourite-modal__status-header{font-size:15px}.boost-modal__status-time,.favourite-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #d9e1e8}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#2b90d9}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #d9e1e8;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #d9e1e8;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #c0cdd9}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #d9e1e8;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#000;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#000;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal strong{display:block;font-weight:500}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#000;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#2b5fd9;color:#fff}.actions-modal ul li:not(:empty) a>.react-toggle,.actions-modal ul li:not(:empty) a>.icon,.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#1b1e25;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#131419;background-color:transparent}.confirmation-modal__do_not_ask_again{padding-left:20px;padding-right:20px;padding-bottom:10px;font-size:14px}.confirmation-modal__do_not_ask_again label,.confirmation-modal__do_not_ask_again input{vertical-align:middle}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#000;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#282c37;color:#fff;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#313543}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#fff;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.filtered-status-info{text-align:start}.filtered-status-info .spoiler__text{margin-top:20px}.filtered-status-info .account{border-bottom:0}.filtered-status-info .account__display-name strong{color:#000}.filtered-status-info .status__content__spoiler{display:none}.filtered-status-info .status__content__spoiler--visible{display:flex}.filtered-status-info ul{padding:10px;margin-left:12px;list-style:disc inside}.filtered-status-info .filtered-status-edit-link{color:#8d9ac2;text-decoration:none}.filtered-status-info .filtered-status-edit-link:hover{text-decoration:underline}.composer{padding:10px}.character-counter{cursor:default;font-family:sans-serif,sans-serif;font-size:14px;font-weight:600;color:#1b1e25}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .composer--spoiler{transition:height .4s ease,opacity .4s ease}.composer--spoiler{height:0;transform-origin:bottom;opacity:0}.composer--spoiler.composer--spoiler--visible{height:36px;margin-bottom:11px;opacity:1}.composer--spoiler input{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px;padding:10px;width:100%;outline:0;color:#000;background:#fff;font-size:14px;font-family:inherit;resize:vertical}.composer--spoiler input::placeholder{color:#c2cede}.composer--spoiler input:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .composer--spoiler input{font-size:16px}}.single-column .composer--spoiler input{font-size:16px}.composer--warning{color:#000;margin-bottom:15px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.composer--warning a{color:#1b1e25;font-weight:500;text-decoration:underline}.composer--warning a:active,.composer--warning a:focus,.composer--warning a:hover{text-decoration:none}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#2b90d9}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-left:5px;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#2b90d9;background:#2b90d9}.composer--reply{margin:0 0 10px;border-radius:4px;padding:10px;background:#9baec8;min-height:23px;overflow-y:auto;flex:0 2 auto}.composer--reply>header{margin-bottom:5px;overflow:hidden}.composer--reply>header>.account.small{color:#000}.composer--reply>header>.cancel{float:right;line-height:24px}.composer--reply>.content{position:relative;margin:10px 0;padding:0 12px;font-size:14px;line-height:20px;color:#000;word-wrap:break-word;font-weight:400;overflow:visible;white-space:pre-wrap;padding-top:5px;overflow:hidden}.composer--reply>.content p,.composer--reply>.content pre,.composer--reply>.content blockquote{margin-bottom:20px;white-space:pre-wrap}.composer--reply>.content p:last-child,.composer--reply>.content pre:last-child,.composer--reply>.content blockquote:last-child{margin-bottom:0}.composer--reply>.content h1,.composer--reply>.content h2,.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{margin-top:20px;margin-bottom:20px}.composer--reply>.content h1,.composer--reply>.content h2{font-weight:700;font-size:18px}.composer--reply>.content h2{font-size:16px}.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{font-weight:500}.composer--reply>.content blockquote{padding-left:10px;border-left:3px solid #000;color:#000;white-space:normal}.composer--reply>.content blockquote p:last-child{margin-bottom:0}.composer--reply>.content b,.composer--reply>.content strong{font-weight:700}.composer--reply>.content em,.composer--reply>.content i{font-style:italic}.composer--reply>.content sub{font-size:smaller;text-align:sub}.composer--reply>.content ul,.composer--reply>.content ol{margin-left:1em}.composer--reply>.content ul p,.composer--reply>.content ol p{margin:0}.composer--reply>.content ul{list-style-type:disc}.composer--reply>.content ol{list-style-type:decimal}.composer--reply>.content a{color:#1b1e25;text-decoration:none}.composer--reply>.content a:hover{text-decoration:underline}.composer--reply>.content a.mention:hover{text-decoration:none}.composer--reply>.content a.mention:hover span{text-decoration:underline}.composer--reply .emojione{width:20px;height:20px;margin:-5px 0 0}.emoji-picker-dropdown{position:absolute;right:5px;top:5px}.emoji-picker-dropdown ::-webkit-scrollbar-track:hover,.emoji-picker-dropdown ::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.compose-form__autosuggest-wrapper,.autosuggest-input{position:relative;width:100%}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.autosuggest-input label .autosuggest-textarea__textarea{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px 4px 0 0;padding:10px 32px 0 10px;width:100%;min-height:100px;outline:0;color:#000;background:#fff;font-size:14px;font-family:inherit;resize:none;scrollbar-color:initial}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::placeholder,.autosuggest-input label .autosuggest-textarea__textarea::placeholder{color:#c2cede}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::-webkit-scrollbar,.autosuggest-input label .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:disabled,.autosuggest-input label .autosuggest-textarea__textarea:disabled{background:#d9e1e8}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:focus,.autosuggest-input label .autosuggest-textarea__textarea:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}}.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}@media screen and (max-width: 600px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.composer--textarea--icons{display:block;position:absolute;top:29px;right:5px;bottom:5px;overflow:hidden}.composer--textarea--icons>.textarea_icon{display:block;margin:2px 0 0 2px;width:24px;height:24px;color:#1b1e25;font-size:18px;line-height:24px;text-align:center;opacity:.8}.autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.autosuggest-textarea__suggestions{display:block;position:absolute;box-sizing:border-box;top:100%;border-radius:0 0 4px 4px;padding:6px;width:100%;color:#000;background:#d9e1e8;box-shadow:4px 4px 6px rgba(0,0,0,.4);font-size:14px;z-index:99;display:none}.autosuggest-textarea__suggestions--visible{display:block}.autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.autosuggest-textarea__suggestions__item:hover,.autosuggest-textarea__suggestions__item:focus,.autosuggest-textarea__suggestions__item:active,.autosuggest-textarea__suggestions__item.selected{background:#b9c8d5}.autosuggest-textarea__suggestions__item>.account,.autosuggest-textarea__suggestions__item>.emoji,.autosuggest-textarea__suggestions__item>.autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.autosuggest-textarea__suggestions__item .autosuggest-hashtag{justify-content:space-between}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item .autosuggest-hashtag strong{font-weight:500}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item>.account.small .display-name>span{color:#1b1e25}.composer--upload_form{overflow:hidden}.composer--upload_form>.content{display:flex;flex-direction:row;flex-wrap:wrap;font-family:inherit;padding:5px;overflow:hidden}.composer--upload_form--item{flex:1 1 0;margin:5px;min-width:40%}.composer--upload_form--item>div{position:relative;border-radius:4px;height:140px;width:100%;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;overflow:hidden}.composer--upload_form--item>div textarea{display:block;position:absolute;box-sizing:border-box;bottom:0;left:0;margin:0;border:0;padding:10px;width:100%;color:#ecf0f4;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);font-size:14px;font-family:inherit;font-weight:500;opacity:0;z-index:2;transition:opacity .1s ease}.composer--upload_form--item>div textarea:focus{color:#fff}.composer--upload_form--item>div textarea::placeholder{opacity:.54;color:#ecf0f4}.composer--upload_form--item>div>.close{mix-blend-mode:difference}.composer--upload_form--item.active>div textarea{opacity:1}.composer--upload_form--actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.composer--upload_form--actions .icon-button{flex:0 1 auto;color:#d9e1e8;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.composer--upload_form--actions .icon-button:hover,.composer--upload_form--actions .icon-button:focus,.composer--upload_form--actions .icon-button:active{color:#e6ebf0}.composer--upload_form--actions.active{opacity:1}.composer--upload_form--progress{display:flex;padding:10px;color:#dde3ec;overflow:hidden}.composer--upload_form--progress>.fa{font-size:34px;margin-right:10px}.composer--upload_form--progress>.message{flex:1 1 auto}.composer--upload_form--progress>.message>span{display:block;font-size:12px;font-weight:500;text-transform:uppercase}.composer--upload_form--progress>.message>.backdrop{position:relative;margin-top:5px;border-radius:6px;width:100%;height:6px;background:#606984}.composer--upload_form--progress>.message>.backdrop>.tracker{position:absolute;top:0;left:0;height:6px;border-radius:6px;background:#2b5fd9}.compose-form__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.composer--options-wrapper{padding:10px;background:#ebebeb;border-radius:0 0 4px 4px;height:27px;display:flex;justify-content:space-between;flex:0 0 auto}.composer--options{display:flex;flex:0 0 auto}.composer--options>*{display:inline-block;box-sizing:content-box;padding:0 3px;height:27px;line-height:27px;vertical-align:bottom}.composer--options>hr{display:inline-block;margin:0 3px;border-width:0 0 0 1px;border-style:none none none solid;border-color:transparent transparent transparent #c2c2c2;padding:0;width:0;height:27px;background:transparent}.compose--counter-wrapper{align-self:center;margin-right:4px}.composer--options--dropdown.open>.value{border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1);color:#fff;background:#2b5fd9;transition:none}.composer--options--dropdown.open.top>.value{border-radius:0 0 4px 4px;box-shadow:0 4px 4px rgba(0,0,0,.1)}.composer--options--dropdown--content{position:absolute;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);background:#fff;overflow:hidden;transform-origin:50% 0}.composer--options--dropdown--content--item{display:flex;align-items:center;padding:10px;color:#000;cursor:pointer}.composer--options--dropdown--content--item>.content{flex:1 1 auto;color:#1b1e25}.composer--options--dropdown--content--item>.content:not(:first-child){margin-left:10px}.composer--options--dropdown--content--item>.content strong{display:block;color:#000;font-weight:500}.composer--options--dropdown--content--item:hover,.composer--options--dropdown--content--item.active{background:#2b5fd9;color:#fff}.composer--options--dropdown--content--item:hover>.content,.composer--options--dropdown--content--item.active>.content{color:#fff}.composer--options--dropdown--content--item:hover>.content strong,.composer--options--dropdown--content--item.active>.content strong{color:#fff}.composer--options--dropdown--content--item.active:hover{background:#3c6cdc}.composer--publisher{padding-top:10px;text-align:right;white-space:nowrap;overflow:hidden;justify-content:flex-end;flex:0 0 auto}.composer--publisher>.primary{display:inline-block;margin:0;padding:0 10px;text-align:center}.composer--publisher>.side_arm{display:inline-block;margin:0 2px;padding:0;width:36px;text-align:center}.composer--publisher.over>.count{color:#ff5050}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#17191f;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#282c37}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.column{overflow:hidden}.column-back-button{box-sizing:border-box;width:100%;background:#313543;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;border:0;text-align:unset;padding:15px;margin:0;z-index:3}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#313543;border:0;font-family:inherit;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.column-link{background:#393f4f;color:#fff;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#404657}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#d9e1e8}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#fff}.column-link--transparent.active{color:#2b5fd9}.column-link__icon{display:inline-block;margin-right:5px}.column-subheading{background:#282c37;color:#c2cede;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.column-header__wrapper{position:relative;flex:0 0 auto}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;top:35px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(43, 95, 217, 0.23) 0%, rgba(43, 95, 217, 0) 60%)}.column-header{display:flex;font-size:16px;background:#313543;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden}.column-header>button{margin:0;border:none;padding:15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#2b90d9}.column-header.active{box-shadow:0 1px 0 rgba(43,95,217,.3)}.column-header.active .column-header__icon{color:#2b90d9;text-shadow:0 0 10px rgba(43,95,217,.4)}.column-header:focus,.column-header:active{outline:0}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.wide .columns-area:not(.columns-area--mobile) .column{flex:auto;min-width:330px;max-width:400px}.column>.scrollable{background:#282c37}.column-header__buttons{height:48px;display:flex;margin-left:0}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button,.column-header__notif-cleaning-buttons button{background:#313543;border:0;color:#dde3ec;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover,.column-header__notif-cleaning-buttons button:hover{color:#f4f6f9}.column-header__button.active,.column-header__notif-cleaning-buttons button.active{color:#fff;background:#393f4f}.column-header__button.active:hover,.column-header__notif-cleaning-buttons button.active:hover{color:#fff;background:#393f4f}.column-header__button:focus,.column-header__notif-cleaning-buttons button:focus{text-shadow:0 0 4px #2454c7}.column-header__notif-cleaning-buttons{display:flex;align-items:stretch;justify-content:space-around}.column-header__notif-cleaning-buttons button{background:transparent;text-align:center;padding:10px 0;white-space:pre-wrap}.column-header__notif-cleaning-buttons b{font-weight:bold}.column-header__collapsible-inner.nopad-drawer{padding:0}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#dde3ec;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #42485a;margin:10px 0}.column-header__collapsible.ncd{transition:none}.column-header__collapsible.ncd.collapsed{max-height:0;opacity:.7}.column-header__collapsible-inner{background:#393f4f;padding:15px}.column-header__setting-btn:hover{color:#dde3ec;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.column-header__title{display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header__icon{display:inline-block;margin-right:5px}.empty-column-indicator,.error-column{color:#c2cede;background:#282c37;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column{contain:strict}}.empty-column-indicator>span,.error-column>span{max-width:400px}.empty-column-indicator a,.error-column a{color:#2b90d9;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover{text-decoration:underline}.error-column{flex-direction:column}.single-column.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}@media screen and (max-width: 415px){.auto-columns.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}}@media screen and (max-width: 415px){.auto-columns.navbar-under .react-swipeable-view-container .columns-area,.single-column.navbar-under .react-swipeable-view-container .columns-area{height:100% !important}}.column-inline-form{padding:7px 15px;padding-right:5px;display:flex;justify-content:flex-start;align-items:center;background:#313543}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%;margin-bottom:6px}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 5px}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#c2cede;background:#282c37;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#c2cede}.regeneration-indicator__label span{font-size:15px;font-weight:400}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#0e1014;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#313543;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#17191f;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#282c37;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #393f4f;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.filter-form{background:#282c37}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#4e79df;background:#4e79df}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#282c37;color:#dde3ec;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#eaeef3}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#313543}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:color,transform,opacity;font-size:18px;width:18px;height:18px;color:#ecf0f4;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(0deg)}.search__icon .fa-search.active{pointer-events:auto;opacity:.3}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#8d9ac2;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#a4afce}.search-results__header{color:#c2cede;background:#2c313d;border-bottom:1px solid #1f232b;padding:15px 10px;font-size:14px;font-weight:500}.search-results__info{padding:20px;color:#dde3ec;text-align:center}.trends__header{color:#c2cede;background:#2c313d;border-bottom:1px solid #1f232b;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #393f4f}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#c2cede;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#dde3ec;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#ecf0f4}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(43,144,217,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#459ede !important}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(217,225,232,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.emoji-button{display:block;font-size:24px;line-height:24px;margin-left:2px;width:24px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px;margin-top:2px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.doodle-modal{width:unset}.doodle-modal__container{background:#d9e1e8;text-align:center;line-height:0}.doodle-modal__container canvas{border:5px solid #d9e1e8}.doodle-modal__action-bar .filler{flex-grow:1;margin:0;padding:0}.doodle-modal__action-bar .doodle-toolbar{line-height:1;display:flex;flex-direction:column;flex-grow:0;justify-content:space-around}.doodle-modal__action-bar .doodle-toolbar.with-inputs label{display:inline-block;width:70px;text-align:right;margin-right:2px}.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=number],.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=text]{width:40px}.doodle-modal__action-bar .doodle-toolbar.with-inputs span.val{display:inline-block;text-align:left;width:50px}.doodle-modal__action-bar .doodle-palette{padding-right:0 !important;border:1px solid #000;line-height:.2rem;flex-grow:0;background:#fff}.doodle-modal__action-bar .doodle-palette button{appearance:none;width:1rem;height:1rem;margin:0;padding:0;text-align:center;color:#000;text-shadow:0 0 1px #fff;cursor:pointer;box-shadow:inset 0 0 1px rgba(255,255,255,.5);border:1px solid #000;outline-offset:-1px}.doodle-modal__action-bar .doodle-palette button.foreground{outline:1px dashed #fff}.doodle-modal__action-bar .doodle-palette button.background{outline:1px dashed red}.doodle-modal__action-bar .doodle-palette button.foreground.background{outline:1px dashed red;border-color:#fff}.drawer{width:300px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden;padding:10px 5px;flex:none}.drawer:first-child{padding-left:10px}.drawer:last-child{padding-right:10px}@media screen and (max-width: 630px){.auto-columns .drawer{flex:auto}}.single-column .drawer{flex:auto}@media screen and (max-width: 630px){.auto-columns .drawer,.auto-columns .drawer:first-child,.auto-columns .drawer:last-child,.single-column .drawer,.single-column .drawer:first-child,.single-column .drawer:last-child{padding:0}}.wide .drawer{min-width:300px;max-width:400px;flex:1 1 200px}@media screen and (max-width: 630px){:root .auto-columns .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}}:root .single-column .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}.react-swipeable-view-container .drawer{height:100%}.drawer--header{display:flex;flex-direction:row;margin-bottom:10px;flex:none;background:#393f4f;font-size:16px}.drawer--header>*{display:block;box-sizing:border-box;border-bottom:2px solid transparent;padding:15px 5px 13px;height:48px;flex:1 1 auto;color:#dde3ec;text-align:center;text-decoration:none;cursor:pointer}.drawer--header a{transition:background 100ms ease-in}.drawer--header a:focus,.drawer--header a:hover{outline:none;background:#2e3340;transition:background 200ms ease-out}.search{position:relative;margin-bottom:10px;flex:none}@media screen and (max-width: 415px){.auto-columns .search,.single-column .search{margin-bottom:0}}@media screen and (max-width: 630px){.auto-columns .search{font-size:16px}}.single-column .search{font-size:16px}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#364861;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#364861;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#000}.drawer--account{padding:10px;color:#dde3ec;display:flex;align-items:center}.drawer--account a{color:inherit;text-decoration:none}.drawer--account .acct{display:block;color:#ecf0f4;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;overflow:hidden}.drawer--results{background:#282c37;overflow-x:hidden;overflow-y:auto}.drawer--results>header{color:#c2cede;background:#2c313d;padding:15px;font-weight:500;font-size:16px;cursor:default}.drawer--results>header .fa{display:inline-block;margin-right:5px}.drawer--results>section{margin-bottom:5px}.drawer--results>section h5{background:#1f232b;border-bottom:1px solid #393f4f;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#c2cede}.drawer--results>section h5 .fa{display:inline-block;margin-right:5px}.drawer--results>section .account:last-child,.drawer--results>section>div:last-child .status{border-bottom:0}.drawer--results>section>.hashtag{display:block;padding:10px;color:#ecf0f4;text-decoration:none}.drawer--results>section>.hashtag:hover,.drawer--results>section>.hashtag:active,.drawer--results>section>.hashtag:focus{color:#f9fafb;text-decoration:underline}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#444b5d;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%}.drawer__inner.darker{background:#282c37}.drawer__inner__mastodon{background:#444b5d url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:100%;height:100%;pointer-events:none;user-drag:none;user-select:none}.drawer__inner__mastodon>.mastodon{display:block;width:100%;height:100%;border:none;cursor:inherit}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#444b5d;font-size:13px;text-align:left}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.video-error-cover{align-items:center;background:#000;color:#fff;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#000;color:#dde3ec;border:0;width:100%;height:100%}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{color:#f7f9fb}.status__content>.media-spoiler{margin-top:15px}.media-spoiler.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:500}.media-gallery__gifv__label{display:block;position:absolute;color:#fff;background:rgba(0,0,0,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv.autoplay .media-gallery__gifv__label{display:none}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{height:100%;display:flex;flex-direction:column}.media-gallery__audio span{text-align:center;color:#dde3ec;display:flex;height:100%;align-items:center}.media-gallery__audio span p{width:100%}.media-gallery__audio audio{width:100%}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%;height:110px}.media-gallery.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-gallery__item{border:none;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.full-width .media-gallery__item{border-radius:0}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item.letterbox{background:#000}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#ecf0f4;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%;object-fit:contain}.media-gallery__item-thumbnail:not(.letterbox),.media-gallery__item-thumbnail img:not(.letterbox){height:100%;object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#000}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%;display:flex;justify-content:center}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;width:100%;position:relative;z-index:1;object-fit:contain;user-select:none}.media-gallery__item-gifv-thumbnail:not(.letterbox){height:100%;object-fit:cover}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(0,0,0,.5);box-sizing:border-box;border:0;color:#fff;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#d9e1e8}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#2b5fd9}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#17191f;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #313543;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(78,121,223,.5)}.audio-player__wave-placeholder{background-color:#4a5266}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#17191f;border-top:1px solid #313543;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.detailed-status .video-player{width:100%;height:100%}.video-player.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.video-player video{max-width:100vw;max-height:80vh;z-index:1;position:relative}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#dde3ec;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#f4f6f9}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons-bar .video-player__download__icon .fa,.video-player__buttons-bar .video-player__download__icon:active .fa,.video-player__buttons-bar .video-player__download__icon:hover .fa,.video-player__buttons-bar .video-player__download__icon:focus .fa{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#4e79df}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#4e79df;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#4e79df}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#4e79df;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.sensitive-info{display:flex;flex-direction:row;align-items:center;position:absolute;top:4px;left:4px;z-index:100}.sensitive-marker{margin:0 3px;border-radius:2px;padding:2px 6px;color:rgba(255,255,255,.8);background:rgba(0,0,0,.5);font-size:12px;line-height:18px;text-transform:uppercase;opacity:.9;transition:opacity .1s ease}.media-gallery:hover .sensitive-marker{opacity:1}.list-editor{background:#282c37;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#444b5d;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#282c37;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#444b5d}.list-adder__lists{background:#444b5d;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #393f4f}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.emoji-mart{font-size:13px;display:inline-block;color:#000}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #c0cdd9}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#d9e1e8}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#1b1e25;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#131419}.emoji-mart-anchor-selected{color:#2b90d9}.emoji-mart-anchor-selected:hover{color:#2485cb}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:0}.emoji-mart-anchor-bar{position:absolute;bottom:-3px;left:0;width:100%;height:3px;background-color:#2558d0}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(217,225,232,.3);color:#000;border:1px solid #d9e1e8;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(217,225,232,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#364861}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.glitch.local-settings{position:relative;display:flex;flex-direction:row;background:#d9e1e8;color:#000;border-radius:8px;height:80vh;width:80vw;max-width:740px;max-height:450px;overflow:hidden}.glitch.local-settings label,.glitch.local-settings legend{display:block;font-size:14px}.glitch.local-settings .boolean label,.glitch.local-settings .radio_buttons label{position:relative;padding-left:28px;padding-top:3px}.glitch.local-settings .boolean label input,.glitch.local-settings .radio_buttons label input{position:absolute;left:0;top:0}.glitch.local-settings span.hint{display:block;color:#1b1e25}.glitch.local-settings h1{font-size:18px;font-weight:500;line-height:24px;margin-bottom:20px}.glitch.local-settings h2{font-size:15px;font-weight:500;line-height:20px;margin-top:20px;margin-bottom:10px}.glitch.local-settings__navigation__item{display:block;padding:15px 20px;color:inherit;background:#f2f5f7;border-bottom:1px #d9e1e8 solid;cursor:pointer;text-decoration:none;outline:none;transition:background .3s}.glitch.local-settings__navigation__item .text-icon-button{color:inherit;transition:unset}.glitch.local-settings__navigation__item:hover{background:#d9e1e8}.glitch.local-settings__navigation__item.active{background:#2b5fd9;color:#fff}.glitch.local-settings__navigation__item.close,.glitch.local-settings__navigation__item.close:hover{background:#df405a;color:#fff}.glitch.local-settings__navigation{background:#f2f5f7;width:212px;font-size:15px;line-height:20px;overflow-y:auto}.glitch.local-settings__page{display:block;flex:auto;padding:15px 20px 15px 20px;width:360px;overflow-y:auto}.glitch.local-settings__page__item{margin-bottom:2px}.glitch.local-settings__page__item.string,.glitch.local-settings__page__item.radio_buttons{margin-top:10px;margin-bottom:10px}@media screen and (max-width: 630px){.glitch.local-settings__navigation{width:40px;flex-shrink:0}.glitch.local-settings__navigation__item{padding:10px}.glitch.local-settings__navigation__item span:last-of-type{display:none}}.error-boundary{color:#fff;font-size:15px;line-height:20px}.error-boundary h1{font-size:26px;line-height:36px;font-weight:400;margin-bottom:8px}.error-boundary a{color:#fff;text-decoration:underline}.error-boundary ul{list-style:disc;margin-left:0;padding-left:1em}.error-boundary textarea.web_app_crash-stacktrace{width:100%;resize:none;white-space:pre;font-family:monospace,monospace}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.compose-panel .search__icon .fa{top:15px}.compose-panel .drawer--account{flex:0 1 48px}.compose-panel .flex-spacer{background:transparent}.compose-panel .composer{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #313543;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px;min-height:50px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{padding-top:15px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#2558d0;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#4976de}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.search{margin-bottom:10px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.poll{margin-top:16px;font-size:14px}.poll ul,.e-content .poll ul{margin:0;list-style:none}.poll li{margin-bottom:10px;position:relative}.poll__chart{position:absolute;top:0;left:0;height:100%;display:inline-block;border-radius:4px;background:#6d89af}.poll__chart.leading{background:#2b5fd9}.poll__text{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__text input[type=radio],.poll__text input[type=checkbox]{display:none}.poll__text .autossugest-input{flex:1 1 auto}.poll__text input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#000;display:block;outline:0;font-family:inherit;background:#fff;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px}.poll__text input[type=text]:focus{border-color:#2b90d9}.poll__text.selectable{cursor:pointer}.poll__text.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-width:4px;background:none}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:52px;font-weight:700;padding:0 10px;padding-left:8px;text-align:right;margin-top:auto;margin-bottom:auto;flex:0 0 52px}.poll__vote__mark{float:left;line-height:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#c2cede}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#c2cede;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(194,206,222,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #ebebeb}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #ebebeb;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{width:100%;flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#2b90d9}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#8d9ac2;border-color:#8d9ac2;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__text{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#000;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#dbdbdb}.muted .poll{color:#c2cede}.muted .poll__chart{background:rgba(109,137,175,.2)}.muted .poll__chart.leading{background:rgba(43,95,217,.2)}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:sans-serif,sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#dde3ec}.rich-formatting a{color:#2b90d9;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#dde3ec}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#ecf0f4}.rich-formatting em{font-style:italic;color:#ecf0f4}.rich-formatting code{font-size:.85em;background:#17191f;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:sans-serif,sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#ecf0f4}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #313543;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #313543;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#dde3ec}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#c2cede}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#1f232b;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:sans-serif,sans-serif;font-size:16px;line-height:28px;color:#fff;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#ecf0f4}.information-board__section strong{font-family:sans-serif,sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#17191f;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#dde3ec;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #313543;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#bcc9da}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;width:80px;height:80px;background-size:80px 80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px;border-radius:8%;background-position:50%;background-clip:padding-box}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#fff;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#dde3ec}.landing-page p,.landing-page li{font-family:sans-serif,sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#dde3ec}.landing-page p a,.landing-page li a{color:#2b90d9;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#fefefe}.landing-page h1{font-family:sans-serif,sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h1 small{font-family:sans-serif,sans-serif;display:block;font-size:18px;font-weight:400;color:#fefefe}.landing-page h2{font-family:sans-serif,sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h3{font-family:sans-serif,sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h4{font-family:sans-serif,sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h5{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h6{font-family:sans-serif,sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(96,105,132,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#282c37;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#fefefe}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px;width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#282c37;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#ecf0f4}.landing-page__short-description h1{font-weight:500;color:#fff;margin-bottom:0}.landing-page__short-description h1 small{color:#dde3ec}.landing-page__short-description h1 small span{color:#ecf0f4}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#fff;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#dde3ec}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#282c37;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:sans-serif,sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#dde3ec}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#dde3ec}.landing .simple_form p.lead{color:#dde3ec;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #393f4f}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#c2cede}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #282c37;text-align:left;background:#1f232b}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #282c37;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#282c37}.table a{color:#2b90d9;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#282c37;border-top:1px solid #17191f;border-bottom:1px solid #17191f}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #17191f}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #17191f}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:monospace,monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#dde3ec;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#fff}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #17191f;background:#282c37;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #17191f;border-top:0;background:#282c37}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #17191f;border-top:0;background:#1f232b}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #17191f}}.batch-table__row:hover{background:#242731}.batch-table__row:nth-child(even){background:#282c37}.batch-table__row:nth-child(even):hover{background:#2c313d}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#dde3ec;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #17191f;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #17191f}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#282c37;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#393f4f;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#fff;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#dde3ec;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#42485a}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#dde3ec;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#fff;background-color:#1d2028;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#242731;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#1f232b;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#fff;background-color:#2b5fd9;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#416fdd}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #393f4f;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#ecf0f4;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#ecf0f4;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#dde3ec;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #393f4f}.admin-wrapper .content h6{font-size:16px;color:#ecf0f4;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#fff;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#fff;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:none}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#ecf0f4;margin-bottom:20px}.admin-wrapper .content>p strong{color:#fff;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(96,105,132,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #313543;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#2b5fd9}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#dde3ec}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#2b90d9}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#c2cede;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset a{display:inline-block;color:#dde3ec;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #282c37}.filters .filter-subset a:hover{color:#fff;border-bottom:2px solid #333846}.filters .filter-subset a.selected{color:#2b90d9;border-bottom:2px solid #2b5fd9}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#ecf0f4}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#2b90d9;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{margin-bottom:20px;line-height:20px}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;padding:10px;background:#282c37;color:#dde3ec;border-radius:4px 4px 0 0;font-size:14px;position:relative}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#c2cede}.log-entry__extras{background:#353a49;border-radius:0 0 4px 4px;padding:10px;color:#dde3ec;font-family:monospace,monospace;font-size:12px;word-wrap:break-word;min-height:20px}.log-entry__icon{font-size:28px;margin-right:10px;color:#c2cede}.log-entry__icon__overlay{position:absolute;top:10px;right:10px;width:10px;height:10px;border-radius:50%}.log-entry__icon__overlay.positive{background:#79bd9a}.log-entry__icon__overlay.negative{background:#e87487}.log-entry__icon__overlay.neutral{background:#2b5fd9}.log-entry a,.log-entry .username,.log-entry .target{color:#ecf0f4;text-decoration:none;font-weight:500}.log-entry .diff-old{color:#e87487}.log-entry .diff-neutral{color:#ecf0f4}.log-entry .diff-new{color:#79bd9a}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#ecf0f4}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#e87487}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #2b5fd9}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#e87487}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#dde3ec}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#c2cede}.report-card{background:#282c37;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#dde3ec;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#f7f9fb}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #1f232b}.report-card__summary__item:hover{background:#2c313d}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#dde3ec}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#c2cede;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#dde3ec}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#393f4f;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#4e79df}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#fff}.center-text{text-align:center}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff)}.hicolor-privacy-icons .status__visibility-icon.fa-globe,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-globe{color:#1976d2}.hicolor-privacy-icons .status__visibility-icon.fa-unlock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-unlock{color:#388e3c}.hicolor-privacy-icons .status__visibility-icon.fa-lock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-lock{color:#ffa000}.hicolor-privacy-icons .status__visibility-icon.fa-envelope,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-envelope{color:#d32f2f}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .composer--publisher{text-align:left}body.rtl .boost-modal__status-time,body.rtl .favourite-modal__status-time{float:left}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .setting-meta__label{float:left}body.rtl .status__avatar{margin-left:10px;margin-right:0;left:auto;right:10px}body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:58px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left;text-align:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(19, 20, 25, 0), #131419)}body.rtl .simple_form select{background:#131419 url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#313543;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#393f4f}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#fff;font-family:sans-serif,sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#dde3ec;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#d9e1e8;font-weight:500;text-decoration:none}.compose-form .compose-form__modifiers .compose-form__upload-description input::placeholder{opacity:1}.rich-formatting a,.rich-formatting p a,.rich-formatting li a,.landing-page__short-description p a,.status__content a,.reply-indicator__content a{color:#5f86e2;text-decoration:underline}.rich-formatting a.mention,.rich-formatting p a.mention,.rich-formatting li a.mention,.landing-page__short-description p a.mention,.status__content a.mention,.reply-indicator__content a.mention{text-decoration:none}.rich-formatting a.mention span,.rich-formatting p a.mention span,.rich-formatting li a.mention span,.landing-page__short-description p a.mention span,.status__content a.mention span,.reply-indicator__content a.mention span{text-decoration:underline}.rich-formatting a.mention span:hover,.rich-formatting a.mention span:focus,.rich-formatting a.mention span:active,.rich-formatting p a.mention span:hover,.rich-formatting p a.mention span:focus,.rich-formatting p a.mention span:active,.rich-formatting li a.mention span:hover,.rich-formatting li a.mention span:focus,.rich-formatting li a.mention span:active,.landing-page__short-description p a.mention span:hover,.landing-page__short-description p a.mention span:focus,.landing-page__short-description p a.mention span:active,.status__content a.mention span:hover,.status__content a.mention span:focus,.status__content a.mention span:active,.reply-indicator__content a.mention span:hover,.reply-indicator__content a.mention span:focus,.reply-indicator__content a.mention span:active{text-decoration:none}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active,.rich-formatting p a:hover,.rich-formatting p a:focus,.rich-formatting p a:active,.rich-formatting li a:hover,.rich-formatting li a:focus,.rich-formatting li a:active,.landing-page__short-description p a:hover,.landing-page__short-description p a:focus,.landing-page__short-description p a:active,.status__content a:hover,.status__content a:focus,.status__content a:active,.reply-indicator__content a:hover,.reply-indicator__content a:focus,.reply-indicator__content a:active{text-decoration:none}.rich-formatting a.status__content__spoiler-link,.rich-formatting p a.status__content__spoiler-link,.rich-formatting li a.status__content__spoiler-link,.landing-page__short-description p a.status__content__spoiler-link,.status__content a.status__content__spoiler-link,.reply-indicator__content a.status__content__spoiler-link{color:#ecf0f4;text-decoration:none}.status__content__read-more-button{text-decoration:underline}.status__content__read-more-button:hover,.status__content__read-more-button:focus,.status__content__read-more-button:active{text-decoration:none}.getting-started__footer a{text-decoration:underline}.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:none}.nothing-here{color:#dde3ec}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b5fd9}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Dependent colors\n$black: #000000;\n\n$classic-base-color: #282c37;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #2b90d9;\n\n$ui-base-color: $classic-base-color !default;\n$ui-primary-color: $classic-primary-color !default;\n$ui-secondary-color: $classic-secondary-color !default;\n\n// Differences\n$ui-highlight-color: #2b5fd9;\n\n$darker-text-color: lighten($ui-primary-color, 20%) !default;\n$dark-text-color: lighten($ui-primary-color, 12%) !default;\n$secondary-text-color: lighten($ui-secondary-color, 6%) !default;\n$highlight-text-color: $classic-highlight-color !default;\n$action-button-color: #8d9ac2;\n\n$inverted-text-color: $black !default;\n$lighter-text-color: darken($ui-base-color,6%) !default;\n$light-text-color: darken($ui-primary-color, 40%) !default;\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n @return '%23' + unquote($color)\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a; // Padua\n$error-red: #df405a; // Cerise\n$warning-red: #ff5050; // Sunset Orange\n$gold-star: #ca8f04; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: sans-serif !default;\n$font-display: sans-serif !default;\n$font-monospace: monospace !default;\n\n// Avatar border size (8% default, 100% for rounded avatars)\n$ui-avatar-border-size: 8%;\n\n// More variables\n$dismiss-overlay-width: 4rem;\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n @include avatar-size(40px);\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1/3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1/3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n @include avatar-size(120px);\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n @include avatar-radius();\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n","@mixin avatar-radius() {\n border-radius: $ui-avatar-border-size;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size:48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin single-column($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .single-column #{$parent} {\n @content;\n }\n}\n\n@mixin limited-single-column($media, $parent: '&') {\n .auto-columns #{$parent}, .single-column #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n}\n\n@mixin multi-columns($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .multi-columns #{$parent} {\n @content;\n }\n}\n\n@mixin fullwidth-gallery {\n &.full-width {\n margin-left: -14px;\n margin-right: -14px;\n width: inherit;\n max-width: none;\n height: 250px;\n border-radius: 0px;\n }\n}\n\n@mixin search-input() {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: none;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout() {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n padding: 8px 0;\n padding-bottom: 2px;\n margin: initial;\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n position: absolute;\n margin: initial;\n float: initial;\n width: auto;\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n\n// Styling from upstream's WebUI, as public pages use the same layout\n.embed,\n.public-layout {\n .status {\n .status__info {\n font-size: 15px;\n display: initial;\n }\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding: 6px 0;\n padding-right: 25px;\n margin: initial;\n\n .display-name strong {\n display: inline;\n }\n }\n\n .status__avatar {\n height: 48px;\n position: absolute;\n width: 48px;\n margin: initial;\n }\n }\n}\n\n.rtl {\n .embed,\n .public-layout {\n .status {\n padding-left: 10px;\n padding-right: 68px;\n\n .status__info .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .status__relative-time {\n float: left;\n }\n }\n }\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: darken($ui-highlight-color, 3%);\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n transition-property: background-color;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 7%);\n transition: all 200ms ease-out;\n transition-property: background-color;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n color: $darker-text-color;\n text-transform: none;\n background: transparent;\n padding: 3px 15px;\n border-radius: 4px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n transform-origin: 50% 0;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: 0;\n position: absolute;\n\n .fa.star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n a {\n color: inherit;\n text-decoration: inherit;\n }\n\n strong {\n height: 18px;\n font-size: 16px;\n font-weight: 500;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n span {\n display: block;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n > a:hover {\n strong {\n text-decoration: underline;\n }\n }\n\n &.inline {\n padding: 0;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n strong {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n\n span {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n }\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n ul {\n list-style: none;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.static-content {\n padding: 10px;\n padding-top: 20px;\n color: $dark-text-color;\n\n h1 {\n font-size: 16px;\n font-weight: 500;\n margin-bottom: 40px;\n text-align: center;\n }\n\n p {\n font-size: 13px;\n margin-bottom: 20px;\n }\n}\n\n.column,\n.drawer {\n flex: 1 1 100%;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @include multi-columns('screen and (min-width: 631px)') {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $ui-highlight-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n\n span.icon {\n margin-left: 0;\n display: inline;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.getting-started__wrapper,\n.getting_started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.getting-started__wrapper {\n position: relative;\n overflow-y: auto;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n background: $ui-base-color;\n flex: 1 0 auto;\n\n p {\n color: $secondary-text-color;\n }\n\n a {\n color: $dark-text-color;\n }\n\n &__panel {\n height: min-content;\n }\n\n &__panel,\n &__footer {\n padding: 10px;\n padding-top: 20px;\n flex: 0 1 auto;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n color: $darker-text-color;\n background: transparent;\n border: none;\n border-bottom: 2px solid $ui-primary-color;\n box-sizing: border-box;\n display: block;\n font-family: inherit;\n margin-bottom: 10px;\n padding: 7px 0;\n width: 100%;\n\n &:focus,\n &:active {\n color: $primary-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n font-size: 16px;\n }\n\n &.light {\n color: $inverted-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 27%);\n\n &:focus,\n &:active {\n color: $inverted-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.reduce-motion button.icon-button.disabled i.fa-retweet {\n color: darken($action-button-color, 13%);\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.missing-indicator {\n padding-top: 20px + 48px;\n}\n\n.scrollable > div > :first-child .notification__dismiss-overlay > .wrappy {\n border-top: 1px solid $ui-base-color;\n}\n\n.notification__dismiss-overlay {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: -1px;\n padding-left: 15px; // space for the box shadow to be visible\n\n z-index: 999;\n align-items: center;\n justify-content: flex-end;\n cursor: pointer;\n\n display: flex;\n\n .wrappy {\n width: $dismiss-overlay-width;\n align-self: stretch;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: lighten($ui-base-color, 8%);\n border-left: 1px solid lighten($ui-base-color, 20%);\n box-shadow: 0 0 5px black;\n border-bottom: 1px solid $ui-base-color;\n }\n\n .ckbox {\n border: 2px solid $ui-primary-color;\n border-radius: 2px;\n width: 30px;\n height: 30px;\n font-size: 20px;\n color: $darker-text-color;\n text-shadow: 0 0 5px black;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n &:focus {\n outline: 0 !important;\n\n .ckbox {\n box-shadow: 0 0 1px 1px $ui-highlight-color;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: flex;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n align-items: center;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label,\n.setting-radio__label,\n.setting-meta__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.setting-radio {\n display: block;\n line-height: 18px;\n}\n\n.setting-radio__label {\n margin-bottom: 0;\n}\n\n.column-settings__row legend {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-top: 10px;\n}\n\n.setting-radio__input {\n vertical-align: middle;\n}\n\n.setting-meta__label {\n float: right;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n transform-origin: center center;\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.pulse-loading {\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.loading-bar {\n background-color: $ui-highlight-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.icon-badge-wrapper {\n position: relative;\n}\n\n.icon-badge {\n position: absolute;\n display: block;\n right: -.25em;\n top: -.25em;\n background-color: $ui-highlight-color;\n border-radius: 50%;\n font-size: 75%;\n width: 1em;\n height: 1em;\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n .status__content {\n margin: 0;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.ui .flash-message {\n margin-top: 10px;\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 0;\n min-width: 75%;\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@import 'boost';\n@import 'accounts';\n@import 'domains';\n@import 'status';\n@import 'modal';\n@import 'composer';\n@import 'columns';\n@import 'regeneration_indicator';\n@import 'directory';\n@import 'search';\n@import 'emoji';\n@import 'doodle';\n@import 'drawer';\n@import 'media';\n@import 'sensitive';\n@import 'lists';\n@import 'emoji_picker';\n@import 'local_settings';\n@import 'error_boundary';\n@import 'single_column';\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant\nbutton.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant for use with DMs\n.status-direct button.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n",".account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n color: inherit;\n text-decoration: none;\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n\n &.small {\n border: none;\n padding: 0;\n\n & > .account__avatar-wrapper { margin: 0 8px 0 0 }\n\n & > .display-name {\n height: 24px;\n line-height: 24px;\n }\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius();\n position: relative;\n cursor: pointer;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n overflow: hidden;\n position: relative;\n cursor: default;\n\n & div {\n @include avatar-radius;\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\n.account__avatar-overlay {\n position: relative;\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius();\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius();\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__header__wrapper {\n flex: 0 0 auto;\n background: lighten($ui-base-color, 4%);\n}\n\n.account__disclaimer {\n padding: 10px;\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-left: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &:first-child {\n border-left: 0;\n }\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n abbr {\n color: $highlight-text-color;\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.notification__message {\n margin-left: 42px;\n padding: 8px 0 0 26px;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input();\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout();\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n",".domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n","@keyframes spring-flip-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-242.4deg);\n }\n\n 60% {\n transform: rotate(-158.35deg);\n }\n\n 90% {\n transform: rotate(-187.5deg);\n }\n\n 100% {\n transform: rotate(-180deg);\n }\n}\n\n@keyframes spring-flip-out {\n 0% {\n transform: rotate(-180deg);\n }\n\n 30% {\n transform: rotate(62.4deg);\n }\n\n 60% {\n transform: rotate(-21.635deg);\n }\n\n 90% {\n transform: rotate(7.5deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content {\n position: relative;\n margin: 10px 0;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n padding-top: 5px;\n\n &:focus {\n outline: 0;\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .status__content__text,\n .e-content {\n overflow: hidden;\n\n & > ul,\n & > ol {\n margin-bottom: 20px;\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 1.2em;\n }\n\n h2 {\n font-size: 1.1em;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $darker-text-color;\n color: $darker-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n sup {\n font-size: smaller;\n vertical-align: super;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n .status__content__spoiler {\n display: none;\n\n &.status__content__spoiler--visible {\n display: block;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n\n .link-origin-tag {\n color: $gold-star;\n font-size: 0.8em;\n }\n }\n\n .status__content__spoiler-link {\n background: lighten($ui-base-color, 30%);\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: lighten($ui-base-color, 30%);\n border: none;\n color: $inverted-text-color;\n font-weight: 500;\n font-size: 11px;\n padding: 0 5px;\n text-transform: uppercase;\n line-height: inherit;\n cursor: pointer;\n vertical-align: bottom;\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n\n .status__content__spoiler-icon {\n display: inline-block;\n margin: 0 0 0 5px;\n border-left: 1px solid currentColor;\n padding: 0 0 0 4px;\n font-size: 16px;\n vertical-align: -2px;\n }\n}\n\n.notif-cleaning {\n .status,\n .notification-follow,\n .notification-follow-request {\n padding-right: ($dismiss-overlay-width + 0.5rem);\n }\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.notification-follow,\n.notification-follow-request {\n position: relative;\n\n // same like Status\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .account {\n border-bottom: 0 none;\n }\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n &.status.status-direct:not(.read) {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 10px 14px;\n position: relative;\n height: auto;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 28px; // 12px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $lighter-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n strong {\n color: $inverted-text-color;\n }\n\n span {\n color: $lighter-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n\n &.collapsed {\n background-position: center;\n background-size: cover;\n user-select: none;\n\n &.has-background::before {\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-image: linear-gradient(to bottom, rgba($base-shadow-color, .75), rgba($base-shadow-color, .65) 24px, rgba($base-shadow-color, .8));\n pointer-events: none;\n content: \"\";\n }\n\n .display-name:hover .display-name__html {\n text-decoration: none;\n }\n\n .status__content {\n height: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 0;\n\n &:after {\n content: \"\";\n position: absolute;\n top: 0; bottom: 0;\n left: 0; right: 0;\n background: linear-gradient(rgba($ui-base-color, 0), rgba($ui-base-color, 1));\n pointer-events: none;\n }\n \n a:hover {\n text-decoration: none;\n }\n }\n &:focus > .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 4%), 0), rgba(lighten($ui-base-color, 4%), 1));\n }\n &.status-direct:not(.read)> .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 8%), 0), rgba(lighten($ui-base-color, 8%), 1));\n }\n\n .notification__message {\n margin-bottom: 0;\n }\n\n .status__info .notification__message > span {\n white-space: nowrap;\n }\n }\n\n .notification__message {\n margin: -10px 0px 10px 0;\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time {\n display: inline-block;\n flex-grow: 1;\n color: $dark-text-color;\n font-size: 14px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status__display-name {\n color: $dark-text-color;\n overflow: hidden;\n}\n\n.status__info__account .status__display-name {\n display: block;\n max-width: 100%;\n}\n\n.status__info {\n display: flex;\n justify-content: space-between;\n font-size: 15px;\n\n > span {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .notification__message > span {\n word-wrap: break-word;\n }\n}\n\n.status__info__icons {\n display: flex;\n align-items: center;\n height: 1em;\n color: $action-button-color;\n\n .status__media-icon,\n .status__visibility-icon,\n .status__reply-icon {\n padding-left: 2px;\n padding-right: 2px;\n }\n\n .status__collapse-button.active > .fa-angle-double-up {\n transform: rotate(-180deg);\n }\n}\n\n.no-reduce-motion .status__collapse-button {\n &.activate {\n & > .fa-angle-double-up {\n animation: spring-flip-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-angle-double-up {\n animation: spring-flip-out 1s linear;\n }\n }\n}\n\n.status__info__account {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-top: -10px;\n margin-bottom: 10px;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\na.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\n.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n flex: none;\n margin: 0 10px 0 0;\n height: 48px;\n width: 48px;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a,\n .status__content__text {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-color, 29%);\n text-decoration: none;\n }\n }\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n\n a .fa, a:hover .fa {\n color: inherit;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n.status__wrapper--filtered__button {\n display: inline;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n font-size: inherit;\n line-height: inherit;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n",".modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.onboarding-modal__pager {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 470px;\n\n .react-swipeable-view-container > div {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n user-select: text;\n }\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n@media screen and (max-width: 550px) {\n .onboarding-modal {\n width: 100%;\n height: 100%;\n border-radius: 0;\n }\n\n .onboarding-modal__pager {\n width: 100%;\n height: auto;\n max-width: none;\n max-height: none;\n flex: 1 1 auto;\n }\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.onboarding-modal__dots {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.onboarding-modal__dot {\n width: 14px;\n height: 14px;\n border-radius: 14px;\n background: darken($ui-secondary-color, 16%);\n margin: 0 3px;\n cursor: pointer;\n\n &:hover {\n background: darken($ui-secondary-color, 18%);\n }\n\n &.active {\n cursor: default;\n background: darken($ui-secondary-color, 24%);\n }\n}\n\n.onboarding-modal__page__wrapper {\n pointer-events: none;\n padding: 25px;\n padding-bottom: 0;\n\n &.onboarding-modal__page__wrapper--active {\n pointer-events: auto;\n }\n}\n\n.onboarding-modal__page {\n cursor: default;\n line-height: 21px;\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 20px;\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 4%);\n }\n }\n\n .navigation-bar a {\n color: inherit;\n }\n\n p {\n font-size: 16px;\n color: $lighter-text-color;\n margin-top: 10px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n background: $ui-base-color;\n color: $secondary-text-color;\n border-radius: 4px;\n font-size: 14px;\n padding: 3px 6px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.onboarding-modal__page__wrapper-0 {\n height: 100%;\n padding: 0;\n}\n\n.onboarding-modal__page-one {\n &__lead {\n padding: 65px;\n padding-top: 45px;\n padding-bottom: 0;\n margin-bottom: 10px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n margin-bottom: 8px;\n }\n\n p {\n margin-bottom: 0;\n }\n }\n\n &__extra {\n padding-right: 65px;\n padding-left: 185px;\n text-align: center;\n }\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboarding-modal__page-two,\n.onboarding-modal__page-three,\n.onboarding-modal__page-four,\n.onboarding-modal__page-five {\n p {\n text-align: left;\n }\n\n .figure {\n background: darken($ui-base-color, 8%);\n color: $secondary-text-color;\n margin-bottom: 20px;\n border-radius: 4px;\n padding: 10px;\n text-align: center;\n font-size: 14px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);\n\n .onboarding-modal__image {\n border-radius: 4px;\n margin-bottom: 10px;\n }\n\n &.non-interactive {\n pointer-events: none;\n text-align: left;\n }\n }\n}\n\n.onboarding-modal__page-four__columns {\n .row {\n display: flex;\n margin-bottom: 20px;\n\n & > div {\n flex: 1 1 0;\n margin: 0 10px;\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n\n p {\n text-align: center;\n }\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .column-header {\n color: $primary-text-color;\n }\n}\n\n@media screen and (max-width: 320px) and (max-height: 600px) {\n .onboarding-modal__page p {\n font-size: 14px;\n line-height: 20px;\n }\n\n .onboarding-modal__page-two .figure,\n .onboarding-modal__page-three .figure,\n .onboarding-modal__page-four .figure,\n .onboarding-modal__page-five .figure {\n font-size: 12px;\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .row {\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .column-header {\n padding: 5px;\n font-size: 12px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.favourite-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__display-name {\n display: flex;\n }\n\n .status__avatar {\n height: 48px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container,\n.favourite-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.favourite-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header,\n.favourite-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time,\n.favourite-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n strong {\n display: block;\n font-weight: 500;\n }\n\n max-height: 80vh;\n max-width: 80vw;\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n & > .react-toggle,\n & > .icon,\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__do_not_ask_again {\n padding-left: 20px;\n padding-right: 20px;\n padding-bottom: 10px;\n\n font-size: 14px;\n\n label, input {\n vertical-align: middle;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: 'mastodon-font-monospace', monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.filtered-status-info {\n text-align: start;\n\n .spoiler__text {\n margin-top: 20px;\n }\n\n .account {\n border-bottom: 0;\n }\n\n .account__display-name strong {\n color: $inverted-text-color;\n }\n\n .status__content__spoiler {\n display: none;\n\n &--visible {\n display: flex;\n }\n }\n\n ul {\n padding: 10px;\n margin-left: 12px;\n list-style: disc inside;\n }\n\n .filtered-status-edit-link {\n color: $action-button-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline\n }\n }\n}\n",".composer {\n padding: 10px;\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .composer--spoiler {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.composer--spoiler {\n height: 0;\n transform-origin: bottom;\n opacity: 0.0;\n\n &.composer--spoiler--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1.0;\n }\n\n input {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px;\n padding: 10px;\n width: 100%;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n }\n}\n\n.composer--warning {\n color: $inverted-text-color;\n margin-bottom: 15px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:active,\n &:focus,\n &:hover { text-decoration: none }\n }\n}\n\n.compose-form__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-left: 5px;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n}\n\n.composer--reply {\n margin: 0 0 10px;\n border-radius: 4px;\n padding: 10px;\n background: $ui-primary-color;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n\n & > header {\n margin-bottom: 5px;\n overflow: hidden;\n\n & > .account.small { color: $inverted-text-color; }\n\n & > .cancel {\n float: right;\n line-height: 24px;\n }\n }\n\n & > .content {\n position: relative;\n margin: 10px 0;\n padding: 0 12px;\n font-size: 14px;\n line-height: 20px;\n color: $inverted-text-color;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n white-space: pre-wrap;\n padding-top: 5px;\n overflow: hidden;\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 18px;\n }\n\n h2 {\n font-size: 16px;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $inverted-text-color;\n color: $inverted-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n\n a {\n color: $lighter-text-color;\n text-decoration: none;\n\n &:hover { text-decoration: underline }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span { text-decoration: underline }\n }\n }\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -5px 0 0;\n }\n}\n\n.emoji-picker-dropdown {\n position: absolute;\n right: 5px;\n top: 5px;\n\n ::-webkit-scrollbar-track:hover,\n ::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.compose-form__autosuggest-wrapper,\n.autosuggest-input {\n position: relative;\n width: 100%;\n\n label {\n .autosuggest-textarea__textarea {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px 4px 0 0;\n padding: 10px 32px 0 10px;\n width: 100%;\n min-height: 100px;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: none;\n scrollbar-color: initial;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n &:disabled { background: $ui-secondary-color }\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n }\n}\n\n.composer--textarea--icons {\n display: block;\n position: absolute;\n top: 29px;\n right: 5px;\n bottom: 5px;\n overflow: hidden;\n\n & > .textarea_icon {\n display: block;\n margin: 2px 0 0 2px;\n width: 24px;\n height: 24px;\n color: $lighter-text-color;\n font-size: 18px;\n line-height: 24px;\n text-align: center;\n opacity: .8;\n }\n}\n\n.autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n}\n\n.autosuggest-textarea__suggestions {\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: 100%;\n border-radius: 0 0 4px 4px;\n padding: 6px;\n width: 100%;\n color: $inverted-text-color;\n background: $ui-secondary-color;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n font-size: 14px;\n z-index: 99;\n display: none;\n}\n\n.autosuggest-textarea__suggestions--visible {\n display: block;\n}\n\n.autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected { background: darken($ui-secondary-color, 10%) }\n\n > .account,\n > .emoji,\n > .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n & > .account.small {\n .display-name {\n & > span { color: $lighter-text-color }\n }\n }\n}\n\n.composer--upload_form {\n overflow: hidden;\n\n & > .content {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n font-family: inherit;\n padding: 5px;\n overflow: hidden;\n }\n}\n\n.composer--upload_form--item {\n flex: 1 1 0;\n margin: 5px;\n min-width: 40%;\n\n & > div {\n position: relative;\n border-radius: 4px;\n height: 140px;\n width: 100%;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n overflow: hidden;\n\n textarea {\n display: block;\n position: absolute;\n box-sizing: border-box;\n bottom: 0;\n left: 0;\n margin: 0;\n border: 0;\n padding: 10px;\n width: 100%;\n color: $secondary-text-color;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n font-size: 14px;\n font-family: inherit;\n font-weight: 500;\n opacity: 0;\n z-index: 2;\n transition: opacity .1s ease;\n\n &:focus { color: $white }\n\n &::placeholder {\n opacity: 0.54;\n color: $secondary-text-color;\n }\n }\n\n & > .close { mix-blend-mode: difference }\n }\n\n &.active {\n & > div {\n textarea { opacity: 1 }\n }\n }\n}\n\n.composer--upload_form--actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $ui-secondary-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($ui-secondary-color, 4%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n}\n\n.composer--upload_form--progress {\n display: flex;\n padding: 10px;\n color: $darker-text-color;\n overflow: hidden;\n\n & > .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n & > .message {\n flex: 1 1 auto;\n\n & > span {\n display: block;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n }\n\n & > .backdrop {\n position: relative;\n margin-top: 5px;\n border-radius: 6px;\n width: 100%;\n height: 6px;\n background: $ui-base-lighter-color;\n\n & > .tracker {\n position: absolute;\n top: 0;\n left: 0;\n height: 6px;\n border-radius: 6px;\n background: $ui-highlight-color;\n }\n }\n }\n}\n\n.compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n}\n\n.composer--options-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n height: 27px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n}\n\n.composer--options {\n display: flex;\n flex: 0 0 auto;\n\n & > * {\n display: inline-block;\n box-sizing: content-box;\n padding: 0 3px;\n height: 27px;\n line-height: 27px;\n vertical-align: bottom;\n }\n\n & > hr {\n display: inline-block;\n margin: 0 3px;\n border-width: 0 0 0 1px;\n border-style: none none none solid;\n border-color: transparent transparent transparent darken($simple-background-color, 24%);\n padding: 0;\n width: 0;\n height: 27px;\n background: transparent;\n }\n}\n\n.compose--counter-wrapper {\n align-self: center;\n margin-right: 4px;\n}\n\n.composer--options--dropdown {\n &.open {\n & > .value {\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n color: $primary-text-color;\n background: $ui-highlight-color;\n transition: none;\n }\n &.top {\n & > .value {\n border-radius: 0 0 4px 4px;\n box-shadow: 0 4px 4px rgba($base-shadow-color, 0.1);\n }\n }\n }\n}\n\n.composer--options--dropdown--content {\n position: absolute;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n background: $simple-background-color;\n overflow: hidden;\n transform-origin: 50% 0;\n}\n\n.composer--options--dropdown--content--item {\n display: flex;\n align-items: center;\n padding: 10px;\n color: $inverted-text-color;\n cursor: pointer;\n\n & > .content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n &:not(:first-child) { margin-left: 10px }\n\n strong {\n display: block;\n color: $inverted-text-color;\n font-weight: 500;\n }\n }\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n\n & > .content {\n color: $primary-text-color;\n\n strong { color: $primary-text-color }\n }\n }\n\n &.active:hover { background: lighten($ui-highlight-color, 4%) }\n}\n\n.composer--publisher {\n padding-top: 10px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n justify-content: flex-end;\n flex: 0 0 auto;\n\n & > .primary {\n display: inline-block;\n margin: 0;\n padding: 0 10px;\n text-align: center;\n }\n\n & > .side_arm {\n display: inline-block;\n margin: 0 2px;\n padding: 0;\n width: 36px;\n text-align: center;\n }\n\n &.over {\n & > .count { color: $warning-red }\n }\n}\n",".column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.column {\n overflow: hidden;\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n\n &.active {\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n top: 35px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n\n & > button {\n margin: 0;\n border: none;\n padding: 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n box-shadow: 0 1px 0 rgba($ui-highlight-color, 0.3);\n\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($ui-highlight-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n\n .wide .columns-area:not(.columns-area--mobile) & {\n flex: auto;\n min-width: 330px;\n max-width: 400px;\n }\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n margin-left: 0;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n\n // glitch - added focus ring for keyboard navigation\n &:focus {\n text-shadow: 0 0 4px darken($ui-highlight-color, 5%);\n }\n}\n\n.column-header__notif-cleaning-buttons {\n display: flex;\n align-items: stretch;\n justify-content: space-around;\n\n button {\n @extend .column-header__button;\n background: transparent;\n text-align: center;\n padding: 10px 0;\n white-space: pre-wrap;\n }\n\n b {\n font-weight: bold;\n }\n}\n\n// The notifs drawer with no padding to have more space for the buttons\n.column-header__collapsible-inner.nopad-drawer {\n padding: 0;\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n\n // notif cleaning drawer\n &.ncd {\n transition: none;\n &.collapsed {\n max-height: 0;\n opacity: 0.7;\n }\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.column-header__title {\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.empty-column-indicator,\n.error-column {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.error-column {\n flex-direction: column;\n}\n\n// more fixes for the navbar-under mode\n@mixin fix-margins-for-navbar-under {\n .tabs-bar {\n margin-top: 0 !important;\n margin-bottom: -6px !important;\n }\n}\n\n.single-column.navbar-under {\n @include fix-margins-for-navbar-under;\n}\n\n.auto-columns.navbar-under {\n @media screen and (max-width: $no-gap-breakpoint) {\n @include fix-margins-for-navbar-under;\n }\n}\n\n.auto-columns.navbar-under .react-swipeable-view-container .columns-area,\n.single-column.navbar-under .react-swipeable-view-container .columns-area {\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 100% !important;\n }\n}\n\n.column-inline-form {\n padding: 7px 15px;\n padding-right: 5px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n margin-bottom: 6px;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 5px;\n }\n}\n",".regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n",".directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n",".search {\n position: relative;\n}\n\n.search__input {\n @include search-input();\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: color, transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(0deg);\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n padding: 15px 10px;\n font-size: 14px;\n font-weight: 500;\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n",null,".emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.emoji-button {\n display: block;\n font-size: 24px;\n line-height: 24px;\n margin-left: 2px;\n width: 24px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n margin-top: 2px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n","$doodleBg: #d9e1e8;\n.doodle-modal {\n @extend .boost-modal;\n width: unset;\n}\n\n.doodle-modal__container {\n background: $doodleBg;\n text-align: center;\n line-height: 0; // remove weird gap under canvas\n canvas {\n border: 5px solid $doodleBg;\n }\n}\n\n.doodle-modal__action-bar {\n @extend .boost-modal__action-bar;\n\n .filler {\n flex-grow: 1;\n margin: 0;\n padding: 0;\n }\n\n .doodle-toolbar {\n line-height: 1;\n\n display: flex;\n flex-direction: column;\n flex-grow: 0;\n justify-content: space-around;\n\n &.with-inputs {\n label {\n display: inline-block;\n width: 70px;\n text-align: right;\n margin-right: 2px;\n }\n\n input[type=\"number\"],input[type=\"text\"] {\n width: 40px;\n }\n span.val {\n display: inline-block;\n text-align: left;\n width: 50px;\n }\n }\n }\n\n .doodle-palette {\n padding-right: 0 !important;\n border: 1px solid black;\n line-height: .2rem;\n flex-grow: 0;\n background: white;\n\n button {\n appearance: none;\n width: 1rem;\n height: 1rem;\n margin: 0; padding: 0;\n text-align: center;\n color: black;\n text-shadow: 0 0 1px white;\n cursor: pointer;\n box-shadow: inset 0 0 1px rgba(white, .5);\n border: 1px solid black;\n outline-offset:-1px;\n\n &.foreground {\n outline: 1px dashed white;\n }\n\n &.background {\n outline: 1px dashed red;\n }\n\n &.foreground.background {\n outline: 1px dashed red;\n border-color: white;\n }\n }\n }\n}\n",".drawer {\n width: 300px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n padding: 10px 5px;\n flex: none;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n\n @include single-column('screen and (max-width: 630px)') { flex: auto }\n\n @include limited-single-column('screen and (max-width: 630px)') {\n &, &:first-child, &:last-child { padding: 0 }\n }\n\n .wide & {\n min-width: 300px;\n max-width: 400px;\n flex: 1 1 200px;\n }\n\n @include single-column('screen and (max-width: 630px)') {\n :root & { // Overrides `.wide` for single-column view\n flex: auto;\n width: 100%;\n min-width: 0;\n max-width: none;\n padding: 0;\n }\n }\n\n .react-swipeable-view-container & { height: 100% }\n}\n\n.drawer--header {\n display: flex;\n flex-direction: row;\n margin-bottom: 10px;\n flex: none;\n background: lighten($ui-base-color, 8%);\n font-size: 16px;\n\n & > * {\n display: block;\n box-sizing: border-box;\n border-bottom: 2px solid transparent;\n padding: 15px 5px 13px;\n height: 48px;\n flex: 1 1 auto;\n color: $darker-text-color;\n text-align: center;\n text-decoration: none;\n cursor: pointer;\n }\n\n a {\n transition: background 100ms ease-in;\n\n &:focus,\n &:hover {\n outline: none;\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.search {\n position: relative;\n margin-bottom: 10px;\n flex: none;\n\n @include limited-single-column('screen and (max-width: #{$no-gap-breakpoint})') { margin-bottom: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n}\n\n.search-popout {\n @include search-popout();\n}\n\n.drawer--account {\n padding: 10px;\n color: $darker-text-color;\n display: flex;\n align-items: center;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n .acct {\n display: block;\n color: $secondary-text-color;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n overflow: hidden;\n}\n\n.drawer--results {\n background: $ui-base-color;\n overflow-x: hidden;\n overflow-y: auto;\n\n & > header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n & > section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n\n & > .hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n }\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 100%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n > .mastodon {\n display: block;\n width: 100%;\n height: 100%;\n border: none;\n cursor: inherit;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n",".video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n width: 100%;\n height: 100%;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 8%);\n }\n\n .status__content > & {\n margin-top: 15px; // Add margin when used bare for NSFW video player\n }\n @include fullwidth-gallery;\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 500;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &.autoplay {\n .media-gallery__gifv__label {\n display: none;\n }\n }\n\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n span {\n text-align: center;\n color: $darker-text-color;\n display: flex;\n height: 100%;\n align-items: center;\n\n p {\n width: 100%;\n }\n }\n\n audio {\n width: 100%;\n }\n}\n\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n height: 110px;\n\n @include fullwidth-gallery;\n}\n\n.media-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n .full-width & {\n border-radius: 0;\n }\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n\n &.letterbox {\n background: $base-shadow-color;\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n object-fit: contain;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n width: 100%;\n position: relative;\n z-index: 1;\n object-fit: contain;\n user-select: none;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $white;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $ui-highlight-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n .detailed-status & {\n width: 100%;\n height: 100%;\n }\n\n @include fullwidth-gallery;\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n position: relative;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-shadow-color;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n\n .fa,\n &:active .fa,\n &:hover .fa,\n &:focus .fa {\n color: inherit;\n }\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n",".sensitive-info {\n display: flex;\n flex-direction: row;\n align-items: center;\n position: absolute;\n top: 4px;\n left: 4px;\n z-index: 100;\n}\n\n.sensitive-marker {\n margin: 0 3px;\n border-radius: 2px;\n padding: 2px 6px;\n color: rgba($primary-text-color, 0.8);\n background: rgba($base-overlay-background, 0.5);\n font-size: 12px;\n line-height: 18px;\n text-transform: uppercase;\n opacity: .9;\n transition: opacity .1s ease;\n\n .media-gallery:hover & { opacity: 1 }\n}\n",".list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n",".emoji-mart {\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: 0;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -3px;\n left: 0;\n width: 100%;\n height: 3px;\n background-color: darken($ui-highlight-color, 3%);\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n",".glitch.local-settings {\n position: relative;\n display: flex;\n flex-direction: row;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n height: 80vh;\n width: 80vw;\n max-width: 740px;\n max-height: 450px;\n overflow: hidden;\n\n label, legend {\n display: block;\n font-size: 14px;\n }\n\n .boolean label, .radio_buttons label {\n position: relative;\n padding-left: 28px;\n padding-top: 3px;\n\n input {\n position: absolute;\n left: 0;\n top: 0;\n }\n }\n\n span.hint {\n display: block;\n color: $lighter-text-color;\n }\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n line-height: 24px;\n margin-bottom: 20px;\n }\n\n h2 {\n font-size: 15px;\n font-weight: 500;\n line-height: 20px;\n margin-top: 20px;\n margin-bottom: 10px;\n }\n}\n\n.glitch.local-settings__navigation__item {\n display: block;\n padding: 15px 20px;\n color: inherit;\n background: lighten($ui-secondary-color, 8%);\n border-bottom: 1px $ui-secondary-color solid;\n cursor: pointer;\n text-decoration: none;\n outline: none;\n transition: background .3s;\n\n .text-icon-button {\n color: inherit;\n transition: unset;\n }\n\n &:hover {\n background: $ui-secondary-color;\n }\n\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n\n &.close, &.close:hover {\n background: $error-value-color;\n color: $primary-text-color;\n }\n}\n\n.glitch.local-settings__navigation {\n background: lighten($ui-secondary-color, 8%);\n width: 212px;\n font-size: 15px;\n line-height: 20px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page {\n display: block;\n flex: auto;\n padding: 15px 20px 15px 20px;\n width: 360px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page__item {\n margin-bottom: 2px;\n}\n\n.glitch.local-settings__page__item.string,\n.glitch.local-settings__page__item.radio_buttons {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n@media screen and (max-width: 630px) {\n .glitch.local-settings__navigation {\n width: 40px;\n flex-shrink: 0;\n }\n\n .glitch.local-settings__navigation__item {\n padding: 10px;\n\n span:last-of-type {\n display: none;\n }\n }\n}\n",".error-boundary {\n color: $primary-text-color;\n font-size: 15px;\n line-height: 20px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n font-weight: 400;\n margin-bottom: 8px;\n }\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n }\n\n ul {\n list-style: disc;\n margin-left: 0;\n padding-left: 1em;\n }\n\n textarea.web_app_crash-stacktrace {\n width: 100%;\n resize: none;\n white-space: pre;\n font-family: $font-monospace, monospace;\n }\n}\n",".compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .drawer--account {\n flex: 0 1 48px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .composer {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px;\n min-height: 48px + 2px;\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n padding-top: 15px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .search {\n margin-bottom: 10px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n ul,\n .e-content & ul {\n margin: 0;\n list-style: none;\n }\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n display: inline-block;\n border-radius: 4px;\n background: darken($ui-primary-color, 14%);\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__text {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n display: block;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-width: 4px;\n background: none;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 52px;\n font-weight: 700;\n padding: 0 10px;\n padding-left: 8px;\n text-align: right;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 52px;\n }\n\n &__vote__mark {\n float: left;\n line-height: 18px;\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n width: 100%;\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__text {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n @include avatar-size(80px);\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n @include avatar-radius();\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n @include avatar-size(44px);\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: none;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n margin-bottom: 20px;\n line-height: 20px;\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n padding: 10px;\n background: $ui-base-color;\n color: $darker-text-color;\n border-radius: 4px 4px 0 0;\n font-size: 14px;\n position: relative;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n &__extras {\n background: lighten($ui-base-color, 6%);\n border-radius: 0 0 4px 4px;\n padding: 10px;\n color: $darker-text-color;\n font-family: $font-monospace, monospace;\n font-size: 12px;\n word-wrap: break-word;\n min-height: 20px;\n }\n\n &__icon {\n font-size: 28px;\n margin-right: 10px;\n color: $dark-text-color;\n }\n\n &__icon__overlay {\n position: absolute;\n top: 10px;\n right: 10px;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n\n &.positive {\n background: $success-green;\n }\n\n &.negative {\n background: lighten($error-red, 12%);\n }\n\n &.neutral {\n background: $ui-highlight-color;\n }\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n\n .diff-old {\n color: lighten($error-red, 12%);\n }\n\n .diff-neutral {\n color: $secondary-text-color;\n }\n\n .diff-new {\n color: $success-green;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n","$emojis-requiring-outlines: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash' !default;\n\n%emoji-outline {\n filter: drop-shadow(1px 1px 0 $primary-text-color) drop-shadow(-1px 1px 0 $primary-text-color) drop-shadow(1px -1px 0 $primary-text-color) drop-shadow(-1px -1px 0 $primary-text-color);\n}\n\n.emojione {\n @each $emoji in $emojis-requiring-outlines {\n &[title=':#{$emoji}:'] {\n @extend %emoji-outline;\n }\n }\n}\n\n.hicolor-privacy-icons {\n .status__visibility-icon.fa-globe,\n .composer--options--dropdown--content--item .fa-globe {\n color: #1976D2;\n }\n\n .status__visibility-icon.fa-unlock,\n .composer--options--dropdown--content--item .fa-unlock {\n color: #388E3C;\n }\n\n .status__visibility-icon.fa-lock,\n .composer--options--dropdown--content--item .fa-lock {\n color: #FFA000;\n }\n\n .status__visibility-icon.fa-envelope,\n .composer--options--dropdown--content--item .fa-envelope {\n color: #D32F2F;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .composer--publisher {\n text-align: left;\n }\n\n .boost-modal__status-time,\n .favourite-modal__status-time {\n float: left;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .setting-meta__label {\n float: left;\n }\n\n .status__avatar {\n margin-left: 10px;\n margin-right: 0;\n\n // Those are used for public pages\n left: auto;\n right: 10px;\n }\n\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 58px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n text-align: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","// components.scss\n.compose-form {\n .compose-form__modifiers {\n .compose-form__upload {\n &-description {\n input {\n &::placeholder {\n opacity: 1.0;\n }\n }\n }\n }\n }\n}\n\n.rich-formatting a,\n.rich-formatting p a,\n.rich-formatting li a,\n.landing-page__short-description p a,\n.status__content a,\n.reply-indicator__content a {\n color: lighten($ui-highlight-color, 12%);\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n }\n\n &.mention span {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.status__content__spoiler-link {\n color: $secondary-text-color;\n text-decoration: none;\n }\n}\n\n.status__content__read-more-button {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n}\n\n.getting-started__footer a {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n}\n\n.nothing-here {\n color: $darker-text-color;\n}\n\n.public-layout .public-account-header__tabs__tabs .counter.active::after {\n border-bottom: 4px solid $ui-highlight-color;\n}\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///common.scss","webpack:///./app/javascript/flavours/glitch/styles/reset.scss","webpack:///./app/javascript/flavours/glitch/styles/contrast/variables.scss","webpack:///./app/javascript/flavours/glitch/styles/basics.scss","webpack:///./app/javascript/flavours/glitch/styles/variables.scss","webpack:///./app/javascript/flavours/glitch/styles/containers.scss","webpack:///./app/javascript/flavours/glitch/styles/_mixins.scss","webpack:///./app/javascript/flavours/glitch/styles/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/footer.scss","webpack:///./app/javascript/flavours/glitch/styles/compact_header.scss","webpack:///./app/javascript/flavours/glitch/styles/widgets.scss","webpack:///./app/javascript/flavours/glitch/styles/forms.scss","webpack:///./app/javascript/flavours/glitch/styles/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/statuses.scss","webpack:///./app/javascript/flavours/glitch/styles/components/index.scss","webpack:///./app/javascript/flavours/glitch/styles/components/boost.scss","webpack:///./app/javascript/flavours/glitch/styles/components/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/components/domains.scss","webpack:///./app/javascript/flavours/glitch/styles/components/status.scss","webpack:///./app/javascript/flavours/glitch/styles/components/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/components/composer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/columns.scss","webpack:///./app/javascript/flavours/glitch/styles/components/regeneration_indicator.scss","webpack:///./app/javascript/flavours/glitch/styles/components/directory.scss","webpack:///./app/javascript/flavours/glitch/styles/components/search.scss","webpack:///","webpack:///./app/javascript/flavours/glitch/styles/components/emoji.scss","webpack:///./app/javascript/flavours/glitch/styles/components/doodle.scss","webpack:///./app/javascript/flavours/glitch/styles/components/drawer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/media.scss","webpack:///./app/javascript/flavours/glitch/styles/components/sensitive.scss","webpack:///./app/javascript/flavours/glitch/styles/components/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/components/emoji_picker.scss","webpack:///./app/javascript/flavours/glitch/styles/components/local_settings.scss","webpack:///./app/javascript/flavours/glitch/styles/components/error_boundary.scss","webpack:///./app/javascript/flavours/glitch/styles/components/single_column.scss","webpack:///./app/javascript/flavours/glitch/styles/components/announcements.scss","webpack:///./app/javascript/flavours/glitch/styles/polls.scss","webpack:///./app/javascript/flavours/glitch/styles/about.scss","webpack:///./app/javascript/flavours/glitch/styles/tables.scss","webpack:///./app/javascript/flavours/glitch/styles/admin.scss","webpack:///./app/javascript/flavours/glitch/styles/accessibility.scss","webpack:///./app/javascript/flavours/glitch/styles/rtl.scss","webpack:///./app/javascript/flavours/glitch/styles/dashboard.scss","webpack:///./app/javascript/flavours/glitch/styles/contrast/diff.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,sCACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,0BACA,CC9EmB,iEDqFrB,kBCrFqB,4BDyFrB,sBACE,MEtFF,sBACE,mBACA,eACA,iBACA,gBACA,WCVM,kCDYN,6BACA,8BACA,CADA,0BACA,CADA,qBACA,0CACA,wCACA,kBAEA,sIAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBDpDmB,kBCwDnB,iBACE,kBACA,0BAEA,iBACE,YAIJ,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cDzEgB,mBAZC,WCwFjB,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,wBAEA,aACE,gBACA,WACA,YACA,kBACA,uBAGF,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,6BAKF,YAEE,WACA,mBACA,uBACA,oBACA,yEAKF,gBAEE,+EAKF,WAEE,gBErJJ,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SDrBI,YCuBF,kBACA,sBAGF,YACE,uBACA,mBACA,WD9BE,qBCgCF,UACA,kBACA,iBACA,uBACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAKA,UACqB,sCC3EvB,iBD4EE,6BAEA,UACE,YACA,cACA,SACA,kBACA,iBD5BkB,wBE9DtB,4BACA,uBD8FA,aACE,cHjFmB,wBGmFnB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UD1UA,qCC6UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cHlVc,mBGoVd,kBACA,uHAEA,yBAGE,WDvWA,qCC2WF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBH1aiB,8CG+anB,yBACE,gBACA,aACA,kBACA,mBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,CAEA,WACqB,yCCzgB3B,kBD0gBM,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,iBD7dc,wBE9DtB,4BACA,qCD+hBI,2CAvCF,YAwCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAKA,UACqB,sCCtiB7B,CDuiBQ,sBACA,wDAEA,QACE,kBACA,iBDrfY,wBE9DtB,4BACA,2DDsjBQ,mDAbF,YAcI,sCAKN,2CApEF,eAqEI,sCAGF,2CAxEF,cAyEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WDhlBF,gBCklBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WD1lBJ,gBC4lBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aHrmBQ,oDG4mBd,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cHjoBU,aGmoBV,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BHjqBW,wEGuqBX,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WDzsBJ,uBC2sBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cHluBY,uDGquBZ,oBACE,cHtuBU,qBGwuBV,aACA,gBACA,8DAEA,eACE,WD1vBJ,qCCgwBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aD3yBU,8DCizBV,mBACA,WDnzBE,qFCuzBJ,YAEE,eACA,cH7yBc,2CGizBhB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBHz3Ba,+IG43BX,kBAGE,WEl4BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,eChBJ,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,yBCrBF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cPnFc,6BOsFd,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cRYgB,gBQVhB,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cRJiB,wBQQnB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBPPI,uBOUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBTlBmB,aSoBjB,0BACA,eACA,cTVgB,iBSYhB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aTxCmB,qBS0CjB,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cTjEgB,+BSqElB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aT9FkB,aSmGpB,YACE,kBACA,mBTjHmB,mCSmHnB,qBAGF,YACE,kBACA,0BACA,kBACA,cT9GkB,mBSgHlB,iBAGF,eACE,eACA,cTrHkB,iBSuHlB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cThIgB,0BSoIlB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cT7IgB,qBS+IhB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBT3KmB,mCS6KnB,cT/JqB,gBSiKrB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cT5Mc,8DSkNhB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,ePlPM,COoPN,cACA,cTvOkB,mBSyOlB,+BANA,iBACA,CPlPM,kCOgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,UPjQM,eOmQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cT7PgB,qCSiQlB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBTvRqB,kBSyRnB,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBTpSe,kBSsSf,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBT3SiB,eS6Sf,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WPnUE,mBOqUF,gBACA,uBACA,wBAEA,aT5Tc,0BSgUd,aACE,gBACA,eACA,eACA,cTpUY,yFS0Ud,UPvVE,+BO8VJ,aACE,YACA,uDAGF,oBTxViB,eS8VrB,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cTtYgB,gBSwYhB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WP3aI,8BO8aJ,aACE,cTlac,gBSoad,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aTngBkB,iCSkgBpB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cT1hBiB,4JS6hBjB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WP9jBI,gCOgkBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MC/kBJ,+BACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WRhDA,cQkDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aVjEoB,0BUmElB,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aVvFkB,sBU0FhB,aVnGsB,yBUuGtB,iBACE,kBACA,mBACA,wBAIJ,aACE,eACA,eACA,qBAGF,kBACE,cV5GgB,iCU+GhB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WRzJA,gBQ2JA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WR/KE,cQiLF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WRrME,cQuMF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,kDAIJ,oBACE,WACA,OACA,6BAGF,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WRzRI,cQ2RJ,WACA,2CAKE,mBACE,eACA,WRnSA,qBQqSA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WRnUI,cQqUJ,WACA,UACA,oBACA,gBACA,mBACA,yBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBR1VY,oLQ8VZ,iBACE,4WAGF,oBV/VsB,mBUkWpB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBVzYiB,WEXb,eQuZJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBVhboB,gGUobpB,kBRpbQ,kHQubN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WRvcI,cQycJ,WACA,UACA,oBACA,gBACA,wXACA,yBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cVvdY,oBUydZ,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,iEACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,8BACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,URrhBF,aQ+hBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cV1hBkB,kBU4hBlB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cR/iBY,sBQmjBd,mCACE,+BACA,cRpjBQ,kBQwjBV,oBACE,cV9iBgB,qBUgjBhB,wBAEA,UR/jBI,0BQikBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gCACA,mBV/kBiB,WEDb,eQmlBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aV3mBkB,qBU6mBhB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aVxoBwB,yBU0oBtB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cV/oBkB,oCUkpBlB,cACE,mBACA,kBACA,4CAGF,aVtpBqB,gBUwpBnB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBR5rBM,YQ8rBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cV3rBqB,WU6rBrB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WRxuBI,qCQ0uBJ,oCACA,kBACA,aACA,mBACA,gDAEA,URhvBI,0BQkvBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cVlxBkB,0BUqxBlB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WR5yBI,kBQ8yBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aRtzBc,0SQg0BZ,+BACE,aAIJ,kBACE,yBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gCACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBR12Bc,gBQ42BZ,2BAEA,kBR92BY,gBQg3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SCj7BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,mBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,CAEA,UACqB,sCPpDzB,gBOqDI,wBAEA,UACE,YACA,cACA,SACA,kBACA,iBTLgB,wBE9DtB,4BACA,mBOoEM,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WT/EA,gBSiFA,gBACA,uBACA,+BAGF,aACE,eACA,cX3EY,gBW6EZ,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WT7GI,gBS+GJ,qBACA,iBACA,qBACA,sBAGF,eTrHM,oBSuHJ,WXxHI,eW0HJ,cACA,kBAGF,cACE,uCAGF,wBAEE,cXpHmB,oBWwHrB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,cACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBX7KqB,mCW+KnB,cX3JiB,eW6JjB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cX5MwB,sCW8MxB,sCACA,6DAEA,aTnNc,sCSqNZ,kCACA,qDAGF,aACE,sCACA,kCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cX/OmB,6BWiPnB,6BAGF,aACE,cXvPgB,4BW2PlB,aXpQwB,qBWsQtB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aTtRY,gBSwRV,0CAGF,aT3RY,wCSgSd,eACE,wCAIJ,UACE,0BAIA,aX9RkB,4BWiShB,aX3SsB,qBW6SpB,qGAEA,yBAGE,iCAIJ,UTzTI,gBS2TF,wBAIJ,eACE,kBClUJ,kCACE,kBACA,gBACA,mBACA,qCAEA,iBANF,eAOI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBZxBmB,6GY2BjB,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBZhEmB,WEXb,oBU8EN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UVxFI,gFU4FN,kBAGE,qNAKA,kBZlGoB,4IY0GpB,kBV1GQ,qCUiHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAKA,cACA,iBACA,mBACA,mFAGF,iBACE,eACA,WACA,WACA,WACA,qMAGF,eAGE,mEASF,cACE,gBACA,qFAGF,aZhKc,YYkKZ,eACA,WACA,eACA,gBACA,+GAGF,aACE,eACA,CACA,sBACA,eACA,yJAEA,cACE,uEAIJ,WACE,kBACA,WACA,eACA,iDAQF,iBACE,mBACA,yHAEA,iBACE,gBACA,+FAGF,UACE,oCAMR,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,qBACA,oFAEA,yBAEE,WC9OJ,gCACE,4CACA,kBAGF,mBACE,sBACA,oBACA,gBACA,kBACA,cAGF,aACE,eACA,iBACA,cbHmB,SaKnB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,abxBsB,ea0BpB,SAIJ,wBACE,YACA,kBACA,sBACA,WXpCM,eWsCN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,qCACA,mBACA,WACA,4CAEA,wBAGE,4BACA,qCACA,sBAGF,eACE,mFAEA,wBXnEQ,gBWuEN,kBAIJ,wBb3EsB,ea6EpB,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,Ub9FM,mBAGgB,qGa+FpB,wBAGE,8BAIJ,kBX1EsB,2GW6EpB,wBAGE,0BAIJ,cACE,iBACA,YACA,cbxGgB,oBa0GhB,uBACA,iBACA,kBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,cAIJ,oBACE,UACA,cbhIoB,SakIpB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,uCACA,4BACA,2CACA,oBAGF,qCACE,uBAGF,aACE,6BACA,eACA,qBAGF,abzKwB,gCa6KxB,QACE,uEAGF,mBAGE,uBAGF,abvKmB,sFa0KjB,aAGE,oCACA,6BAGF,kCACE,gCAGF,aACE,6BACA,8BAGF,ab1MsB,uCa6MpB,aACE,wBAKN,sBACE,0BACA,yBACA,kBACA,YACA,8BAEA,yBACE,mBAKN,abhNqB,SakNnB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,oCACA,4BACA,2CACA,yBAGF,kCACE,4BAGF,aACE,6BACA,eACA,0BAGF,abjQwB,qCaqQxB,QACE,sFAGF,mBAGE,gBAIJ,iBACE,uBACA,YAGF,WACE,cACA,qBACA,QACA,SACA,kBACA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,uCAIJ,MACE,kBACA,CX/SU,sEWsTZ,aXtTY,uBW0TZ,aX3Tc,4DWiUV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UXrVM,0BWuVJ,eAIJ,aACE,eACA,gBACA,uBACA,mBACA,iBAEA,aACE,wBACA,sBAIA,cACA,gBAKA,yCAPF,WACE,CAEA,gBACA,uBACA,gBACA,mBAWA,CAVA,mBAGF,aACE,CACA,cAKA,8BAIA,yBACE,sBAIJ,SACE,YACA,eACA,iBACA,uBACA,mBACA,gBACA,CAME,sDAGF,cACE,YACA,kBACA,oBACA,qBAKN,eACE,wBAGF,cACE,eAGF,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cXxX4B,eAEC,0DWyX3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cXhZ4B,eAEC,WWiZ3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,WAIJ,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBbxd0B,ca0dxB,kBACA,uCACA,mBAEA,eACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0Bb5esB,2BagfxB,WACE,iBACA,uBACA,yBbnfsB,8BaufxB,QACE,iBACA,uBACA,4Bb1fsB,6Ba8fxB,SACE,gBACA,2BACA,2BbjgBsB,wBaugBxB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBb7gBsB,WAJlB,gBaohBJ,uBACA,mBACA,yFAEA,kBb5gBiB,cAIE,Ua6gBjB,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBbviBsB,cayiBtB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBbhkBsB,WAJlB,gBaukBJ,uBACA,mBACA,oDAEA,SACE,oDAGF,kBbnkBiB,cAIE,iBaskBvB,qBACE,iBAIA,sBACA,cb7kBgB,oBaglBhB,cACE,gBACA,mBACA,kBACA,mBAGF,cACE,mBACA,iBAIJ,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WX3pBM,qBW6pBN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCTxoBA,6GADF,kBSgpBI,4BACA,kHT5oBJ,kBS2oBI,4BACA,wBAIJ,+BACE,cbhrBsB,sBaorBxB,eACE,aACA,2BAGF,aACE,eACA,kBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBb9rBiB,yBagsBjB,gBACA,kBACA,eACA,gBACA,iBACA,WXhtBI,mDWqtBR,oBACE,aAGF,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,gBAIJ,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,0CACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBbzxBmB,qCa2xBnB,sEAGF,wBACE,4CAGF,wBbxxBqB,+Ea4xBrB,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,yBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBbp1BmB,yDaw1BrB,kBbl2BqB,2Baw2BrB,iBACE,gBACA,cAGF,aACE,kBAGF,kBbj3BqB,cam3BnB,oBAEA,abv2BqB,oBa22BrB,ab52BgB,yBag3BhB,0BACE,CADF,uBACE,CADF,kBACE,kDAKA,sBACA,cACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,abl4Bc,eao4BZ,0DAEA,abt4BY,0Baw4BV,sDAIJ,oBACE,cb94Bc,sMai5Bd,yBAGE,0BAKN,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cbj6Bc,aam6Bd,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,ab57Bc,qBam8BpB,oBACE,kBACA,eACA,iBACA,gBACA,mBbp9BmB,gBas9BnB,iBACA,qBAGF,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,abn+BoB,uBaq+BlB,CACA,WACA,CADA,+BACA,sBACA,cACA,oBACA,mBACA,cACA,WACA,0CAEA,UX5/BM,4BFWa,qCIYjB,yDADF,cS6+BE,sBAGF,UbvgCM,gCaygCJ,sDAEA,Ub3gCI,4BAYa,mDaugCrB,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAIJ,uBACE,2BACA,gDAGF,abnhCsB,6BaqhCpB,uDAGF,abriC0B,yDayiC1B,aACE,YAGF,aACE,cbpiCgB,6BasiChB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,oBAGF,gBACE,qEAGF,4BACE,gCAGF,eACE,kBACA,MACA,QACA,YACA,kBACA,YAEA,mBACA,yBACA,eACA,aAEA,wCAEA,UX/hCsB,mBWiiCpB,aACA,sBACA,mBACA,uBACA,mBACA,8BACA,wBACA,gCACA,uCAGF,wBACE,kBACA,WACA,YACA,eACA,cbrmCgB,yBaumChB,aACA,uBACA,mBACA,sCAGF,mBACE,6CAEA,8BACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,oBAGF,abhoCkB,eakoChB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,6BAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,YACE,SACA,QACA,WACA,YACA,mBACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,0BACA,kBACA,iBACA,WX3yCE,gBW6yCF,eACA,+LAMA,yBACE,mEAKF,yBACE,iBAMR,aACE,iBACA,mEAGF,abzzCoB,qBa6zClB,mBACA,gBACA,sBACA,gBAGF,aACE,iBACA,uBAGF,eACE,8BAGF,ab50CoB,ea80ClB,cACA,gBACA,gBACA,uBAGF,qBACE,sBAGF,WACE,8BAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA3BF,qBAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,iBAIJ,0DACE,CADF,kDACE,cAGF,kBACE,0BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBb36CmB,kCa66CnB,uBAGF,MACE,aACA,mBACA,uBACA,cbt6CqB,eaw6CrB,gBACA,0BACA,kBACA,qCAGF,SACE,oBACA,CADA,WACA,cAGF,wBbv7CqB,Way7CnB,kBACA,MACA,OACA,aACA,qBAGF,iBACE,aAGF,iBACE,cACA,aACA,WACA,yBbx8CmB,kBa08CnB,cACA,UACA,WACA,eAGF,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,eACA,uBAGF,oBACE,mBb3+CsB,kBa6+CtB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cbx/Cc,kBa0/Cd,+BAGF,ab7/CgB,ea+/Cd,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UXphDE,qBWshDA,oHAEA,yBAGE,yCAKN,QACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UXhjDI,oBWyjDN,kBACA,cACA,2BAGF,eACE,UAGF,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cb9jDmB,gBagkDnB,gBAEA,ab7kDsB,0Ba+kDpB,sBAEA,oBACE,gBAIJ,qBACE,4BAKN,GACE,cACA,eACA,WARI,mBAKN,GACE,cACA,eACA,2CCrmDF,u+KACE,uCAEA,u+KACE,CAOA,8MAMF,okBACE,UClBJ,YACE,gCACA,cACA,qBACA,iCAEA,aACE,cACA,cfOgB,gBeLhB,qBACA,eACA,gBAGF,WACE,UACA,yCAEA,8CAEA,WACE,iBACA,mBAKN,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,gBb0BwB,wBE9DtB,4BACA,kBWqCA,eACA,yBAEA,oBACE,sBACA,iBACA,4BX3CF,eWiDE,2DAHF,gBbesB,wBE9DtB,4BACA,CWgDE,iBAOE,CANF,+BXjDF,UWqDI,CACA,qBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WbhEE,6BakEF,gBACA,eACA,0BAKN,iBACE,WACqB,sCXpErB,+BANA,UW8EuB,sCXxEvB,gEWsEA,gBbfsB,wBE9DtB,4BWyFE,CXlFF,iCANA,UWmFuB,sCX7EvB,kBW+EE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,2BAGF,aACE,mBACA,sBAGF,YACE,cf3FgB,6Be8FhB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,4BAGF,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,8BACA,eACA,oCACA,uCAEA,aACE,kCAGF,+BACE,gCAGF,aACE,yBACA,eACA,cfzJgB,kCe6JlB,aACE,eACA,gBACA,Wb7KI,CakLA,2NADF,eACE,gCAKN,afnLwB,oBewL1B,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,wBAGF,gBACE,qBACA,eACA,cfjMkB,eemMlB,kBACA,4BAEA,af/MwB,6BemNxB,aACE,gBACA,uBACA,iBAIJ,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,afrOoB,eeuOlB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SX5MF,sBACA,WACA,YACA,gBACA,oBACA,mBJxDmB,cAYD,eI+ClB,SACA,+EWsMI,aACE,CXvMN,qEWsMI,aACE,CXvMN,yEWsMI,aACE,CXvMN,gEWsMI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,af5Qc,iBe8QZ,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,aftSgB,0He2ShB,cAEE,gBACA,cf7SY,kZegTZ,aAGE,gEAIJ,wBACE,iDAGF,ebzUI,kBEkEN,CAEA,eACA,cJhDiB,uCIkDjB,UWoQI,mBfxUoB,oDIsExB,wBACE,cJrDe,eIuDf,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,WJ3FI,sDegVJ,WACE,mDAGF,UfpVI,kBesVF,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UbtWQ,kBawWN,cACA,mBACA,sBb3WM,yBa6WN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,6BAIJ,YACE,eACA,gBACA,wBAGF,WACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cfpZgB,eesZhB,eACA,gBACA,kBACA,qBACA,kBACA,yJAEA,af3ZmB,qWe8ZjB,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,sBAQR,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cfjdc,Ceodd,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,2BAIJ,af9eoB,eegflB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,Wb/mBA,gBainBA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cf3mBU,gBe6mBV,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,Wb5oBE,gDagpBJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,ab3pBU,yBaiqBd,cACE,gCAEA,cACE,cfzpBc,ee2pBd,kCAEA,oBACE,cf9pBY,qBegqBZ,iBACA,gBACA,yCAEA,eACE,WblrBF,ScFR,YACE,gCACA,8BAEA,aACE,cACA,WdJI,qBcMJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,mCCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,EDGF,0BCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,qCAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,EAtBA,2BAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,gCAIJ,cACE,kBAGF,iBACE,cACA,eACA,iBACA,qBACA,gBACA,iBACA,gBACA,wBAEA,SACE,4BAGF,UACE,YACA,gBACA,sBAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,qEAGF,kBACE,qBACA,sGAEA,eACE,qEAIJ,eAEE,qJAEA,kBAEE,mXAGF,eACE,mBACA,qJAGF,eACE,gBACA,2EAGF,eACE,+NAGF,eACE,2FAGF,iBACE,8BACA,cjBjGc,mBiBmGd,qHAEA,eACE,2JAIJ,eACE,mJAGF,iBACE,6EAGF,iBACE,eACA,6EAGF,iBACE,qBACA,qJAGF,eACE,6JAEA,QACE,2EAIJ,oBACE,2EAGF,uBACE,oBAIJ,af9Ic,qBegJZ,0BAEA,yBACE,8BAEA,aACE,kCAKF,oBACE,uCAEA,yBACE,wBAKN,ajBlKc,4CiBuKhB,YACE,8EAEA,aACE,mCAIJ,aACE,oDAEA,af5LQ,ee8LN,iDAIJ,kBACE,uDAEA,kBACE,qBACA,gCAKN,oBACE,kBACA,mBACA,YACA,WjBrNM,gBiBuNN,eACA,cACA,yBACA,oBACA,eACA,sBACA,sCAEA,kBACE,qBACA,+DAGF,oBACE,iBACA,sBACA,kBACA,eACA,oBACA,2GAKF,oBAGE,4BAIJ,ajBvOkB,SiByOhB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,mDAGF,iBAEE,gCAGA,qEAEA,eACE,kBAKF,SACE,mBACA,kDAEA,kBACE,wDAEA,sBACE,iFAIJ,kBAEE,SAKN,iBACE,kBACA,YACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QAPF,kBAUI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,ajBpTiB,qCiBwTjB,UjB7UI,6BiBiVJ,ajB3Te,CAtBX,kEiByVJ,UjBzVI,kCiB4VF,ajBvVoB,gEiB2VpB,Uf/VE,mBFEgB,sEiBiWhB,kBACE,mBAMR,uBACE,sBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,yCAEA,aACE,kBACA,OACA,QACA,MACA,SACA,6FACA,oBACA,WACA,2DAGF,oBACE,oCAGF,WACE,gBACA,uBACA,cACA,0CAEA,UACE,kBACA,MACA,gBACA,6DACA,oBACA,4CAGF,oBACE,gDAGJ,oDACE,mEAEF,oDACE,0CAGF,eACE,6DAGF,kBACE,gCAIJ,mBACE,+CAKF,sBACE,qEAEA,aACE,wBAKN,oBACE,YACA,CjBragB,ciBuahB,iBACA,mBACA,CACA,sBACA,8CANA,ajBragB,CiByahB,eAOA,8CAGF,aACE,eACA,eAGF,YACE,8BACA,eACA,oBAEA,sBACE,gBACA,2CAGF,oBACE,sBAIJ,YACE,mBACA,WACA,cjBvcoB,iIiB0cpB,gBAGE,kBACA,0EAGF,yBACE,yEAMA,0CACE,CADF,kCACE,2EAKF,2CACE,CADF,mCACE,wBAKN,YACE,mBACA,2BACA,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,gBACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,mBACA,iBACA,cjBthBgB,CiBwhBhB,iBACA,eACA,kBACA,+CAEA,ajB7hBgB,uBiBiiBhB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cjBvjBgB,4BiB6jBtB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cjBnnBgB,eiBqnBhB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,6JAGF,oBAME,4DAKA,UfxqBM,kBe8qBN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,ajB5rBuB,ciB8rBrB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,Wf1tBI,kCe+tBR,UACE,kBACA,iBAGF,SACE,kBACA,YACA,WACA,CjB1tBgB,8IiBquBhB,ajBruBgB,wBiByuBhB,UACE,wCAGF,kBf7tBsB,WF/BhB,8CiBgwBJ,kBACE,qBACA,+DAOJ,yBACE,cAIJ,YACE,eACA,yBACA,kBACA,cjBnwBgB,gBiBqwBhB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cjB9xBiB,uBiBgyBjB,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UftzBE,yBe6zBJ,cACE,kBACA,YACA,+DAGF,aACE,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACE,YACA,SACA,2BAIF,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cjBv1BkB,gBiBy1BlB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,ajBr2BoB,oBiBy2BpB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,kBAGF,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cjB77Bc,iBiB+7Bd,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cjB39BY,gBiB69BZ,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,ajB9+Bc,oCiBo/BlB,cACE,cACA,SACA,uBACA,UACA,kBACA,oBACA,oFAEA,yBAEE,6BC/gCJ,kBACE,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,0BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,6CAGF,kBlBrC0B,WAJlB,kBkB8CN,gBACA,aACA,sBACA,0BAGF,WACE,WACA,gBACA,iBACA,8DAEA,UACE,YACA,sBACA,aACA,sBACA,mBACA,uBACA,aACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAIJ,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,qCAGF,kBACE,UACE,YACA,gBACA,0BAGF,UACE,YACA,eACA,gBACA,cACA,oDAIJ,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,alB9GmB,SkBiHjB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,qiBAGF,UlBvJI,qwDkB2JF,aAGE,sBAMR,sBACE,yBAGF,aACE,aACA,mBACA,uBACA,wBAGF,UACE,YACA,mBACA,mBACA,aACA,eACA,8BAEA,kBACE,+BAGF,cACE,mBACA,kCAIJ,mBACE,CACA,mBACA,0EAEA,mBACE,yBAIJ,cACE,iBACA,4BAEA,cACE,gBACA,WlBjNI,mBkBmNJ,2BAGF,alBjNwB,kGkBoNtB,aAGE,2CAIJ,aACE,2BAGF,cACE,clBhNiB,gBkBkNjB,mBACA,sCAEA,eACE,kCAGF,eACE,mBlB7Oe,cAcE,kBkBkOjB,eACA,gBACA,CAII,2NADF,eACE,oCAOV,WACE,UACA,mCAME,mBACA,mBACA,sCAEA,cACE,iBACA,kBACA,qCAGF,eACE,oCAIJ,kBACE,mBACA,kBACA,eAIJ,iBACE,eACA,mBACA,sBAEA,eACE,WlBnSI,kBkBqSJ,yBACA,eACA,qBAGF,kBlBxSmB,cAcE,gBkB6RnB,aACA,kBACA,6HAQF,eACE,qJAGF,kBACE,clB5SmB,mBkB8SnB,kBACA,aACA,kBACA,eACA,sCACA,yPAEA,iBACE,mBACA,qNAGF,mBACE,gBACA,4CAMJ,YACE,mBACA,gDAEA,UACE,cACA,4DAEA,aACE,2DAGF,cACE,kDAGF,iBACE,uDAIJ,eACE,sDAIJ,UhB3WM,2DgBgXR,0BACE,cACE,iBACA,qJAGF,cAIE,mBACA,4CAGF,kBACE,sDAGF,WACE,eACA,mBAIJ,oBACE,eACA,gBACA,iBACA,uHAGF,kBAOE,WlBvZM,kBkByZN,gBACA,eACA,YACA,kBACA,sBACA,+SAEA,alBjZgB,YkBmZd,eACA,WACA,eACA,gBACA,uSAGF,YACE,uPAGF,WACE,WACA,+WAGF,UACE,wBAKF,ehBvbM,CFGkB,gBkBubtB,oBACA,iEhB3bI,2BFGkB,qDkBgc1B,iBAEE,aACA,qEAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,kKAIJ,YAKE,8BACA,mBlBjdwB,akBmdxB,iBACA,0LAEA,aACE,iBACA,clBvciB,mBkBycjB,kNAGF,aACE,6DAIJ,cAEE,yDAGF,WAEE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,alBvhBwB,qCkB2hBxB,oDAZF,eAaI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,UlB1jBI,gBECA,agB4jBJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,ehB5kBI,yBgB8kBF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,UlB7lBE,oBkB+lBA,eACA,gBhB/lBA,+CgBomBJ,YACE,8BACA,mBACA,4CAIJ,aACE,WlB7mBI,ekB+mBJ,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,UlBxnBI,ekB0nBF,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eAWE,eACA,wBAXA,eACE,iBACA,uBAGF,aACE,gBACA,2CAMF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,UlBzqBE,akB2qBA,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBlB9qBW,WEXb,iJgBgsBA,iBAGE,oMAUR,aACE,iIAIJ,4BAIE,clBlsBmB,ekBosBnB,gBACA,6cAEA,aAGE,6BACA,uCAIJ,iBACE,mBACA,oBACA,eAEA,yFAEA,qBACE,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,UlBnxBI,CkBqxBF,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gDACA,mBlB5zBe,WEDb,egBg0BF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,cAKN,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBhB12BM,yDgB62BN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBhBr3BI,uBgBy3BN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UhBt5BI,egBw5BF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,wBAKN,gBACE,sCAEA,eACE,gCAGF,eACE,qDAGF,UlB57BM,iDkBg8BN,YACE,0DAEA,YACE,0BAIJ,YACE,iBACA,uBACA,kDAGF,alB57BoB,qBkB87BlB,wDAEA,yBACE,WCp9BN,YACE,kCAEA,iBACE,MACA,QACA,oIAEA,+BAEE,oBAKN,cACE,uBACA,eACA,gBACA,cnBGmB,yDEjBP,sCiBsBd,2CACE,oBAGF,QACE,wBACA,UACA,+CAEA,WACE,mBACA,UACA,0BAGF,aACE,sBACA,SACA,YACA,kBACA,aACA,WACA,UACA,WnBjDI,gBECA,eiBmDJ,oBACA,gBACA,qDAEA,anBzCc,CmBuCd,2CAEA,anBzCc,CmBuCd,+CAEA,anBzCc,CmBuCd,sCAEA,anBzCc,gCmB6Cd,8Cf/CA,uCADF,ceiD4D,0Cf5C5D,ce4C4D,oBAI9D,UnBjEQ,mBmBmEN,mBnBhEsB,oCmBkEtB,iBACA,kBACA,eACA,gBACA,sBAEA,anBtDmB,gBmBwDjB,0BACA,mFAEA,oBAEU,iCAKZ,mBACA,eAEA,gBACA,wCAEA,anBxFwB,sDmB4FxB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,gBACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBnB9GsB,qCmBqH1B,eACE,kBACA,aACA,mBnB1HsB,gBmB4HtB,gBACA,cACA,yBAEA,iBACE,gBACA,wCAEA,UnBvII,iCmByIJ,WACE,iBACA,2BAIJ,iBACE,cACA,CACA,cACA,iBACA,WnBpJI,qBmBsJJ,gBACA,iBACA,qBACA,mBACA,gBACA,gGAEA,kBACE,qBACA,iIAEA,eACE,kJAIJ,eACE,mBACA,2DAGF,eACE,eACA,8BAGF,cACE,wFAGF,eACE,sCAGF,iBACE,2BACA,WnB1LE,mBmB4LF,mDAEA,eACE,8DAIJ,eACE,0DAGF,iBACE,+BAGF,iBACE,eACA,2DAGF,eACE,+DAEA,QACE,8BAIJ,oBACE,8BAGF,uBACE,6BAGF,anB3MiB,qBmB6Mf,mCAEA,oEAGE,oBACE,gDAEA,qDAMR,UACE,YACA,gBACA,uDAIJ,iBAEE,WACA,mIAGE,aACE,sBACA,SACA,YACA,0BACA,yBACA,WACA,iBACA,UACA,WnBtQE,gBECA,eiBwQF,oBACA,YACA,qBACA,yLAEA,anB/PY,CmB6PZ,sKAEA,anB/PY,CmB6PZ,8KAEA,anB/PY,CmB6PZ,4JAEA,anB/PY,yKmBmQZ,SACE,qJAGF,kBnBlRoB,+ImBmRpB,8Cf1QF,8JADF,ce4Q8D,kKfvQ9D,ceuQ8D,qCfhQ5D,8TADF,sBeoQM,gBACA,6BAMR,aACE,kBACA,SACA,UACA,WACA,gBACA,2CAEA,aACE,mBACA,WACA,YACA,cnBzRiB,emB2RjB,iBACA,kBACA,WACA,4CAIJ,iBACE,SACA,oCAGF,aACE,kBACA,sBACA,SACA,0BACA,YACA,WACA,WnBnUM,mBAIkB,sCmBkUxB,eACA,WACA,aACA,6CAGF,aACE,0CAGF,YACE,eACA,kBACA,iMAEA,kBAGa,iKAEb,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,+DAGF,6BACE,qEAEA,aACE,gBACA,uBACA,mBACA,sEAGF,eACE,qEAGF,aACE,iBACA,gBACA,uBACA,mBACA,4EAMA,anBzWe,wBmB8WrB,eACE,iCAEA,YACE,mBACA,eACA,oBACA,YACA,gBACA,8BAIJ,UACE,WACA,cACA,kCAEA,iBACE,kBACA,aACA,WACA,sBjBzZI,wBiB2ZJ,sBACA,4BACA,gBACA,2CAEA,aACE,kBACA,sBACA,SACA,OACA,SACA,SACA,aACA,WACA,cnBzZiB,gFmB2ZjB,eACA,oBACA,gBACA,UACA,UACA,4BACA,iDAEA,UjBlbE,sEiBobF,WACE,cnBtae,CEff,4DiBobF,WACE,cnBtae,CEff,gEiBobF,WACE,cnBtae,CEff,uDiBobF,WACE,cnBtae,yCmB2anB,2EAKE,0CAKN,iFACE,aACA,uBACA,8BACA,UACA,4BACA,8CAEA,aACE,cnB1csB,emB4ctB,gBACA,aACA,oBACA,2JAEA,aAGE,wCAIJ,SACE,kCAIJ,YACE,aACA,cnBrdkB,gBmBudlB,sCAEA,cACE,kBACA,2CAGF,aACE,gDAEA,aACE,eACA,gBACA,yBACA,qDAGF,iBACE,eACA,kBACA,WACA,WACA,mBjB5dkB,8DiB+dlB,iBACE,MACA,OACA,WACA,kBACA,mBnBvfa,0BmB8frB,UnB1gBQ,oBmB4gBN,eACA,gBjB5gBM,4BiBghBR,YACE,mBACA,0BACA,YACA,aACA,8BACA,cACA,oBAGF,YACE,cACA,sBAEA,oBACE,uBACA,cACA,YACA,iBACA,sBACA,uBAGF,oBACE,aACA,CAEA,oBACA,CADA,6BACA,UACA,QACA,YACA,uBACA,2BAIJ,iBACE,iBACA,0CAKE,yBACE,qCACA,WjB7jBE,mBFWa,gBmBqjBf,8CAGA,yBACE,oCACA,uCAMR,iBACE,kBACA,uCACA,gBjB9kBM,gBiBglBN,uBACA,6CAGF,YACE,mBACA,aACA,WnBxlBM,emB0lBN,sDAEA,aACE,cnBxkBiB,wEmB2kBjB,6EAEA,aACE,WnBnmBE,gBmBqmBF,sGAIJ,kBnB7lBmB,WEXb,6PiBgnBF,UjBhnBE,0DiBonBN,wCAGF,gBACE,iBACA,mBACA,gBACA,yBACA,cACA,+BAEA,oBACE,SACA,eACA,kBACA,gCAGF,oBACE,aACA,UACA,WACA,kBACA,kCAIA,ajB5oBU,CkBFZ,+BAHF,YACE,cACA,kBAUA,CATA,cAKA,kBACA,2BACA,gBAEA,uBAEA,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,wHAMJ,WAGE,mCAIJ,YACE,mBACA,uBACA,YACA,CpBrFmB,IoBoGrB,aACE,aACA,sBACA,WACA,YACA,CAIA,oBAGF,qBACE,WACA,mBACA,cpBhHwB,eoBkHxB,cACA,eACA,SACA,iBACA,aACA,SACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cpBnIwB,eoBqIxB,cACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,cAGF,kBACE,WlB5KM,ckB8KN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cpB3LsB,kGoB8LtB,sBAGE,WlBpME,kCkBwMJ,apB7LiB,oBoBmMrB,oBACE,iBACA,oBAGF,kBpBlNqB,cAaH,iBoBwMhB,eACA,gBACA,yBACA,eACA,yBAGF,iBACE,cACA,UACA,gCAEA,sCACE,uCAEA,aACE,WACA,kBACA,aACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,gFACA,wCAIJ,SACE,kBACA,gBAIJ,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,uBAEA,QACE,YACA,aACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,apBhRwB,4CoBqRtB,apBrRsB,wCoBuRpB,4CAIJ,SAEE,SAIJ,WACE,kBACA,sBACA,aACA,sBACA,gBACA,wDAEA,SACE,gBACA,gBACA,qBAGF,kBpBlTmB,yBoBuTrB,WACE,aACA,cACA,uBAGF,kBACE,iCAGF,iBACE,sEAGF,kBACE,SACA,cpB3TkB,eoB6TlB,eACA,eACA,kFAEA,aACE,CAKA,kLAEA,UlBtVI,mBkBwVF,kFAKJ,2BACE,wCAIJ,YACE,oBACA,6BACA,+CAEA,sBAEE,kBACA,eACA,qBACA,0CAGF,eACE,gDAKJ,SACE,6BAGF,eACE,gBACA,gBACA,cpB/WkB,0DoBiXlB,UACA,UACA,kBACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,iCAIF,eACE,2CACA,YACE,WACA,mCAKN,kBACE,aACA,mCAIA,apBvZkB,0BoByZhB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,uBAKN,oBACE,uBACA,gBACA,mBACA,OACA,sBAGF,oBACE,iBACA,6EAGF,apBrbkB,mBAbG,kBoBucnB,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBACA,4EAdF,cAeI,6FAGF,eACE,mFAGF,apBrdwB,qBoBudtB,qGAEA,yBACE,uCAKN,kBACE,aACA,eAGF,qBACE,uCAKA,sBACE,6BACA,qCASF,qCAXA,sBACE,6BACA,sCAgBF,mJAFF,qBAGI,sBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,kBACA,uCAEA,SACE,kCAKN,aACE,aACA,yBC9hBJ,iBACE,eACA,gBACA,crBagB,mBAbG,eqBGnB,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,crBjBY,qCqBqBd,cACE,gBACA,kBCtCJ,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,mBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WpB1EF,gBoB4EE,gBACA,uBACA,0CAGF,aACE,eACA,ctBtEU,gBsBwEV,gBACA,uBACA,yBAKN,kBtB3FiB,asB6Ff,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,cAOV,kBtBjIqB,sBsBoInB,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,CC/KJ,eAGF,SnBkDE,sBACA,WACA,YACA,gBACA,oBACA,mBJxDmB,cAYD,eI+ClB,SACA,cmBxDA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,4CACA,eACA,WACA,YACA,cvBxCmB,euB0CnB,oBACA,0BAEA,mBACE,WACA,0BAIJ,sBACE,iCAEA,mBACE,WACA,gCAIJ,QACE,uBACA,cvB5DkB,euB8DlB,uCAEA,uBACE,sCAGF,aACE,yBAKN,avB7EkB,mBuB+EhB,gCACA,kBACA,eACA,gBACA,uBAGF,YACE,cvBxFkB,kBuB0FlB,iBAIA,avB7FgB,mBuB+Fd,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cvBvHY,gBuByHZ,uBACA,mBACA,4BAEA,eACE,uBAGF,avBlIc,qBuBoIZ,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cvB3JiB,0BuB+JnB,aACE,WACA,2CAEA,mCACE,yBACA,0CAGF,wBACE,WC1LR,yCCCE,qBACA,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,8BAIJ,evBXQ,kBuBaN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBvBvCM,kBuByCN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,+BAGE,2DAIJ,WACE,wBAKF,2BACE,eAIJ,aACE,wBACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,SACA,WACA,YACA,0EAMA,SACE,oBACA,CADA,WACA,eChGN,WAEE,0BAGF,kBANW,kBAQT,cACA,iCACA,wBACE,mCAOF,WACE,SACA,UACA,2CAGF,aACE,aAEA,sBACA,YACA,6BACA,6DAGE,oBACE,WACA,iBACA,iBACA,iJAGF,UACE,gEAEF,oBACE,gBACA,WACA,2CAKN,yBACE,sBACA,kBACA,YACA,gBACA,kDAEA,uBACE,CADF,oBACE,CADF,eACE,WACA,YACA,SACA,4BACA,WACA,yBACA,eACA,4CACA,sBACA,oBACA,6DAEA,uBACE,6DAGF,sBACE,wEAGF,sBACE,kBACA,SCjFR,WACE,sBACA,aACA,sBACA,kBACA,iBACA,UACA,qBAEA,iBACE,oBAGF,kBACE,2DvBDF,SuBI0D,yBvBC1D,SuBD0D,qCvBQxD,qLuBLA,yBAGF,eACE,gBACA,eACA,qCvBZA,4BuBgBA,SACE,WACA,YACA,eACA,UACA,+BALF,SACE,WACA,YACA,eACA,UACA,yCAIJ,4BAGF,YACE,mBACA,mBACA,UACA,mBACA,eACA,mBAEA,aACE,sBACA,oCACA,sBACA,YACA,cACA,c3BzCgB,kB2B2ChB,qBACA,eACA,mBAGF,iCACE,iDAEA,YAEE,mBACA,mCACA,SAKN,iBACE,mBACA,UACA,qCvBrDE,6CADF,euBwDkF,sCvBlEhF,sBADF,cuBoE0D,yBvB/D1D,cuB+D0D,gBAG5D,ezBlFQ,kBEkEN,CACA,sBACA,gBACA,cJhDiB,uCIkDjB,mBAEA,wBACE,cJrDe,eIuDf,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,WJ3FI,kB2BuFR,YACE,c3B1EkB,a2B4ElB,mBACA,oBAEA,aACE,qBACA,wBAGF,aACE,c3BnFmB,gB2BqFnB,mBACA,gBACA,uBACA,0BAIJ,aACE,gBACA,gBACA,kBAGF,kB3BhHqB,kB2BkHnB,gBACA,yBAEA,a3BxGgB,mB2B0Gd,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,c3BhIY,iC2BmIZ,oBACE,iBACA,8FAIJ,eAEE,mCAGF,aACE,aACA,c3B/IiB,qB2BiJjB,0HAEA,aAGE,0BACA,gBAQN,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAgBA,CAfA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,uBAEA,kB3BlMmB,0B2BuMrB,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,UACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oCAGF,aACE,WACA,YACA,YACA,eACA,sCAGF,yBAzBF,aA0BI,iBAIJ,kBACE,eACA,gBACA,mBAGF,cACE,kBACA,MACA,OACA,WACA,YACA,0BACA,oBCrPF,kBACE,gB1BAM,WACA,e0BEN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,e1BdQ,cFcY,S4BGlB,WACA,YACA,iEAEA,aAGE,iCAGF,eACE,2BxBcF,iBACE,mBACA,cACA,eACA,aACA,gBACA,yBwBfJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,6BAGF,aACE,kBACA,W1B7CM,0B0B+CN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,wDAKE,SACE,uBAKN,WACE,aACA,sBACA,4BAEA,iBACE,c5B9DgB,a4BgEhB,YACA,mBACA,CAGE,yDAIJ,UACE,gBAIJ,qBACE,eACA,gBACA,kBACA,kBACA,WACA,aACA,2BxBzDA,iBACE,mBACA,cACA,eACA,aACA,gBACA,sBwBwDJ,WACE,sBACA,cACA,WACA,kBACA,kBACA,gBACA,kCAEA,eACE,qEAIA,cACE,MACA,gCAIJ,e1B5HM,gC0BiIR,cACE,cACA,qBACA,c5BpHqB,kB4BsHrB,UACA,mEAEA,WAEE,WACA,sBACA,CADA,gCACA,CADA,kBACA,CAIE,0HAFF,WACE,oBACA,CADA,8BACA,CADA,gB1BhJE,C0BiJF,wBAKN,UACE,CAEA,iBACA,MACA,OACA,UACA,gB1B7JM,iC0BgKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,aACA,uBACA,qCAGF,cACE,YACA,WACA,kBACA,UACA,sBACA,CADA,gCACA,CADA,kBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,qDAEA,WACE,oBACA,CADA,8BACA,CADA,gBACA,sCAIJ,0BACE,2BACA,gBACA,kBACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,c1BrK0B,eAEC,C0B+K7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,yBACE,sBACA,SACA,W1BjQM,e0BmQN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,c5B5SsB,mF4B+StB,yBAGE,wBAKN,oBACE,sBAGF,qB1B9TQ,Y0BgUN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wB5B9TqB,qB4BkUrB,iBACE,UACA,QACA,YACA,qKAKA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,oCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gB1BnZM,e0BqZN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,gCAGF,UACE,YACA,0BxB3XF,iBACE,mBACA,cACA,eACA,aACA,gBACA,qBwB0XF,eACE,gBACA,UACA,kBACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gB1BxeI,cFcY,gB4B6dhB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,CAGE,gUAEA,aAIE,wBAKN,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,U1B9iBE,+E0BsjBN,cAGE,gBACA,6BAGF,U1B7jBM,iB0B+jBJ,yBAGF,oBACE,aACA,mDAGF,U1BvkBM,uB0B4kBN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,W1B5nBE,sF0B+nBF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,iBCtsBR,YACE,mBACA,mBACA,kBACA,QACA,SACA,YACA,mBAGF,YACE,kBACA,gBACA,yBACA,0BACA,eACA,iBACA,yBACA,WACA,4BACA,wCAEA,uBCtBF,kB9BGqB,sB8BDnB,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kB9BnDqB,sB8BqDnB,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,aC3FJ,cAOE,qBACA,W/BPM,gD+BEJ,iBACA,+BAOF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mB/BjBsB,4B+BqBxB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,c/BfmB,c+BiBnB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,a/BlD0B,mC+BqDxB,aACE,oDAGF,QACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBACA,uBAIA,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gB7B5FM,sB6B8FN,sGAEA,+BAEE,oBAKF,2BACA,gB7BxGM,0B6B2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,gCACA,W/BnHI,yB+BqHJ,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,sCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gB7BpKI,mB6ByKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,c/BlKiB,mD+BqKjB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,wBC1MF,iBACE,aACA,mBACA,mBhCEwB,WAJlB,kBgCKN,YACA,WACA,gBACA,iBACA,gBACA,4DAEA,aACE,eACA,mFAGF,iBACE,kBACA,gBACA,+FAEA,iBACE,OACA,MACA,kCAIJ,aACE,chCTiB,2BgCanB,cACE,gBACA,iBACA,mBACA,2BAGF,cACE,gBACA,iBACA,gBACA,mBACA,0CAIJ,aACE,kBACA,cACA,mBACA,gCACA,eACA,qBACA,aACA,0BACA,4DAEA,aACE,iBACA,gDAGF,kBhC9DwB,iDgCkExB,kBhC1DmB,WEXb,qG8B0EN,kB9BxEU,WAFJ,oC8BgFR,kBACE,YACA,eACA,iBACA,gBACA,8BAGF,aACE,UACA,kBACA,YACA,gBACA,oCAGF,iBACE,4FAGF,eAEE,mBACA,qCAGF,mCACE,UACE,cACA,0CAGF,YACE,4DAEA,YACE,kBCtHN,U/BEQ,gC+BCN,oBAEA,cACE,iBACA,gBACA,kBACA,mBAGF,U/BVM,0B+BYJ,oBAGF,eACE,cACA,iBACA,mDAGF,UACE,YACA,gBACA,gCACA,gBC3BJ,WACE,gBACA,aACA,sBACA,yBACA,kBACA,+BAEA,gBACE,eACA,CACA,2BACA,kCAGF,QACE,iCAGF,aACE,6BAGF,sBACE,0BAGF,MACE,kBACA,aACA,sBACA,iBACA,mDAGF,eACE,sBhClCI,0BgCoCJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,YACE,gBACA,gLAEA,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,CAIA,yFAGF,eACE,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WhCjNM,kBgCmNN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,mCAGF,kBAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,gCC1QJ,oBACE,gBACA,yCAEA,UACE,YACA,gBACA,iCAGF,kBACE,qBACA,4CAEA,eACE,iCAIJ,anCFqB,qBmCInB,uCAEA,yBACE,+CAIA,oBACE,oDAEA,yBACE,gDAKN,aACE,gBAKN,kBACE,eACA,aACA,qBACA,0BAEA,WACE,cACA,qCAEA,yBAJF,YAKI,4BAIJ,wBACE,cACA,kBACA,qCAEA,0BALF,UAMI,uBAIJ,qBACE,WACA,aACA,kBACA,eACA,iBACA,qBACA,gBACA,gBACA,gBACA,aACA,sBACA,6BAEA,aACE,gBACA,mBACA,mBACA,8BAGF,iBACE,SACA,WACA,cACA,mBnCvFoB,kBmCyFpB,cACA,eACA,4BAIJ,YACE,cnCvFgB,kBmCyFhB,WACA,QACA,mDAIJ,YACE,oDAGF,UACE,gBAGF,YACE,eACA,mBACA,gBACA,iBACA,wBACA,sBAEA,aACE,mBACA,SACA,kBACA,WACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,cACA,aACA,mBACA,2BACA,2CACA,6BAEA,aACE,aACA,WACA,YACA,iCAEA,aACE,SACA,WACA,YACA,eACA,gBACA,sBACA,sBACA,CADA,gCACA,CADA,kBACA,6BAIJ,aACE,cACA,eACA,gBACA,kBACA,gBACA,cnCrJc,mFmCyJhB,kBAGE,4BACA,2CACA,wGAEA,aACE,6BAIJ,0BACE,2CACA,yBACA,yDAEA,aACE,uCAKN,UACE,oCAGF,WACE,8BAGF,anCxLkB,SmC0LhB,eACA,WACA,cACA,cACA,YACA,aACA,mBACA,WACA,2BACA,2CACA,2GAEA,SAGE,cACA,4BACA,2CACA,qCAKF,SACE,OCjON,eACE,eACA,8BAEA,QAEE,gBACA,UAGF,kBACE,kBACA,cAGF,iBACE,cACA,mBACA,WACA,aACA,sBAEA,kBpCTiB,eoCcnB,iBACE,aACA,cACA,iBACA,eACA,gBACA,qBAEA,oBACE,qBACA,yBACA,4BACA,oEAGF,YAEE,kCAGF,aACE,gCAIA,qBACA,WACA,eACA,WpCtDE,coCwDF,UACA,oBACA,gBlCzDE,yBkC2DF,kBACA,iBACA,sCAEA,oBpC3DoB,0BoCgEtB,cACE,wBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBlClGY,8EkCuGZ,oBAGE,iBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,cACA,cAGF,aACE,qBACA,oBAEA,cACE,eAIJ,eACE,mBACA,cpC9Hc,aoCkIhB,cACE,uBACA,UACA,SACA,SACA,cpCvIc,0BoCyId,kBACA,mBAEA,oBACE,sCAGF,qCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,4BACE,kBACA,gCAEA,YACE,2CAGF,4BACE,aACA,aACA,mBACA,mGAEA,UAEE,aACA,+GAEA,oBpC3LoB,sDoCiMxB,cACE,gBACA,iBACA,YACA,oBACA,cpCzLkB,sCoC4LlB,gCAGF,YACE,mBACA,8CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WpC/NI,qBoCiOJ,WACA,UACA,oBACA,qXACA,yBACA,kBACA,CACA,yBACA,mDAGF,aACE,cAIJ,apClOkB,qBoCqOhB,+BACE,6BAEA,6BACE,YCpPN,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,sBACE,eACA,gBACA,gBACA,qBACA,crCPkB,oBqCUlB,arCnBwB,0BqCqBtB,6EAEA,oBAGE,wCAIJ,arCrBkB,oBqC0BlB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,crClCmB,qBqCsCrB,iBACE,crCvCmB,uBqC2CrB,eACE,mBACA,kBACA,kBACA,yHAGF,sBAME,mBACA,oBACA,gBACA,crC3DmB,qBqC+DrB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,crCxIc,iCqC4IhB,uBACE,gBACA,gBACA,crC9IY,qDqCkJd,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,uBACA,eACA,iBACA,WnCpNI,iBmCsNJ,kBACA,qEAEA,aAEE,6CAIA,arChNiB,oCqCqNnB,sBACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,sBACE,eACA,iBACA,gBACA,crClPc,mBqCoPd,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAIE,UACqB,sCjCnRzB,CiCoRI,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iBnCpOgB,wBE9DtB,4BACA,iCiCsSE,cACE,mCAEA,aACE,WnC3SA,qBmC6SA,uDAGE,yBACE,2CAKN,aACE,crC1SY,kCqCkTlB,sBAEE,CACA,eACA,eACA,iBACA,mBACA,crCzTgB,sCqC4ThB,arCrUsB,0BqCuUpB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,sBACE,eACA,iBACA,gBACA,mBACA,crCjVmB,wBqCoVnB,sBACE,cACA,eACA,gBACA,cACA,kBAKF,cACA,iBrC/VmB,mCqC6VrB,sBACE,CAEA,eACA,mBACA,crClWmB,kBqCuWnB,cACA,iBrCxWmB,kBqCgXnB,crChXmB,mCqC+WrB,sBACE,CACA,gBACA,gBACA,mBACA,crCpXmB,kBqCyXnB,crCzXmB,kBqCiYrB,sBACE,eACA,iBACA,gBACA,mBACA,crCtYmB,mCqC0YrB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,4CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBrCpcmB,kBqCscjB,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAMA,UACqB,sCjC9hB3B,mDiCiiBI,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA9DF,iBA+DI,mFAIJ,qBAGE,mBrC9jBiB,kBqCgkBjB,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,arChlBmB,qCqColBnB,eACE,WnCpmBE,gBmCsmBF,2CAEA,arC3lBc,gDqC8lBZ,arC5lBe,+CqCkmBnB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SnC1rBI,YmC4rBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,crCvsBc,6BqC2sBhB,eACE,iBACA,+BAGF,kBrC5tBiB,aqC8tBf,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,sBACE,eACA,gBACA,cACA,qCAGF,cACE,crCtvBY,uFqC4vBlB,eACE,cASA,CrCtwBgB,2CqCmwBhB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,crC92BsB,qBqCg3BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,crC12Bc,SsChBlB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBtCxBmB,UsC6BnB,atC1BwB,0BsC4BtB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBtCjEiB,6BsCmEf,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+BACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,ctC/FkB,gBsCiGlB,0DAEA,UpChHM,wDoCoHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBtC/JiB,sBsCiKjB,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBtC9KiB,gCsCiLjB,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBtCtMiB,uCsCyMf,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,ctClOY,gBsCoOZ,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,sCAEA,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBCzRN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBvCfe,YuCiBf,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SrCxCA,YqC0CE,kBACA,YACA,uCAIJ,aACE,cvCpCY,qBuCsCZ,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,cvC9EY,qBuCgFZ,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UrCzGA,yBqC2GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UrCjIE,yBFWa,gBuCyHb,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,avCrMmB,euCuMjB,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,avChNmB,euCkNjB,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,cvC7Nc,mBuC+Nd,kBACA,gCACA,4BAGF,cACE,cvCnOiB,iBuCqOjB,gBACA,0CAGF,UrCxPI,gBqC0PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WrCxQE,oBqC0QF,iBACA,gBACA,mBACA,2BAGF,cACE,iBACA,cvCnQiB,mBuCqQjB,kCAEA,UrCtRE,gBqCwRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,4CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BvCxUe,YuC+UrB,UACE,SACA,cACA,WACA,sDAKA,avCtVkB,0DuCyVhB,avClWsB,4DuCuWxB,arC1Wc,gBqC4WZ,4DAGF,arC9WU,gBqCgXR,0DAGF,avCvWgB,gBuCyWd,0DAGF,arCtXU,gBqCwXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,6CAKN,aACE,mBACA,2BAGF,oBACE,cvC3Zc,qBuC6Zd,yBACA,eACA,gBACA,gCACA,iCAEA,UrChbE,gCqCkbA,oCAGF,avCjboB,gCuCmblB,iBAMR,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,cvC/cmB,CuCodf,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,avCziBwB,qBuC2iBtB,oBAEA,yBACE,SAKN,aACE,YAGF,gBACE,eACA,mBvC5jBmB,gCuC8jBnB,uBAEA,eACE,oBAGF,YACE,2BACA,mBACA,cvC3jBgB,euC6jBhB,eACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,avCplBgB,sDuCwlBhB,avCvlBqB,qBuC2lBnB,gBACA,yDAIJ,oBAIE,cvCpmBqB,iGuCumBrB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBrC9pBc,yBqCkqBd,yBACE,wBAGF,yBrCnqBU,wBqCwqBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,avCvqBgB,uBuC6qBhB,wBACA,qBAGF,avChrBgB,cuCqrBlB,kBvClsBqB,kBuCosBnB,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,cvC5sBc,yBuC8sBd,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,arCvuBM,6BqC8uBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,cvCjvBY,mLuCovBZ,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,avC/vBU,iBuCiwBR,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,cvC5wBY,WuCmxBpB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,arC70BY,8CqCk1Bd,qBACE,aACA,WrCr1BI,cqC01BR,iBACE,qBAGF,wBACE,kBACA,2BAEA,cACE,mBvCl2BiB,gCuCo2BjB,kCAEA,cACE,cACA,gBACA,eACA,gBACA,cvC71BiB,qBuC+1BjB,mBACA,uHAEA,UrCj3BE,iCqCw3BJ,cACE,cvC32BY,uCuC+2Bd,YACE,8BACA,mBACA,sCAGF,eACE,kkECp4BN,kIACE,CADF,sIACE,uIAYA,aAEE,yIAGF,aAEE,qIAGF,aAEE,6IAGF,aAEE,UChCJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,+BAGF,eACE,2EAGF,UAEE,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,+BAGF,UACE,0BAGF,gBACE,eACA,UAGA,WACA,yCAGF,iBACE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,gBACA,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,kEACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,sBChbJ,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WxCrCI,uBwCuCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,c1CpCgB,kB0CsChB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,a1CnEwB,gB0CqEtB,qBACA,2GCrEM,SACE,CDoER,iGCrEM,SACE,CDoER,qGCrEM,SACE,CDoER,4FCrEM,SACE,mJAQZ,aAME,0BACA,mMAEA,oBACE,iOAGF,yBACE,CAKE,0zCAIJ,oBAGE,uUAGF,a3C3BqB,qB2C6BnB,oCAIJ,yBACE,6HAEA,oBAGE,4BAIJ,yBACE,qGAEA,oBAGE,eAIJ,a3CvDoB,yE2C2DpB,+BACE,0D","file":"skins/glitch/contrast/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#313543 rgba(0,0,0,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#313543;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#353a49}::-webkit-scrollbar-thumb:active{background:#313543}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(0,0,0,.1)}::-webkit-scrollbar-track:hover{background:#282c37}::-webkit-scrollbar-track:active{background:#282c37}::-webkit-scrollbar-corner{background:transparent}body{font-family:sans-serif,sans-serif;background:#191b22;font-size:13px;line-height:18px;font-weight:400;color:#fff;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif,sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#282c37}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.embed{background:#313543;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#1f232b;padding:0}body.error{position:absolute;text-align:center;color:#dde3ec;background:#282c37;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#fff;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#fff;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:sans-serif,sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;width:40px;height:40px;background-size:40px 40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}.account-header .name{flex:1 1 auto;color:#ecf0f4;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#fff}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#42485a}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#dde3ec;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#fff}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#4a5266;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#535b72}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#ecf0f4}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#0e1014}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#313543;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;width:120px;height:120px;background-size:120px 120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #313543;background:#17191f;border-radius:8%;background-position:50%;background-clip:padding-box}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#313543;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#fff;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#dde3ec}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#dde3ec;padding:10px;border-right:1px solid #313543;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b90d9;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#ecf0f4}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#fff;font-family:sans-serif,sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #42485a}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#dde3ec}.public-layout .public-account-header__extra__links a{display:inline-block;color:#dde3ec;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#4e79df}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#fff}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#dde3ec}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #393f4f}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #393f4f}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#282c37}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#313543}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.modal-layout{background:#282c37 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#737d99}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#737d99}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#dde3ec}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#737d99}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#737d99}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#7f88a2}.compact-header h1{font-size:24px;line-height:28px;color:#dde3ec;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#ecf0f4}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#282c37;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#dde3ec;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#fefefe}.hero-widget__text a{color:#ecf0f4;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#dde3ec}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#dde3ec}.box-widget{padding:20px;border-radius:4px;background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #c2cede;text-align:center;color:#dde3ec;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#dde3ec;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#dde3ec}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#dde3ec;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2);color:#ecf0f4;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#dde3ec}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#dde3ec;margin-bottom:10px}.page-header{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#fff;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#dde3ec}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#313543}.page-header h1{font-size:24px}}.directory{background:#282c37;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#282c37;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#393f4f}.directory__tag.active>a{background:#2b5fd9;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#dde3ec}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#dde3ec}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small{color:#fff}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#2b5fd9}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#17191f;border:2px solid #282c37}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#dde3ec;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #393f4f}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#fff}.accounts-table__count small{display:block;color:#dde3ec;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #4a5266}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#dde3ec}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#2b5fd9}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#1f232b;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#fff;border-bottom:1px solid #313543}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #313543}code{font-family:monospace,monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#fff;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#2b90d9;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#dde3ec}.simple_form .hint a{color:#2b90d9}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#0e1014}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#dde3ec}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#fff;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .input.datetime .label_input select{display:inline-block;width:auto;flex:0}.simple_form .required abbr{text-decoration:none;color:#e87487}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#fff;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#fff;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #c2cede;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#131419;border:1px solid #0a0b0e;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#eaeef3}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#e87487}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#000}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#2b90d9;background:#17191f}.simple_form .input.field_with_errors label{color:#e87487}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#e87487}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#e87487;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#2b5fd9;color:#fff;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#416fdd}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#2454c7}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#e3566d}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#db2a47}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#131419 url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #0a0b0e;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#c2cede;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(19, 20, 25, 0), #131419)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(40,44,55,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#fff}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#393f4f;color:#dde3ec;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#dde3ec;text-decoration:none}.flash-message a:hover{color:#fff;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:monospace,monospace;background:#282c37;color:#fff;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#313543}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#dde3ec;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#2b90d9;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#4ea2df}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#dde3ec}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#ecf0f4;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#ecf0f4;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#fff;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#dde3ec}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#fff;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:monospace,monospace}.input-copy{background:#131419;border:1px solid #0a0b0e;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:monospace,monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#1f232b;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#1f232b;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#393f4f}.card__img{height:130px;position:relative;background:#0e1014;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#313543;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box;background:#17191f;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#fff;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#000;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#ecf0f4}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#1a1a1a}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2);color:#364861;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#d9e1e8;background-color:rgba(217,225,232,.1);border:1px solid rgba(217,225,232,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#e87487;background-color:rgba(232,116,135,.1);border-color:rgba(232,116,135,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #42485a;border-bottom:1px solid #42485a;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #42485a}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#ecf0f4;background:rgba(23,25,31,.5)}.account__header__fields dd{flex:1 1 auto;color:#dde3ec}.account__header__fields a{color:#2b90d9;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#dde3ec}.pending-account__header a{color:#d9e1e8;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#fff;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#282c37}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#393f4f}.button.logo-button{flex:0 auto;font-size:14px;background:#2b5fd9;color:#fff;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#fff}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#5680e1}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{padding:8px 0;padding-bottom:2px;margin:initial;margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{position:absolute;margin:initial;float:initial;width:auto;left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}.embed .status .status__info,.public-layout .status .status__info{font-size:15px;display:initial}.embed .status .status__relative-time,.public-layout .status .status__relative-time{color:#c2cede;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.embed .status .status__info .status__display-name,.public-layout .status .status__info .status__display-name{display:block;max-width:100%;padding:6px 0;padding-right:25px;margin:initial}.embed .status .status__info .status__display-name .display-name strong,.public-layout .status .status__info .status__display-name .display-name strong{display:inline}.embed .status .status__avatar,.public-layout .status .status__avatar{height:48px;position:absolute;width:48px;margin:initial}.rtl .embed .status,.rtl .public-layout .status{padding-left:10px;padding-right:68px}.rtl .embed .status .status__info .status__display-name,.rtl .public-layout .status .status__info .status__display-name{padding-left:25px;padding-right:0}.rtl .embed .status .status__relative-time,.rtl .public-layout .status .status__relative-time{float:left}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#4e79df;border:0;background:transparent;padding:0;padding-top:8px;text-decoration:none}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.animated-number{display:inline-flex;flex-direction:column;align-items:stretch;overflow:hidden;position:relative}.link-button{display:block;font-size:15px;line-height:20px;color:#2b5fd9;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#2558d0;border:10px none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;transition-property:background-color;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#4976de;transition:all 200ms ease-out;transition-property:background-color}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled{background-color:#9baec8;cursor:default}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#000;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#a8b9cf}.button.button-alternative-2{background:#606984}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#687390}.button.button-secondary{font-size:16px;line-height:36px;height:auto;color:#dde3ec;text-transform:none;background:transparent;padding:3px 15px;border-radius:4px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#a8b9cf;color:#eaeef3}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.icon-button{display:inline-block;padding:0;color:#8d9ac2;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#a4afce;background-color:rgba(141,154,194,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(141,154,194,.3)}.icon-button.disabled{color:#6274ab;background-color:transparent;cursor:default}.icon-button.active{color:#2b90d9}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#1b1e25}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#0c0d11;background-color:rgba(27,30,37,.15)}.icon-button.inverted:focus{background-color:rgba(27,30,37,.3)}.icon-button.inverted.disabled{color:#2a2e3a;background-color:transparent}.icon-button.inverted.active{color:#2b90d9}.icon-button.inverted.active.disabled{color:#63ade3}.icon-button.overlayed{box-sizing:content-box;background:rgba(0,0,0,.6);color:rgba(255,255,255,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(0,0,0,.9)}.text-icon-button{color:#1b1e25;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#0c0d11;background-color:rgba(27,30,37,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(27,30,37,.3)}.text-icon-button.disabled{color:#464d60;background-color:transparent;cursor:default}.text-icon-button.active{color:#2b90d9}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute;transform-origin:50% 0}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.notification__favourite-icon-wrapper{left:0;position:absolute}.notification__favourite-icon-wrapper .fa.star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#fff;text-decoration:underline}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name a{color:inherit;text-decoration:inherit}.display-name strong{height:18px;font-size:16px;font-weight:500;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name span{display:block;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name>a:hover strong{text-decoration:underline}.display-name.inline{padding:0;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.display-name.inline strong{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name.inline span{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #c0cdd9;margin:5px 7px 6px;height:0}.dropdown-menu{background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.dropdown-menu ul{list-style:none}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#d9e1e8}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#d9e1e8}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#2b5fd9;color:#ecf0f4;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#2b5fd9;color:#ecf0f4}.dropdown__icon{vertical-align:middle}.static-content{padding:10px;padding-top:20px;color:#c2cede}.static-content h1{font-size:16px;font-weight:500;margin-bottom:40px;text-align:center}.static-content p{font-size:13px;margin-bottom:20px}.column,.drawer{flex:1 1 100%;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#393f4f;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#fff;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #393f4f;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.auto-columns .tabs-bar__link:hover,.auto-columns .tabs-bar__link:focus,.auto-columns .tabs-bar__link:active{background:#464d60;border-bottom-color:#464d60}}.multi-columns .tabs-bar__link:hover,.multi-columns .tabs-bar__link:focus,.multi-columns .tabs-bar__link:active{background:#464d60;border-bottom-color:#464d60}.tabs-bar__link.active{border-bottom:2px solid #2b5fd9;color:#2b90d9}.tabs-bar__link span{margin-left:5px;display:none}.tabs-bar__link span.icon{margin-left:0;display:inline}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#2b5fd9;border:2px solid #393f4f;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#fff}.column-link--transparent .icon-with-badge__badge{border-color:#17191f}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#282c37;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#131419}.react-toggle--checked .react-toggle-track{background-color:#2b5fd9}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#5680e1}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #282c37;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#2b5fd9}.getting-started__wrapper,.getting_started,.flex-spacer{background:#282c37}.getting-started__wrapper{position:relative;overflow-y:auto}.flex-spacer{flex:1 1 auto}.getting-started{background:#282c37;flex:1 0 auto}.getting-started p{color:#ecf0f4}.getting-started a{color:#c2cede}.getting-started__panel{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex:0 1 auto}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{color:#c2cede;font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#c2cede;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#dde3ec}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#dde3ec;padding:10px;font-weight:500;border-bottom:1px solid #393f4f}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#dde3ec}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#282c37;padding:4px 8px;margin:-6px 10px}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#393f4f;border:1px solid #1f232b}.setting-text{color:#dde3ec;background:transparent;border:none;border-bottom:2px solid #9baec8;box-sizing:border-box;display:block;font-family:inherit;margin-bottom:10px;padding:7px 0;width:100%}.setting-text:focus,.setting-text:active{color:#fff;border-bottom-color:#2b5fd9}@media screen and (max-width: 600px){.auto-columns .setting-text,.single-column .setting-text{font-size:16px}}.setting-text.light{color:#000;border-bottom:2px solid #626c87}.setting-text.light:focus,.setting-text.light:active{color:#000;border-bottom-color:#2b5fd9}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#8d9ac2;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#2b90d9}.reduce-motion button.icon-button.disabled i.fa-retweet{color:#6274ab}.load-more{display:block;color:#c2cede;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#2c313d}.load-gap{border-bottom:1px solid #393f4f}.missing-indicator{padding-top:68px}.scrollable>div>:first-child .notification__dismiss-overlay>.wrappy{border-top:1px solid #282c37}.notification__dismiss-overlay{overflow:hidden;position:absolute;top:0;right:0;bottom:-1px;padding-left:15px;z-index:999;align-items:center;justify-content:flex-end;cursor:pointer;display:flex}.notification__dismiss-overlay .wrappy{width:4rem;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#393f4f;border-left:1px solid #535b72;box-shadow:0 0 5px #000;border-bottom:1px solid #282c37}.notification__dismiss-overlay .ckbox{border:2px solid #9baec8;border-radius:2px;width:30px;height:30px;font-size:20px;color:#dde3ec;text-shadow:0 0 5px #000;display:flex;justify-content:center;align-items:center}.notification__dismiss-overlay:focus{outline:0 !important}.notification__dismiss-overlay:focus .ckbox{box-shadow:0 0 1px 1px #2b5fd9}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.loading-indicator{color:#c2cede;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #606984;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#606984}29%{background-color:#606984}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:flex;left:4px;top:4px;width:auto;height:auto;align-items:center}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(0,0,0,.5);border-radius:8px;padding:8px 12px;color:#fff;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(0,0,0,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(0,0,0,.5)}.setting-toggle{display:block;line-height:24px}.setting-toggle__label,.setting-radio__label,.setting-meta__label{color:#dde3ec;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.setting-radio{display:block;line-height:18px}.setting-radio__label{margin-bottom:0}.column-settings__row legend{color:#dde3ec;cursor:default;display:block;font-weight:500;margin-top:10px}.setting-radio__input{vertical-align:middle}.setting-meta__label{float:right}@keyframes heartbeat{from{transform:scale(1);transform-origin:center center;animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.pulse-loading{animation:heartbeat 1.5s ease-in-out infinite both}.upload-area{align-items:center;background:rgba(0,0,0,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#282c37;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#ecf0f4;font-size:18px;font-weight:500;border:2px dashed #606984;border-radius:4px}.dropdown--active .emoji-button img{opacity:1;filter:none}.loading-bar{background-color:#2b5fd9;height:3px;position:absolute;top:0;left:0;z-index:9999}.icon-badge-wrapper{position:relative}.icon-badge{position:absolute;display:block;right:-0.25em;top:-0.25em;background-color:#2b5fd9;border-radius:50%;font-size:75%;width:1em;height:1em}.conversation{display:flex;border-bottom:1px solid #393f4f;padding:5px;padding-bottom:0}.conversation:focus{background:#2c313d;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative;cursor:pointer}.conversation__unread{display:inline-block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#dde3ec;padding-left:15px}.conversation__content__names{color:#dde3ec;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#fff;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content .status__content{margin:0}.conversation--unread{background:#2c313d}.conversation--unread:focus{background:#313543}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#fff}.ui .flash-message{margin-top:10px;margin-left:auto;margin-right:auto;margin-bottom:0;min-width:75%}::-webkit-scrollbar-thumb{border-radius:0}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#ecf0f4;max-width:400px}noscript div a{color:#2b90d9;text-decoration:underline}noscript div a:hover{text-decoration:none}noscript div a{word-break:break-word}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet,button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.status-direct button.icon-button.disabled i.fa-retweet,.status-direct button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.account{padding:10px;border-bottom:1px solid #393f4f;color:inherit;text-decoration:none}.account .account__display-name{flex:1 1 auto;display:block;color:#dde3ec;overflow:hidden;text-decoration:none;font-size:14px}.account.small{border:none;padding:0}.account.small>.account__avatar-wrapper{margin:0 8px 0 0}.account.small>.display-name{height:24px;line-height:24px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:8%;background-position:50%;background-clip:padding-box;position:relative;cursor:pointer}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:8%;background-position:50%;background-clip:padding-box;overflow:hidden;position:relative}.account__avatar-composite div{border-radius:8%;background-position:50%;background-clip:padding-box;float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}.account__avatar-overlay{position:relative;width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:8%;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:8%;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__header__wrapper{flex:0 0 auto;background:#313543}.account__disclaimer{padding:10px;color:#c2cede}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-left:1px solid #393f4f;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab:first-child{border-left:0}.account__action-bar__tab.active{border-bottom:4px solid #2b5fd9}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#dde3ec}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#fff}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account__action-bar__tab abbr{color:#2b90d9}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.notification__message{margin-left:42px;padding:8px 0 0 26px;cursor:default;color:#dde3ec;font-size:15px;position:relative}.notification__message .fa{color:#2b90d9}.notification__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account--panel{background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#393f4f;padding:15px}.column-settings__section{color:#dde3ec;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#282c37;color:#dde3ec;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#eaeef3}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#313543}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#c2cede;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#393f4f}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#42485a;color:#eaeef3}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#dde3ec}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#c2cede}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#d0d9e5}.column-settings__hashtags .column-select__indicator-separator{background-color:#393f4f}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#364861;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#d9e1e8}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#364861;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#000}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#000;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#b9c8d5}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#fff;margin-bottom:4px;display:block;vertical-align:top;background-color:#000;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:none;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#1f232b;border-bottom:1px solid #393f4f;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#1f232b;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#dde3ec;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#ecf0f4}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #393f4f}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #282c37}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#242731;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #191b22}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f}.account__moved-note__message{position:relative;margin-left:58px;color:#c2cede;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.account__header__content{color:#dde3ec;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#1f232b}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#313543;padding:5px;border-bottom:1px solid #42485a}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#17191f;border:2px solid #313543}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #42485a;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#fff}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #42485a}.account__header__bio .account__header__fields a{color:#4e79df}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#dde3ec;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#dde3ec;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#fff}.domain{padding:10px;border-bottom:1px solid #393f4f}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#fff;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}@keyframes spring-flip-in{0%{transform:rotate(0deg)}30%{transform:rotate(-242.4deg)}60%{transform:rotate(-158.35deg)}90%{transform:rotate(-187.5deg)}100%{transform:rotate(-180deg)}}@keyframes spring-flip-out{0%{transform:rotate(-180deg)}30%{transform:rotate(62.4deg)}60%{transform:rotate(-21.635deg)}90%{transform:rotate(7.5deg)}100%{transform:rotate(0deg)}}.status__content--with-action{cursor:pointer}.status__content{position:relative;margin:10px 0;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:visible;padding-top:5px}.status__content:focus{outline:0}.status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.status__content pre,.status__content blockquote{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.status__content pre:last-child,.status__content blockquote:last-child{margin-bottom:0}.status__content .status__content__text,.status__content .e-content{overflow:hidden}.status__content .status__content__text>ul,.status__content .status__content__text>ol,.status__content .e-content>ul,.status__content .e-content>ol{margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h1,.status__content .e-content h2,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{margin-top:20px;margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .e-content h1,.status__content .e-content h2{font-weight:700;font-size:1.2em}.status__content .status__content__text h2,.status__content .e-content h2{font-size:1.1em}.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{font-weight:500}.status__content .status__content__text blockquote,.status__content .e-content blockquote{padding-left:10px;border-left:3px solid #dde3ec;color:#dde3ec;white-space:normal}.status__content .status__content__text blockquote p:last-child,.status__content .e-content blockquote p:last-child{margin-bottom:0}.status__content .status__content__text b,.status__content .status__content__text strong,.status__content .e-content b,.status__content .e-content strong{font-weight:700}.status__content .status__content__text em,.status__content .status__content__text i,.status__content .e-content em,.status__content .e-content i{font-style:italic}.status__content .status__content__text sub,.status__content .e-content sub{font-size:smaller;text-align:sub}.status__content .status__content__text sup,.status__content .e-content sup{font-size:smaller;vertical-align:super}.status__content .status__content__text ul,.status__content .status__content__text ol,.status__content .e-content ul,.status__content .e-content ol{margin-left:1em}.status__content .status__content__text ul p,.status__content .status__content__text ol p,.status__content .e-content ul p,.status__content .e-content ol p{margin:0}.status__content .status__content__text ul,.status__content .e-content ul{list-style-type:disc}.status__content .status__content__text ol,.status__content .e-content ol{list-style-type:decimal}.status__content a{color:#d8a070;text-decoration:none}.status__content a:hover{text-decoration:underline}.status__content a:hover .fa{color:#dae1ea}.status__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span{text-decoration:underline}.status__content a .fa{color:#c2cede}.status__content .status__content__spoiler{display:none}.status__content .status__content__spoiler.status__content__spoiler--visible{display:block}.status__content a.unhandled-link{color:#4e79df}.status__content a.unhandled-link .link-origin-tag{color:#ca8f04;font-size:.8em}.status__content .status__content__spoiler-link{background:#687390}.status__content .status__content__spoiler-link:hover{background:#707b97;text-decoration:none}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:#687390;border:none;color:#000;font-weight:500;font-size:11px;padding:0 5px;text-transform:uppercase;line-height:inherit;cursor:pointer;vertical-align:bottom}.status__content__spoiler-link:hover{background:#707b97;text-decoration:none}.status__content__spoiler-link .status__content__spoiler-icon{display:inline-block;margin:0 0 0 5px;border-left:1px solid currentColor;padding:0 0 0 4px;font-size:16px;vertical-align:-2px}.notif-cleaning .status,.notif-cleaning .notification-follow,.notif-cleaning .notification-follow-request{padding-right:4.5rem}.status__wrapper--filtered{color:#c2cede;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #393f4f}.status__prepend-icon-wrapper{left:-26px;position:absolute}.notification-follow,.notification-follow-request{position:relative;border-bottom:1px solid #393f4f}.notification-follow .account,.notification-follow-request .account{border-bottom:0 none}.focusable:focus{outline:0;background:#313543}.focusable:focus.status.status-direct:not(.read){background:#42485a}.focusable:focus.status.status-direct:not(.read).muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#393f4f}.status{padding:10px 14px;position:relative;height:auto;border-bottom:1px solid #393f4f;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:28px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#393f4f;border-bottom-color:#42485a}.status.light .status__relative-time{color:#1b1e25}.status.light .status__display-name{color:#000}.status.light .display-name{color:#364861}.status.light .display-name strong{color:#000}.status.light .status__content{color:#000}.status.light .status__content a{color:#2b90d9}.status.light .status__content a.status__content__spoiler-link{color:#fff;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#b5c3d6}.status.collapsed{background-position:center;background-size:cover;user-select:none}.status.collapsed.has-background::before{display:block;position:absolute;left:0;right:0;top:0;bottom:0;background-image:linear-gradient(to bottom, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.65) 24px, rgba(0, 0, 0, 0.8));pointer-events:none;content:\"\"}.status.collapsed .display-name:hover .display-name__html{text-decoration:none}.status.collapsed .status__content{height:20px;overflow:hidden;text-overflow:ellipsis;padding-top:0}.status.collapsed .status__content:after{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background:linear-gradient(rgba(40, 44, 55, 0), #282c37);pointer-events:none}.status.collapsed .status__content a:hover{text-decoration:none}.status.collapsed:focus>.status__content:after{background:linear-gradient(rgba(49, 53, 67, 0), #313543)}.status.collapsed.status-direct:not(.read)>.status__content:after{background:linear-gradient(rgba(57, 63, 79, 0), #393f4f)}.status.collapsed .notification__message{margin-bottom:0}.status.collapsed .status__info .notification__message>span{white-space:nowrap}.status .notification__message{margin:-10px 0px 10px 0}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#b8c0d9}.status__relative-time{display:inline-block;flex-grow:1;color:#c2cede;font-size:14px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status__display-name{color:#c2cede;overflow:hidden}.status__info__account .status__display-name{display:block;max-width:100%}.status__info{display:flex;justify-content:space-between;font-size:15px}.status__info>span{text-overflow:ellipsis;overflow:hidden}.status__info .notification__message>span{word-wrap:break-word}.status__info__icons{display:flex;align-items:center;height:1em;color:#8d9ac2}.status__info__icons .status__media-icon,.status__info__icons .status__visibility-icon,.status__info__icons .status__reply-icon{padding-left:2px;padding-right:2px}.status__info__icons .status__collapse-button.active>.fa-angle-double-up{transform:rotate(-180deg)}.no-reduce-motion .status__collapse-button.activate>.fa-angle-double-up{animation:spring-flip-in 1s linear}.no-reduce-motion .status__collapse-button.deactivate>.fa-angle-double-up{animation:spring-flip-out 1s linear}.status__info__account{display:flex;align-items:center;justify-content:flex-start}.status-check-box{border-bottom:1px solid #d9e1e8;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1;overflow:hidden}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-top:-10px;margin-bottom:10px;margin-left:58px;color:#c2cede;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#c2cede}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#8d9ac2}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#313543;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#c2cede;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#fff}.muted .emojione{opacity:.5}a.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#ecf0f4;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#fff}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{flex:none;margin:0 10px 0 0;height:48px;width:48px}.muted .status__content,.muted .status__content p,.muted .status__content a,.muted .status__content__text{color:#c2cede}.muted .status__display-name strong{color:#c2cede}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#606984;color:#000}.muted a.status__content__spoiler-link:hover{background:#66718d;text-decoration:none}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.status-card{display:flex;font-size:14px;border:1px solid #393f4f;border-radius:4px;color:#c2cede;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#ecf0f4;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}.status-card__actions a .fa,.status-card__actions a:hover .fa{color:inherit}a.status-card{cursor:pointer}a.status-card:hover{background:#393f4f}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#dde3ec;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#dde3ec}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#393f4f;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#313543}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#313543}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.attachment-list{display:flex;font-size:14px;border:1px solid #393f4f;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#c2cede;padding:8px 18px;cursor:default;border-right:1px solid #393f4f;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#c2cede;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#c2cede}.status__wrapper--filtered__button{display:inline;color:#4e79df;border:0;background:transparent;padding:0;font-size:inherit;line-height:inherit}.status__wrapper--filtered__button:hover,.status__wrapper--filtered__button:active{text-decoration:underline}.modal-container--preloader{background:#393f4f}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.onboarding-modal,.error-modal,.embed-modal{background:#d9e1e8;color:#000;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.onboarding-modal__pager{height:80vh;width:80vw;max-width:520px;max-height:470px}.onboarding-modal__pager .react-swipeable-view-container>div{width:100%;height:100%;box-sizing:border-box;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;user-select:text}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}@media screen and (max-width: 550px){.onboarding-modal{width:100%;height:100%;border-radius:0}.onboarding-modal__pager{width:100%;height:auto;max-width:none;max-height:none;flex:1 1 auto}}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#c0cdd9;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#1b1e25;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#131419;background-color:#a6b9c9}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#000}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#0a0a0a}.error-modal__footer{justify-content:center}.onboarding-modal__dots{flex:1 1 auto;display:flex;align-items:center;justify-content:center}.onboarding-modal__dot{width:14px;height:14px;border-radius:14px;background:#a6b9c9;margin:0 3px;cursor:pointer}.onboarding-modal__dot:hover{background:#a0b4c5}.onboarding-modal__dot.active{cursor:default;background:#8da5ba}.onboarding-modal__page__wrapper{pointer-events:none;padding:25px;padding-bottom:0}.onboarding-modal__page__wrapper.onboarding-modal__page__wrapper--active{pointer-events:auto}.onboarding-modal__page{cursor:default;line-height:21px}.onboarding-modal__page h1{font-size:18px;font-weight:500;color:#000;margin-bottom:20px}.onboarding-modal__page a{color:#2b90d9}.onboarding-modal__page a:hover,.onboarding-modal__page a:focus,.onboarding-modal__page a:active{color:#3c99dc}.onboarding-modal__page .navigation-bar a{color:inherit}.onboarding-modal__page p{font-size:16px;color:#1b1e25;margin-top:10px;margin-bottom:10px}.onboarding-modal__page p:last-child{margin-bottom:0}.onboarding-modal__page p strong{font-weight:500;background:#282c37;color:#ecf0f4;border-radius:4px;font-size:14px;padding:3px 6px}.onboarding-modal__page p strong:lang(ja){font-weight:700}.onboarding-modal__page p strong:lang(ko){font-weight:700}.onboarding-modal__page p strong:lang(zh-CN){font-weight:700}.onboarding-modal__page p strong:lang(zh-HK){font-weight:700}.onboarding-modal__page p strong:lang(zh-TW){font-weight:700}.onboarding-modal__page__wrapper-0{height:100%;padding:0}.onboarding-modal__page-one__lead{padding:65px;padding-top:45px;padding-bottom:0;margin-bottom:10px}.onboarding-modal__page-one__lead h1{font-size:26px;line-height:36px;margin-bottom:8px}.onboarding-modal__page-one__lead p{margin-bottom:0}.onboarding-modal__page-one__extra{padding-right:65px;padding-left:185px;text-align:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#000;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#282c37;color:#ecf0f4;font-weight:500;padding:10px;border-radius:4px}.onboarding-modal__page-two p,.onboarding-modal__page-three p,.onboarding-modal__page-four p,.onboarding-modal__page-five p{text-align:left}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{background:#17191f;color:#ecf0f4;margin-bottom:20px;border-radius:4px;padding:10px;text-align:center;font-size:14px;box-shadow:1px 2px 6px rgba(0,0,0,.3)}.onboarding-modal__page-two .figure .onboarding-modal__image,.onboarding-modal__page-three .figure .onboarding-modal__image,.onboarding-modal__page-four .figure .onboarding-modal__image,.onboarding-modal__page-five .figure .onboarding-modal__image{border-radius:4px;margin-bottom:10px}.onboarding-modal__page-two .figure.non-interactive,.onboarding-modal__page-three .figure.non-interactive,.onboarding-modal__page-four .figure.non-interactive,.onboarding-modal__page-five .figure.non-interactive{pointer-events:none;text-align:left}.onboarding-modal__page-four__columns .row{display:flex;margin-bottom:20px}.onboarding-modal__page-four__columns .row>div{flex:1 1 0;margin:0 10px}.onboarding-modal__page-four__columns .row>div:first-child{margin-left:0}.onboarding-modal__page-four__columns .row>div:last-child{margin-right:0}.onboarding-modal__page-four__columns .row>div p{text-align:center}.onboarding-modal__page-four__columns .row:last-child{margin-bottom:0}.onboarding-modal__page-four__columns .column-header{color:#fff}@media screen and (max-width: 320px)and (max-height: 600px){.onboarding-modal__page p{font-size:14px;line-height:20px}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{font-size:12px;margin-bottom:10px}.onboarding-modal__page-four__columns .row{margin-bottom:10px}.onboarding-modal__page-four__columns .column-header{padding:5px;font-size:12px}}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.doodle-modal,.favourite-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#f2f5f7;color:#000;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__relative-time,.doodle-modal .status__relative-time,.favourite-modal .status__relative-time,.confirmation-modal .status__relative-time,.report-modal .status__relative-time,.actions-modal .status__relative-time,.mute-modal .status__relative-time,.block-modal .status__relative-time{color:#c2cede;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.boost-modal .status__display-name,.doodle-modal .status__display-name,.favourite-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:flex}.boost-modal .status__avatar,.doodle-modal .status__avatar,.favourite-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:48px;width:48px}.boost-modal .status__content__spoiler-link,.doodle-modal .status__content__spoiler-link,.favourite-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#fff}.actions-modal .status{background:#fff;border-bottom-color:#d9e1e8;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#d9e1e8}.boost-modal__container,.favourite-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status,.favourite-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.doodle-modal__action-bar,.favourite-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#d9e1e8;padding:10px;line-height:36px}.boost-modal__action-bar>div,.doodle-modal__action-bar>div,.favourite-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#1b1e25;padding-right:10px}.boost-modal__action-bar .button,.doodle-modal__action-bar .button,.favourite-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header,.favourite-modal__status-header{font-size:15px}.boost-modal__status-time,.favourite-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #d9e1e8}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#2b90d9}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #d9e1e8;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #d9e1e8;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #c0cdd9}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #d9e1e8;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#000;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#000;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal strong{display:block;font-weight:500}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#000;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#2b5fd9;color:#fff}.actions-modal ul li:not(:empty) a>.react-toggle,.actions-modal ul li:not(:empty) a>.icon,.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#1b1e25;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#131419;background-color:transparent}.confirmation-modal__do_not_ask_again{padding-left:20px;padding-right:20px;padding-bottom:10px;font-size:14px}.confirmation-modal__do_not_ask_again label,.confirmation-modal__do_not_ask_again input{vertical-align:middle}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#000;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#282c37;color:#fff;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#313543}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#fff;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.filtered-status-info{text-align:start}.filtered-status-info .spoiler__text{margin-top:20px}.filtered-status-info .account{border-bottom:0}.filtered-status-info .account__display-name strong{color:#000}.filtered-status-info .status__content__spoiler{display:none}.filtered-status-info .status__content__spoiler--visible{display:flex}.filtered-status-info ul{padding:10px;margin-left:12px;list-style:disc inside}.filtered-status-info .filtered-status-edit-link{color:#8d9ac2;text-decoration:none}.filtered-status-info .filtered-status-edit-link:hover{text-decoration:underline}.composer{padding:10px}.composer .emoji-picker-dropdown{position:absolute;top:0;right:0}.composer .emoji-picker-dropdown ::-webkit-scrollbar-track:hover,.composer .emoji-picker-dropdown ::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.character-counter{cursor:default;font-family:sans-serif,sans-serif;font-size:14px;font-weight:600;color:#1b1e25}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .composer--spoiler{transition:height .4s ease,opacity .4s ease}.composer--spoiler{height:0;transform-origin:bottom;opacity:0}.composer--spoiler.composer--spoiler--visible{height:36px;margin-bottom:11px;opacity:1}.composer--spoiler input{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px;padding:10px;width:100%;outline:0;color:#000;background:#fff;font-size:14px;font-family:inherit;resize:vertical}.composer--spoiler input::placeholder{color:#c2cede}.composer--spoiler input:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .composer--spoiler input{font-size:16px}}.single-column .composer--spoiler input{font-size:16px}.composer--warning{color:#000;margin-bottom:15px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.composer--warning a{color:#1b1e25;font-weight:500;text-decoration:underline}.composer--warning a:active,.composer--warning a:focus,.composer--warning a:hover{text-decoration:none}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#2b90d9}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-left:5px;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#2b90d9;background:#2b90d9}.composer--reply{margin:0 0 10px;border-radius:4px;padding:10px;background:#9baec8;min-height:23px;overflow-y:auto;flex:0 2 auto}.composer--reply>header{margin-bottom:5px;overflow:hidden}.composer--reply>header>.account.small{color:#000}.composer--reply>header>.cancel{float:right;line-height:24px}.composer--reply>.content{position:relative;margin:10px 0;padding:0 12px;font-size:14px;line-height:20px;color:#000;word-wrap:break-word;font-weight:400;overflow:visible;white-space:pre-wrap;padding-top:5px;overflow:hidden}.composer--reply>.content p,.composer--reply>.content pre,.composer--reply>.content blockquote{margin-bottom:20px;white-space:pre-wrap}.composer--reply>.content p:last-child,.composer--reply>.content pre:last-child,.composer--reply>.content blockquote:last-child{margin-bottom:0}.composer--reply>.content h1,.composer--reply>.content h2,.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{margin-top:20px;margin-bottom:20px}.composer--reply>.content h1,.composer--reply>.content h2{font-weight:700;font-size:18px}.composer--reply>.content h2{font-size:16px}.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{font-weight:500}.composer--reply>.content blockquote{padding-left:10px;border-left:3px solid #000;color:#000;white-space:normal}.composer--reply>.content blockquote p:last-child{margin-bottom:0}.composer--reply>.content b,.composer--reply>.content strong{font-weight:700}.composer--reply>.content em,.composer--reply>.content i{font-style:italic}.composer--reply>.content sub{font-size:smaller;text-align:sub}.composer--reply>.content ul,.composer--reply>.content ol{margin-left:1em}.composer--reply>.content ul p,.composer--reply>.content ol p{margin:0}.composer--reply>.content ul{list-style-type:disc}.composer--reply>.content ol{list-style-type:decimal}.composer--reply>.content a{color:#1b1e25;text-decoration:none}.composer--reply>.content a:hover{text-decoration:underline}.composer--reply>.content a.mention:hover{text-decoration:none}.composer--reply>.content a.mention:hover span{text-decoration:underline}.composer--reply .emojione{width:20px;height:20px;margin:-5px 0 0}.compose-form__autosuggest-wrapper,.autosuggest-input{position:relative;width:100%}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.autosuggest-input label .autosuggest-textarea__textarea{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px 4px 0 0;padding:10px 32px 0 10px;width:100%;min-height:100px;outline:0;color:#000;background:#fff;font-size:14px;font-family:inherit;resize:none;scrollbar-color:initial}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::placeholder,.autosuggest-input label .autosuggest-textarea__textarea::placeholder{color:#c2cede}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::-webkit-scrollbar,.autosuggest-input label .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:disabled,.autosuggest-input label .autosuggest-textarea__textarea:disabled{background:#d9e1e8}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:focus,.autosuggest-input label .autosuggest-textarea__textarea:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}}.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}@media screen and (max-width: 600px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.composer--textarea--icons{display:block;position:absolute;top:29px;right:5px;bottom:5px;overflow:hidden}.composer--textarea--icons>.textarea_icon{display:block;margin:2px 0 0 2px;width:24px;height:24px;color:#1b1e25;font-size:18px;line-height:24px;text-align:center;opacity:.8}.autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.autosuggest-textarea__suggestions{display:block;position:absolute;box-sizing:border-box;top:100%;border-radius:0 0 4px 4px;padding:6px;width:100%;color:#000;background:#d9e1e8;box-shadow:4px 4px 6px rgba(0,0,0,.4);font-size:14px;z-index:99;display:none}.autosuggest-textarea__suggestions--visible{display:block}.autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.autosuggest-textarea__suggestions__item:hover,.autosuggest-textarea__suggestions__item:focus,.autosuggest-textarea__suggestions__item:active,.autosuggest-textarea__suggestions__item.selected{background:#b9c8d5}.autosuggest-textarea__suggestions__item>.account,.autosuggest-textarea__suggestions__item>.emoji,.autosuggest-textarea__suggestions__item>.autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.autosuggest-textarea__suggestions__item .autosuggest-hashtag{justify-content:space-between}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item .autosuggest-hashtag strong{font-weight:500}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item>.account.small .display-name>span{color:#1b1e25}.composer--upload_form{overflow:hidden}.composer--upload_form>.content{display:flex;flex-direction:row;flex-wrap:wrap;font-family:inherit;padding:5px;overflow:hidden}.composer--upload_form--item{flex:1 1 0;margin:5px;min-width:40%}.composer--upload_form--item>div{position:relative;border-radius:4px;height:140px;width:100%;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;overflow:hidden}.composer--upload_form--item>div textarea{display:block;position:absolute;box-sizing:border-box;bottom:0;left:0;margin:0;border:0;padding:10px;width:100%;color:#ecf0f4;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);font-size:14px;font-family:inherit;font-weight:500;opacity:0;z-index:2;transition:opacity .1s ease}.composer--upload_form--item>div textarea:focus{color:#fff}.composer--upload_form--item>div textarea::placeholder{opacity:.54;color:#ecf0f4}.composer--upload_form--item>div>.close{mix-blend-mode:difference}.composer--upload_form--item.active>div textarea{opacity:1}.composer--upload_form--actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.composer--upload_form--actions .icon-button{flex:0 1 auto;color:#d9e1e8;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.composer--upload_form--actions .icon-button:hover,.composer--upload_form--actions .icon-button:focus,.composer--upload_form--actions .icon-button:active{color:#e6ebf0}.composer--upload_form--actions.active{opacity:1}.composer--upload_form--progress{display:flex;padding:10px;color:#dde3ec;overflow:hidden}.composer--upload_form--progress>.fa{font-size:34px;margin-right:10px}.composer--upload_form--progress>.message{flex:1 1 auto}.composer--upload_form--progress>.message>span{display:block;font-size:12px;font-weight:500;text-transform:uppercase}.composer--upload_form--progress>.message>.backdrop{position:relative;margin-top:5px;border-radius:6px;width:100%;height:6px;background:#606984}.composer--upload_form--progress>.message>.backdrop>.tracker{position:absolute;top:0;left:0;height:6px;border-radius:6px;background:#2b5fd9}.compose-form__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.composer--options-wrapper{padding:10px;background:#ebebeb;border-radius:0 0 4px 4px;height:27px;display:flex;justify-content:space-between;flex:0 0 auto}.composer--options{display:flex;flex:0 0 auto}.composer--options>*{display:inline-block;box-sizing:content-box;padding:0 3px;height:27px;line-height:27px;vertical-align:bottom}.composer--options>hr{display:inline-block;margin:0 3px;border-width:0 0 0 1px;border-style:none none none solid;border-color:transparent transparent transparent #c2c2c2;padding:0;width:0;height:27px;background:transparent}.compose--counter-wrapper{align-self:center;margin-right:4px}.composer--options--dropdown.open>.value{border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1);color:#fff;background:#2b5fd9;transition:none}.composer--options--dropdown.open.top>.value{border-radius:0 0 4px 4px;box-shadow:0 4px 4px rgba(0,0,0,.1)}.composer--options--dropdown--content{position:absolute;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);background:#fff;overflow:hidden;transform-origin:50% 0}.composer--options--dropdown--content--item{display:flex;align-items:center;padding:10px;color:#000;cursor:pointer}.composer--options--dropdown--content--item>.content{flex:1 1 auto;color:#1b1e25}.composer--options--dropdown--content--item>.content:not(:first-child){margin-left:10px}.composer--options--dropdown--content--item>.content strong{display:block;color:#000;font-weight:500}.composer--options--dropdown--content--item:hover,.composer--options--dropdown--content--item.active{background:#2b5fd9;color:#fff}.composer--options--dropdown--content--item:hover>.content,.composer--options--dropdown--content--item.active>.content{color:#fff}.composer--options--dropdown--content--item:hover>.content strong,.composer--options--dropdown--content--item.active>.content strong{color:#fff}.composer--options--dropdown--content--item.active:hover{background:#3c6cdc}.composer--publisher{padding-top:10px;text-align:right;white-space:nowrap;overflow:hidden;justify-content:flex-end;flex:0 0 auto}.composer--publisher>.primary{display:inline-block;margin:0;padding:0 10px;text-align:center}.composer--publisher>.side_arm{display:inline-block;margin:0 2px;padding:0;width:36px;text-align:center}.composer--publisher.over>.count{color:#ff5050}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#17191f;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#282c37}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.column{overflow:hidden}.column-back-button{box-sizing:border-box;width:100%;background:#313543;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;border:0;text-align:unset;padding:15px;margin:0;z-index:3}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#313543;border:0;font-family:inherit;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.column-link{background:#393f4f;color:#fff;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#404657}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#d9e1e8}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#fff}.column-link--transparent.active{color:#2b5fd9}.column-link__icon{display:inline-block;margin-right:5px}.column-subheading{background:#282c37;color:#c2cede;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.column-header__wrapper{position:relative;flex:0 0 auto;z-index:1}.column-header__wrapper.active{box-shadow:0 1px 0 rgba(43,144,217,.3)}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;bottom:-13px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(43, 95, 217, 0.23) 0%, rgba(43, 95, 217, 0) 60%)}.column-header__wrapper .announcements{z-index:1;position:relative}.column-header{display:flex;font-size:16px;background:#313543;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden}.column-header>button{margin:0;border:none;padding:15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#2b90d9}.column-header.active .column-header__icon{color:#2b90d9;text-shadow:0 0 10px rgba(43,95,217,.4)}.column-header:focus,.column-header:active{outline:0}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.wide .columns-area:not(.columns-area--mobile) .column{flex:auto;min-width:330px;max-width:400px}.column>.scrollable{background:#282c37}.column-header__buttons{height:48px;display:flex;margin-left:0}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button,.column-header__notif-cleaning-buttons button{background:#313543;border:0;color:#dde3ec;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover,.column-header__notif-cleaning-buttons button:hover{color:#f4f6f9}.column-header__button.active,.column-header__notif-cleaning-buttons button.active{color:#fff;background:#393f4f}.column-header__button.active:hover,.column-header__notif-cleaning-buttons button.active:hover{color:#fff;background:#393f4f}.column-header__button:focus,.column-header__notif-cleaning-buttons button:focus{text-shadow:0 0 4px #2454c7}.column-header__notif-cleaning-buttons{display:flex;align-items:stretch;justify-content:space-around}.column-header__notif-cleaning-buttons button{background:transparent;text-align:center;padding:10px 0;white-space:pre-wrap}.column-header__notif-cleaning-buttons b{font-weight:bold}.column-header__collapsible-inner.nopad-drawer{padding:0}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#dde3ec;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1;z-index:1;position:relative}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #42485a;margin:10px 0}.column-header__collapsible.ncd{transition:none}.column-header__collapsible.ncd.collapsed{max-height:0;opacity:.7}.column-header__collapsible-inner{background:#393f4f;padding:15px}.column-header__setting-btn:hover{color:#dde3ec;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.column-header__title{display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header__icon{display:inline-block;margin-right:5px}.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{color:#c2cede;background:#282c37;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{contain:strict}}.empty-column-indicator>span,.error-column>span,.follow_requests-unlocked_explanation>span{max-width:400px}.empty-column-indicator a,.error-column a,.follow_requests-unlocked_explanation a{color:#2b90d9;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover,.follow_requests-unlocked_explanation a:hover{text-decoration:underline}.follow_requests-unlocked_explanation{background:#1f232b;contain:initial}.error-column{flex-direction:column}.single-column.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}@media screen and (max-width: 415px){.auto-columns.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}}@media screen and (max-width: 415px){.auto-columns.navbar-under .react-swipeable-view-container .columns-area,.single-column.navbar-under .react-swipeable-view-container .columns-area{height:100% !important}}.column-inline-form{padding:7px 15px;padding-right:5px;display:flex;justify-content:flex-start;align-items:center;background:#313543}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%;margin-bottom:6px}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 5px}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#c2cede;background:#282c37;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#c2cede}.regeneration-indicator__label span{font-size:15px;font-weight:400}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#0e1014;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#313543;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#17191f;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#282c37;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #393f4f;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.filter-form{background:#282c37}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#4e79df;background:#4e79df}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#282c37;color:#dde3ec;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#eaeef3}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#313543}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:color,transform,opacity;font-size:18px;width:18px;height:18px;color:#ecf0f4;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(0deg)}.search__icon .fa-search.active{pointer-events:auto;opacity:.3}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#8d9ac2;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#a4afce}.search-results__header{color:#c2cede;background:#2c313d;border-bottom:1px solid #1f232b;padding:15px 10px;font-size:14px;font-weight:500}.search-results__info{padding:20px;color:#dde3ec;text-align:center}.trends__header{color:#c2cede;background:#2c313d;border-bottom:1px solid #1f232b;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #393f4f}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#c2cede;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#dde3ec;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#ecf0f4}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(43,144,217,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#459ede !important}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(217,225,232,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.emoji-button{display:block;padding:5px 5px 2px 2px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.doodle-modal{width:unset}.doodle-modal__container{background:#d9e1e8;text-align:center;line-height:0}.doodle-modal__container canvas{border:5px solid #d9e1e8}.doodle-modal__action-bar .filler{flex-grow:1;margin:0;padding:0}.doodle-modal__action-bar .doodle-toolbar{line-height:1;display:flex;flex-direction:column;flex-grow:0;justify-content:space-around}.doodle-modal__action-bar .doodle-toolbar.with-inputs label{display:inline-block;width:70px;text-align:right;margin-right:2px}.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=number],.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=text]{width:40px}.doodle-modal__action-bar .doodle-toolbar.with-inputs span.val{display:inline-block;text-align:left;width:50px}.doodle-modal__action-bar .doodle-palette{padding-right:0 !important;border:1px solid #000;line-height:.2rem;flex-grow:0;background:#fff}.doodle-modal__action-bar .doodle-palette button{appearance:none;width:1rem;height:1rem;margin:0;padding:0;text-align:center;color:#000;text-shadow:0 0 1px #fff;cursor:pointer;box-shadow:inset 0 0 1px rgba(255,255,255,.5);border:1px solid #000;outline-offset:-1px}.doodle-modal__action-bar .doodle-palette button.foreground{outline:1px dashed #fff}.doodle-modal__action-bar .doodle-palette button.background{outline:1px dashed red}.doodle-modal__action-bar .doodle-palette button.foreground.background{outline:1px dashed red;border-color:#fff}.drawer{width:300px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden;padding:10px 5px;flex:none}.drawer:first-child{padding-left:10px}.drawer:last-child{padding-right:10px}@media screen and (max-width: 630px){.auto-columns .drawer{flex:auto}}.single-column .drawer{flex:auto}@media screen and (max-width: 630px){.auto-columns .drawer,.auto-columns .drawer:first-child,.auto-columns .drawer:last-child,.single-column .drawer,.single-column .drawer:first-child,.single-column .drawer:last-child{padding:0}}.wide .drawer{min-width:300px;max-width:400px;flex:1 1 200px}@media screen and (max-width: 630px){:root .auto-columns .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}}:root .single-column .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}.react-swipeable-view-container .drawer{height:100%}.drawer--header{display:flex;flex-direction:row;margin-bottom:10px;flex:none;background:#393f4f;font-size:16px}.drawer--header>*{display:block;box-sizing:border-box;border-bottom:2px solid transparent;padding:15px 5px 13px;height:48px;flex:1 1 auto;color:#dde3ec;text-align:center;text-decoration:none;cursor:pointer}.drawer--header a{transition:background 100ms ease-in}.drawer--header a:focus,.drawer--header a:hover{outline:none;background:#2e3340;transition:background 200ms ease-out}.search{position:relative;margin-bottom:10px;flex:none}@media screen and (max-width: 415px){.auto-columns .search,.single-column .search{margin-bottom:0}}@media screen and (max-width: 630px){.auto-columns .search{font-size:16px}}.single-column .search{font-size:16px}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#364861;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#364861;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#000}.drawer--account{padding:10px;color:#dde3ec;display:flex;align-items:center}.drawer--account a{color:inherit;text-decoration:none}.drawer--account .acct{display:block;color:#ecf0f4;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;overflow:hidden}.drawer--results{background:#282c37;overflow-x:hidden;overflow-y:auto}.drawer--results>header{color:#c2cede;background:#2c313d;padding:15px;font-weight:500;font-size:16px;cursor:default}.drawer--results>header .fa{display:inline-block;margin-right:5px}.drawer--results>section{margin-bottom:5px}.drawer--results>section h5{background:#1f232b;border-bottom:1px solid #393f4f;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#c2cede}.drawer--results>section h5 .fa{display:inline-block;margin-right:5px}.drawer--results>section .account:last-child,.drawer--results>section>div:last-child .status{border-bottom:0}.drawer--results>section>.hashtag{display:block;padding:10px;color:#ecf0f4;text-decoration:none}.drawer--results>section>.hashtag:hover,.drawer--results>section>.hashtag:active,.drawer--results>section>.hashtag:focus{color:#f9fafb;text-decoration:underline}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#444b5d;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%}.drawer__inner.darker{background:#282c37}.drawer__inner__mastodon{background:#444b5d url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:85%;height:100%;pointer-events:none;user-drag:none;user-select:none}.drawer__inner__mastodon>.mastodon{display:block;width:100%;height:100%;border:none;cursor:inherit}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#444b5d;font-size:13px;text-align:left}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.video-error-cover{align-items:center;background:#000;color:#fff;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#000;color:#dde3ec;border:0;width:100%;height:100%}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{color:#f7f9fb}.status__content>.media-spoiler{margin-top:15px}.media-spoiler.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:500}.media-gallery__gifv__label{display:block;position:absolute;color:#fff;background:rgba(0,0,0,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{height:100%;display:flex;flex-direction:column}.media-gallery__audio span{text-align:center;color:#dde3ec;display:flex;height:100%;align-items:center}.media-gallery__audio span p{width:100%}.media-gallery__audio audio{width:100%}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%;height:110px}.media-gallery.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-gallery__item{border:none;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.full-width .media-gallery__item{border-radius:0}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item.letterbox{background:#000}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#ecf0f4;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%;object-fit:contain}.media-gallery__item-thumbnail:not(.letterbox),.media-gallery__item-thumbnail img:not(.letterbox){height:100%;object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#000}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%;display:flex;justify-content:center}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;width:100%;position:relative;z-index:1;object-fit:contain;user-select:none}.media-gallery__item-gifv-thumbnail:not(.letterbox){height:100%;object-fit:cover}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(0,0,0,.5);box-sizing:border-box;border:0;color:#fff;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#d9e1e8}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#2b5fd9}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#17191f;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #313543;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(78,121,223,.5)}.audio-player__wave-placeholder{background-color:#4a5266}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#17191f;border-top:1px solid #313543;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.detailed-status .video-player{width:100%;height:100%}.video-player.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.video-player video{max-width:100vw;max-height:80vh;z-index:1;position:relative}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#dde3ec;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#f4f6f9}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons-bar .video-player__download__icon .fa,.video-player__buttons-bar .video-player__download__icon:active .fa,.video-player__buttons-bar .video-player__download__icon:hover .fa,.video-player__buttons-bar .video-player__download__icon:focus .fa{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#4e79df}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#4e79df;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#4e79df}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#4e79df;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.sensitive-info{display:flex;flex-direction:row;align-items:center;position:absolute;top:4px;left:4px;z-index:100}.sensitive-marker{margin:0 3px;border-radius:2px;padding:2px 6px;color:rgba(255,255,255,.8);background:rgba(0,0,0,.5);font-size:12px;line-height:18px;text-transform:uppercase;opacity:.9;transition:opacity .1s ease}.media-gallery:hover .sensitive-marker{opacity:1}.list-editor{background:#282c37;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#444b5d;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#282c37;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#444b5d}.list-adder__lists{background:#444b5d;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #393f4f}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.emoji-mart{font-size:13px;display:inline-block;color:#000}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #c0cdd9}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#d9e1e8}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#1b1e25;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#131419}.emoji-mart-anchor-selected{color:#2b90d9}.emoji-mart-anchor-selected:hover{color:#2485cb}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:0}.emoji-mart-anchor-bar{position:absolute;bottom:-3px;left:0;width:100%;height:3px;background-color:#2558d0}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(217,225,232,.3);color:#000;border:1px solid #d9e1e8;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(217,225,232,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#364861}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.glitch.local-settings{position:relative;display:flex;flex-direction:row;background:#d9e1e8;color:#000;border-radius:8px;height:80vh;width:80vw;max-width:740px;max-height:450px;overflow:hidden}.glitch.local-settings label,.glitch.local-settings legend{display:block;font-size:14px}.glitch.local-settings .boolean label,.glitch.local-settings .radio_buttons label{position:relative;padding-left:28px;padding-top:3px}.glitch.local-settings .boolean label input,.glitch.local-settings .radio_buttons label input{position:absolute;left:0;top:0}.glitch.local-settings span.hint{display:block;color:#1b1e25}.glitch.local-settings h1{font-size:18px;font-weight:500;line-height:24px;margin-bottom:20px}.glitch.local-settings h2{font-size:15px;font-weight:500;line-height:20px;margin-top:20px;margin-bottom:10px}.glitch.local-settings__navigation__item{display:block;padding:15px 20px;color:inherit;background:#f2f5f7;border-bottom:1px #d9e1e8 solid;cursor:pointer;text-decoration:none;outline:none;transition:background .3s}.glitch.local-settings__navigation__item .text-icon-button{color:inherit;transition:unset}.glitch.local-settings__navigation__item:hover{background:#d9e1e8}.glitch.local-settings__navigation__item.active{background:#2b5fd9;color:#fff}.glitch.local-settings__navigation__item.close,.glitch.local-settings__navigation__item.close:hover{background:#df405a;color:#fff}.glitch.local-settings__navigation{background:#f2f5f7;width:212px;font-size:15px;line-height:20px;overflow-y:auto}.glitch.local-settings__page{display:block;flex:auto;padding:15px 20px 15px 20px;width:360px;overflow-y:auto}.glitch.local-settings__page__item{margin-bottom:2px}.glitch.local-settings__page__item.string,.glitch.local-settings__page__item.radio_buttons{margin-top:10px;margin-bottom:10px}@media screen and (max-width: 630px){.glitch.local-settings__navigation{width:40px;flex-shrink:0}.glitch.local-settings__navigation__item{padding:10px}.glitch.local-settings__navigation__item span:last-of-type{display:none}}.error-boundary{color:#fff;font-size:15px;line-height:20px}.error-boundary h1{font-size:26px;line-height:36px;font-weight:400;margin-bottom:8px}.error-boundary a{color:#fff;text-decoration:underline}.error-boundary ul{list-style:disc;margin-left:0;padding-left:1em}.error-boundary textarea.web_app_crash-stacktrace{width:100%;resize:none;white-space:pre;font-family:monospace,monospace}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.compose-panel .search__icon .fa{top:15px}.compose-panel .drawer--account{flex:0 1 48px}.compose-panel .flex-spacer{background:transparent}.compose-panel .composer{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #313543;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px;min-height:50px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{padding-top:15px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#2558d0;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#4976de}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.search{margin-bottom:10px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.announcements__item__content{word-wrap:break-word;overflow-y:auto}.announcements__item__content .emojione{width:20px;height:20px;margin:-3px 0 0}.announcements__item__content p{margin-bottom:10px;white-space:pre-wrap}.announcements__item__content p:last-child{margin-bottom:0}.announcements__item__content a{color:#ecf0f4;text-decoration:none}.announcements__item__content a:hover{text-decoration:underline}.announcements__item__content a.mention:hover{text-decoration:none}.announcements__item__content a.mention:hover span{text-decoration:underline}.announcements__item__content a.unhandled-link{color:#4e79df}.announcements{background:#393f4f;font-size:13px;display:flex;align-items:flex-end}.announcements__mastodon{width:124px;flex:0 0 auto}@media screen and (max-width: 424px){.announcements__mastodon{display:none}}.announcements__container{width:calc(100% - 124px);flex:0 0 auto;position:relative}@media screen and (max-width: 424px){.announcements__container{width:100%}}.announcements__item{box-sizing:border-box;width:100%;padding:15px;position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;max-height:50vh;overflow:hidden;display:flex;flex-direction:column}.announcements__item__range{display:block;font-weight:500;margin-bottom:10px;padding-right:18px}.announcements__item__unread{position:absolute;top:19px;right:19px;display:block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem}.announcements__pagination{padding:15px;color:#dde3ec;position:absolute;bottom:3px;right:0}.layout-multiple-columns .announcements__mastodon{display:none}.layout-multiple-columns .announcements__container{width:100%}.reactions-bar{display:flex;flex-wrap:wrap;align-items:center;margin-top:15px;margin-left:-2px;width:calc(100% - (90px - 33px))}.reactions-bar__item{flex-shrink:0;background:#42485a;border:0;border-radius:3px;margin:2px;cursor:pointer;user-select:none;padding:0 6px;display:flex;align-items:center;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar__item__emoji{display:block;margin:3px 0;width:16px;height:16px}.reactions-bar__item__emoji img{display:block;margin:0;width:100%;height:100%;min-width:auto;min-height:auto;vertical-align:bottom;object-fit:contain}.reactions-bar__item__count{display:block;min-width:9px;font-size:13px;font-weight:500;text-align:center;margin-left:6px;color:#dde3ec}.reactions-bar__item:hover,.reactions-bar__item:focus,.reactions-bar__item:active{background:#4a5266;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar__item:hover__count,.reactions-bar__item:focus__count,.reactions-bar__item:active__count{color:#eaeef3}.reactions-bar__item.active{transition:all 100ms ease-in;transition-property:background-color,color;background-color:#3d4d73}.reactions-bar__item.active .reactions-bar__item__count{color:#4ea2df}.reactions-bar .emoji-picker-dropdown{margin:2px}.reactions-bar:hover .emoji-button{opacity:.85}.reactions-bar .emoji-button{color:#dde3ec;margin:0;font-size:16px;width:auto;flex-shrink:0;padding:0 6px;height:22px;display:flex;align-items:center;opacity:.5;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar .emoji-button:hover,.reactions-bar .emoji-button:active,.reactions-bar .emoji-button:focus{opacity:1;color:#eaeef3;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar--empty .emoji-button{padding:0}.poll{margin-top:16px;font-size:14px}.poll ul,.e-content .poll ul{margin:0;list-style:none}.poll li{margin-bottom:10px;position:relative}.poll__chart{border-radius:4px;display:block;background:#8ba1bf;height:5px;min-width:1%}.poll__chart.leading{background:#2b5fd9}.poll__option{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__option__text{display:inline-block;word-wrap:break-word;overflow-wrap:break-word;max-width:calc(100% - 45px - 25px)}.poll__option input[type=radio],.poll__option input[type=checkbox]{display:none}.poll__option .autossugest-input{flex:1 1 auto}.poll__option input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#000;display:block;outline:0;font-family:inherit;background:#fff;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px}.poll__option input[type=text]:focus{border-color:#2b90d9}.poll__option.selectable{cursor:pointer}.poll__option.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-color:#acd6c1;border-width:4px}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:45px;font-weight:700;flex:0 0 45px}.poll__voted{padding:0 5px;display:inline-block}.poll__voted__mark{font-size:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#c2cede}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#c2cede;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(194,206,222,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #ebebeb;overflow-x:hidden}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #ebebeb;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{width:100%;flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#2b90d9}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#8d9ac2;border-color:#8d9ac2;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__option{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#000;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#dbdbdb}.muted .poll{color:#c2cede}.muted .poll__chart{background:rgba(109,137,175,.2)}.muted .poll__chart.leading{background:rgba(43,95,217,.2)}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:sans-serif,sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#dde3ec}.rich-formatting a{color:#2b90d9;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#dde3ec}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#ecf0f4}.rich-formatting em{font-style:italic;color:#ecf0f4}.rich-formatting code{font-size:.85em;background:#17191f;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:sans-serif,sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#ecf0f4}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #313543;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #313543;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#dde3ec}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#c2cede}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#1f232b;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:sans-serif,sans-serif;font-size:16px;line-height:28px;color:#fff;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#ecf0f4}.information-board__section strong{font-family:sans-serif,sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#17191f;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#dde3ec;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #313543;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#bcc9da}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;width:80px;height:80px;background-size:80px 80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px;border-radius:8%;background-position:50%;background-clip:padding-box}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#fff;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#dde3ec}.landing-page p,.landing-page li{font-family:sans-serif,sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#dde3ec}.landing-page p a,.landing-page li a{color:#2b90d9;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#fefefe}.landing-page h1{font-family:sans-serif,sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h1 small{font-family:sans-serif,sans-serif;display:block;font-size:18px;font-weight:400;color:#fefefe}.landing-page h2{font-family:sans-serif,sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h3{font-family:sans-serif,sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h4{font-family:sans-serif,sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h5{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h6{font-family:sans-serif,sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(96,105,132,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#282c37;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#fefefe}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px;width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#282c37;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#ecf0f4}.landing-page__short-description h1{font-weight:500;color:#fff;margin-bottom:0}.landing-page__short-description h1 small{color:#dde3ec}.landing-page__short-description h1 small span{color:#ecf0f4}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#fff;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#dde3ec}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#282c37;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:sans-serif,sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#dde3ec}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#dde3ec}.landing .simple_form p.lead{color:#dde3ec;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #393f4f}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#c2cede}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #282c37;text-align:left;background:#1f232b}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #282c37;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#282c37}.table a{color:#2b90d9;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#282c37;border-top:1px solid #17191f;border-bottom:1px solid #17191f}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #17191f}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #17191f}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:monospace,monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#dde3ec;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#fff}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #17191f;background:#282c37;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #17191f;border-top:0;background:#282c37}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #17191f;border-top:0;background:#1f232b}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #17191f}}.batch-table__row:hover{background:#242731}.batch-table__row:nth-child(even){background:#282c37}.batch-table__row:nth-child(even):hover{background:#2c313d}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#dde3ec;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #17191f;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #17191f}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#282c37;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#393f4f;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#fff;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#dde3ec;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#42485a}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#dde3ec;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#fff;background-color:#1d2028;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#242731;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#1f232b;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#fff;background-color:#2b5fd9;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#416fdd}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #393f4f;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#ecf0f4;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#ecf0f4;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#dde3ec;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #393f4f}.admin-wrapper .content h6{font-size:16px;color:#ecf0f4;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#fff;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#fff;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:none}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#ecf0f4;margin-bottom:20px}.admin-wrapper .content>p strong{color:#fff;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(96,105,132,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #313543;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#2b5fd9}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#dde3ec}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#2b90d9}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#c2cede;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset--with-select strong{display:block;margin-bottom:10px}.filters .filter-subset a{display:inline-block;color:#dde3ec;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #282c37}.filters .filter-subset a:hover{color:#fff;border-bottom:2px solid #333846}.filters .filter-subset a.selected{color:#2b90d9;border-bottom:2px solid #2b5fd9}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#ecf0f4}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#2b90d9;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{line-height:20px;padding:15px 0;background:#282c37;border-bottom:1px solid #313543}.log-entry:last-child{border-bottom:0}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;color:#dde3ec;font-size:14px;padding:0 10px}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#c2cede}.log-entry a,.log-entry .username,.log-entry .target{color:#ecf0f4;text-decoration:none;font-weight:500}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#ecf0f4}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#e87487}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #2b5fd9}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#e87487}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#dde3ec}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#c2cede}.report-card{background:#282c37;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#dde3ec;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#f7f9fb}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #1f232b}.report-card__summary__item:hover{background:#2c313d}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#dde3ec}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#c2cede;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#dde3ec}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#393f4f;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#4e79df}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#fff}.center-text{text-align:center}.announcements-list{border:1px solid #313543;border-radius:4px}.announcements-list__item{padding:15px 0;background:#282c37;border-bottom:1px solid #313543}.announcements-list__item__title{padding:0 15px;display:block;font-weight:500;font-size:18px;line-height:1.5;color:#ecf0f4;text-decoration:none;margin-bottom:10px}.announcements-list__item__title:hover,.announcements-list__item__title:focus,.announcements-list__item__title:active{color:#fff}.announcements-list__item__meta{padding:0 15px;color:#c2cede}.announcements-list__item__action-bar{display:flex;justify-content:space-between;align-items:center}.announcements-list__item:last-child{border-bottom:0}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff)}.hicolor-privacy-icons .status__visibility-icon.fa-globe,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-globe{color:#1976d2}.hicolor-privacy-icons .status__visibility-icon.fa-unlock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-unlock{color:#388e3c}.hicolor-privacy-icons .status__visibility-icon.fa-lock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-lock{color:#ffa000}.hicolor-privacy-icons .status__visibility-icon.fa-envelope,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-envelope{color:#d32f2f}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .composer--publisher{text-align:left}body.rtl .boost-modal__status-time,body.rtl .favourite-modal__status-time{float:left}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .setting-meta__label{float:left}body.rtl .status__avatar{margin-left:10px;margin-right:0;left:auto;right:10px}body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:58px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left;text-align:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(19, 20, 25, 0), #131419)}body.rtl .simple_form select{background:#131419 url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#313543;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#393f4f}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#fff;font-family:sans-serif,sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#dde3ec;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#d9e1e8;font-weight:500;text-decoration:none}.compose-form .compose-form__modifiers .compose-form__upload-description input::placeholder{opacity:1}.rich-formatting a,.rich-formatting p a,.rich-formatting li a,.landing-page__short-description p a,.status__content a,.reply-indicator__content a{color:#5f86e2;text-decoration:underline}.rich-formatting a.mention,.rich-formatting p a.mention,.rich-formatting li a.mention,.landing-page__short-description p a.mention,.status__content a.mention,.reply-indicator__content a.mention{text-decoration:none}.rich-formatting a.mention span,.rich-formatting p a.mention span,.rich-formatting li a.mention span,.landing-page__short-description p a.mention span,.status__content a.mention span,.reply-indicator__content a.mention span{text-decoration:underline}.rich-formatting a.mention span:hover,.rich-formatting a.mention span:focus,.rich-formatting a.mention span:active,.rich-formatting p a.mention span:hover,.rich-formatting p a.mention span:focus,.rich-formatting p a.mention span:active,.rich-formatting li a.mention span:hover,.rich-formatting li a.mention span:focus,.rich-formatting li a.mention span:active,.landing-page__short-description p a.mention span:hover,.landing-page__short-description p a.mention span:focus,.landing-page__short-description p a.mention span:active,.status__content a.mention span:hover,.status__content a.mention span:focus,.status__content a.mention span:active,.reply-indicator__content a.mention span:hover,.reply-indicator__content a.mention span:focus,.reply-indicator__content a.mention span:active{text-decoration:none}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active,.rich-formatting p a:hover,.rich-formatting p a:focus,.rich-formatting p a:active,.rich-formatting li a:hover,.rich-formatting li a:focus,.rich-formatting li a:active,.landing-page__short-description p a:hover,.landing-page__short-description p a:focus,.landing-page__short-description p a:active,.status__content a:hover,.status__content a:focus,.status__content a:active,.reply-indicator__content a:hover,.reply-indicator__content a:focus,.reply-indicator__content a:active{text-decoration:none}.rich-formatting a.status__content__spoiler-link,.rich-formatting p a.status__content__spoiler-link,.rich-formatting li a.status__content__spoiler-link,.landing-page__short-description p a.status__content__spoiler-link,.status__content a.status__content__spoiler-link,.reply-indicator__content a.status__content__spoiler-link{color:#ecf0f4;text-decoration:none}.status__content__read-more-button{text-decoration:underline}.status__content__read-more-button:hover,.status__content__read-more-button:focus,.status__content__read-more-button:active{text-decoration:none}.getting-started__footer a{text-decoration:underline}.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:none}.nothing-here{color:#dde3ec}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b5fd9}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Dependent colors\n$black: #000000;\n\n$classic-base-color: #282c37;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #2b90d9;\n\n$ui-base-color: $classic-base-color !default;\n$ui-primary-color: $classic-primary-color !default;\n$ui-secondary-color: $classic-secondary-color !default;\n\n// Differences\n$ui-highlight-color: #2b5fd9;\n\n$darker-text-color: lighten($ui-primary-color, 20%) !default;\n$dark-text-color: lighten($ui-primary-color, 12%) !default;\n$secondary-text-color: lighten($ui-secondary-color, 6%) !default;\n$highlight-text-color: $classic-highlight-color !default;\n$action-button-color: #8d9ac2;\n\n$inverted-text-color: $black !default;\n$lighter-text-color: darken($ui-base-color,6%) !default;\n$light-text-color: darken($ui-primary-color, 40%) !default;\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n @return '%23' + unquote($color)\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a; // Padua\n$error-red: #df405a; // Cerise\n$warning-red: #ff5050; // Sunset Orange\n$gold-star: #ca8f04; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: sans-serif !default;\n$font-display: sans-serif !default;\n$font-monospace: monospace !default;\n\n// Avatar border size (8% default, 100% for rounded avatars)\n$ui-avatar-border-size: 8%;\n\n// More variables\n$dismiss-overlay-width: 4rem;\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n @include avatar-size(40px);\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1/3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1/3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n @include avatar-size(120px);\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n @include avatar-radius();\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n","@mixin avatar-radius() {\n border-radius: $ui-avatar-border-size;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size:48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin single-column($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .single-column #{$parent} {\n @content;\n }\n}\n\n@mixin limited-single-column($media, $parent: '&') {\n .auto-columns #{$parent}, .single-column #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n}\n\n@mixin multi-columns($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .multi-columns #{$parent} {\n @content;\n }\n}\n\n@mixin fullwidth-gallery {\n &.full-width {\n margin-left: -14px;\n margin-right: -14px;\n width: inherit;\n max-width: none;\n height: 250px;\n border-radius: 0px;\n }\n}\n\n@mixin search-input() {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: none;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout() {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .input.datetime .label_input select {\n display: inline-block;\n width: auto;\n flex: 0;\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n padding: 8px 0;\n padding-bottom: 2px;\n margin: initial;\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n position: absolute;\n margin: initial;\n float: initial;\n width: auto;\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n\n// Styling from upstream's WebUI, as public pages use the same layout\n.embed,\n.public-layout {\n .status {\n .status__info {\n font-size: 15px;\n display: initial;\n }\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding: 6px 0;\n padding-right: 25px;\n margin: initial;\n\n .display-name strong {\n display: inline;\n }\n }\n\n .status__avatar {\n height: 48px;\n position: absolute;\n width: 48px;\n margin: initial;\n }\n }\n}\n\n.rtl {\n .embed,\n .public-layout {\n .status {\n padding-left: 10px;\n padding-right: 68px;\n\n .status__info .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .status__relative-time {\n float: left;\n }\n }\n }\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n text-decoration: none;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.animated-number {\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n overflow: hidden;\n position: relative;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: darken($ui-highlight-color, 3%);\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n transition-property: background-color;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 7%);\n transition: all 200ms ease-out;\n transition-property: background-color;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n color: $darker-text-color;\n text-transform: none;\n background: transparent;\n padding: 3px 15px;\n border-radius: 4px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n transform-origin: 50% 0;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: 0;\n position: absolute;\n\n .fa.star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n a {\n color: inherit;\n text-decoration: inherit;\n }\n\n strong {\n height: 18px;\n font-size: 16px;\n font-weight: 500;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n span {\n display: block;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n > a:hover {\n strong {\n text-decoration: underline;\n }\n }\n\n &.inline {\n padding: 0;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n strong {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n\n span {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n }\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n ul {\n list-style: none;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.static-content {\n padding: 10px;\n padding-top: 20px;\n color: $dark-text-color;\n\n h1 {\n font-size: 16px;\n font-weight: 500;\n margin-bottom: 40px;\n text-align: center;\n }\n\n p {\n font-size: 13px;\n margin-bottom: 20px;\n }\n}\n\n.column,\n.drawer {\n flex: 1 1 100%;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @include multi-columns('screen and (min-width: 631px)') {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $ui-highlight-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n\n span.icon {\n margin-left: 0;\n display: inline;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.getting-started__wrapper,\n.getting_started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.getting-started__wrapper {\n position: relative;\n overflow-y: auto;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n background: $ui-base-color;\n flex: 1 0 auto;\n\n p {\n color: $secondary-text-color;\n }\n\n a {\n color: $dark-text-color;\n }\n\n &__panel {\n height: min-content;\n }\n\n &__panel,\n &__footer {\n padding: 10px;\n padding-top: 20px;\n flex: 0 1 auto;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n color: $darker-text-color;\n background: transparent;\n border: none;\n border-bottom: 2px solid $ui-primary-color;\n box-sizing: border-box;\n display: block;\n font-family: inherit;\n margin-bottom: 10px;\n padding: 7px 0;\n width: 100%;\n\n &:focus,\n &:active {\n color: $primary-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n font-size: 16px;\n }\n\n &.light {\n color: $inverted-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 27%);\n\n &:focus,\n &:active {\n color: $inverted-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.reduce-motion button.icon-button.disabled i.fa-retweet {\n color: darken($action-button-color, 13%);\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.missing-indicator {\n padding-top: 20px + 48px;\n}\n\n.scrollable > div > :first-child .notification__dismiss-overlay > .wrappy {\n border-top: 1px solid $ui-base-color;\n}\n\n.notification__dismiss-overlay {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: -1px;\n padding-left: 15px; // space for the box shadow to be visible\n\n z-index: 999;\n align-items: center;\n justify-content: flex-end;\n cursor: pointer;\n\n display: flex;\n\n .wrappy {\n width: $dismiss-overlay-width;\n align-self: stretch;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: lighten($ui-base-color, 8%);\n border-left: 1px solid lighten($ui-base-color, 20%);\n box-shadow: 0 0 5px black;\n border-bottom: 1px solid $ui-base-color;\n }\n\n .ckbox {\n border: 2px solid $ui-primary-color;\n border-radius: 2px;\n width: 30px;\n height: 30px;\n font-size: 20px;\n color: $darker-text-color;\n text-shadow: 0 0 5px black;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n &:focus {\n outline: 0 !important;\n\n .ckbox {\n box-shadow: 0 0 1px 1px $ui-highlight-color;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: flex;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n align-items: center;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label,\n.setting-radio__label,\n.setting-meta__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.setting-radio {\n display: block;\n line-height: 18px;\n}\n\n.setting-radio__label {\n margin-bottom: 0;\n}\n\n.column-settings__row legend {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-top: 10px;\n}\n\n.setting-radio__input {\n vertical-align: middle;\n}\n\n.setting-meta__label {\n float: right;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n transform-origin: center center;\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.pulse-loading {\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.loading-bar {\n background-color: $ui-highlight-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.icon-badge-wrapper {\n position: relative;\n}\n\n.icon-badge {\n position: absolute;\n display: block;\n right: -.25em;\n top: -.25em;\n background-color: $ui-highlight-color;\n border-radius: 50%;\n font-size: 75%;\n width: 1em;\n height: 1em;\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n cursor: pointer;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n .status__content {\n margin: 0;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.ui .flash-message {\n margin-top: 10px;\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 0;\n min-width: 75%;\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@import 'boost';\n@import 'accounts';\n@import 'domains';\n@import 'status';\n@import 'modal';\n@import 'composer';\n@import 'columns';\n@import 'regeneration_indicator';\n@import 'directory';\n@import 'search';\n@import 'emoji';\n@import 'doodle';\n@import 'drawer';\n@import 'media';\n@import 'sensitive';\n@import 'lists';\n@import 'emoji_picker';\n@import 'local_settings';\n@import 'error_boundary';\n@import 'single_column';\n@import 'announcements';\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant\nbutton.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant for use with DMs\n.status-direct button.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n",".account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n color: inherit;\n text-decoration: none;\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n\n &.small {\n border: none;\n padding: 0;\n\n & > .account__avatar-wrapper { margin: 0 8px 0 0 }\n\n & > .display-name {\n height: 24px;\n line-height: 24px;\n }\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius();\n position: relative;\n cursor: pointer;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n overflow: hidden;\n position: relative;\n\n & div {\n @include avatar-radius;\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\n.account__avatar-overlay {\n position: relative;\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius();\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius();\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__header__wrapper {\n flex: 0 0 auto;\n background: lighten($ui-base-color, 4%);\n}\n\n.account__disclaimer {\n padding: 10px;\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-left: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &:first-child {\n border-left: 0;\n }\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n abbr {\n color: $highlight-text-color;\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.notification__message {\n margin-left: 42px;\n padding: 8px 0 0 26px;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input();\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout();\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n",".domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n","@keyframes spring-flip-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-242.4deg);\n }\n\n 60% {\n transform: rotate(-158.35deg);\n }\n\n 90% {\n transform: rotate(-187.5deg);\n }\n\n 100% {\n transform: rotate(-180deg);\n }\n}\n\n@keyframes spring-flip-out {\n 0% {\n transform: rotate(-180deg);\n }\n\n 30% {\n transform: rotate(62.4deg);\n }\n\n 60% {\n transform: rotate(-21.635deg);\n }\n\n 90% {\n transform: rotate(7.5deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content {\n position: relative;\n margin: 10px 0;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n padding-top: 5px;\n\n &:focus {\n outline: 0;\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .status__content__text,\n .e-content {\n overflow: hidden;\n\n & > ul,\n & > ol {\n margin-bottom: 20px;\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 1.2em;\n }\n\n h2 {\n font-size: 1.1em;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $darker-text-color;\n color: $darker-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n sup {\n font-size: smaller;\n vertical-align: super;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n .status__content__spoiler {\n display: none;\n\n &.status__content__spoiler--visible {\n display: block;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n\n .link-origin-tag {\n color: $gold-star;\n font-size: 0.8em;\n }\n }\n\n .status__content__spoiler-link {\n background: lighten($ui-base-color, 30%);\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: lighten($ui-base-color, 30%);\n border: none;\n color: $inverted-text-color;\n font-weight: 500;\n font-size: 11px;\n padding: 0 5px;\n text-transform: uppercase;\n line-height: inherit;\n cursor: pointer;\n vertical-align: bottom;\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n\n .status__content__spoiler-icon {\n display: inline-block;\n margin: 0 0 0 5px;\n border-left: 1px solid currentColor;\n padding: 0 0 0 4px;\n font-size: 16px;\n vertical-align: -2px;\n }\n}\n\n.notif-cleaning {\n .status,\n .notification-follow,\n .notification-follow-request {\n padding-right: ($dismiss-overlay-width + 0.5rem);\n }\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.notification-follow,\n.notification-follow-request {\n position: relative;\n\n // same like Status\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .account {\n border-bottom: 0 none;\n }\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n &.status.status-direct:not(.read) {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 10px 14px;\n position: relative;\n height: auto;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 28px; // 12px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $lighter-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n color: $light-text-color;\n\n strong {\n color: $inverted-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n\n &.collapsed {\n background-position: center;\n background-size: cover;\n user-select: none;\n\n &.has-background::before {\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-image: linear-gradient(to bottom, rgba($base-shadow-color, .75), rgba($base-shadow-color, .65) 24px, rgba($base-shadow-color, .8));\n pointer-events: none;\n content: \"\";\n }\n\n .display-name:hover .display-name__html {\n text-decoration: none;\n }\n\n .status__content {\n height: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 0;\n\n &:after {\n content: \"\";\n position: absolute;\n top: 0; bottom: 0;\n left: 0; right: 0;\n background: linear-gradient(rgba($ui-base-color, 0), rgba($ui-base-color, 1));\n pointer-events: none;\n }\n \n a:hover {\n text-decoration: none;\n }\n }\n &:focus > .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 4%), 0), rgba(lighten($ui-base-color, 4%), 1));\n }\n &.status-direct:not(.read)> .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 8%), 0), rgba(lighten($ui-base-color, 8%), 1));\n }\n\n .notification__message {\n margin-bottom: 0;\n }\n\n .status__info .notification__message > span {\n white-space: nowrap;\n }\n }\n\n .notification__message {\n margin: -10px 0px 10px 0;\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time {\n display: inline-block;\n flex-grow: 1;\n color: $dark-text-color;\n font-size: 14px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status__display-name {\n color: $dark-text-color;\n overflow: hidden;\n}\n\n.status__info__account .status__display-name {\n display: block;\n max-width: 100%;\n}\n\n.status__info {\n display: flex;\n justify-content: space-between;\n font-size: 15px;\n\n > span {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .notification__message > span {\n word-wrap: break-word;\n }\n}\n\n.status__info__icons {\n display: flex;\n align-items: center;\n height: 1em;\n color: $action-button-color;\n\n .status__media-icon,\n .status__visibility-icon,\n .status__reply-icon {\n padding-left: 2px;\n padding-right: 2px;\n }\n\n .status__collapse-button.active > .fa-angle-double-up {\n transform: rotate(-180deg);\n }\n}\n\n.no-reduce-motion .status__collapse-button {\n &.activate {\n & > .fa-angle-double-up {\n animation: spring-flip-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-angle-double-up {\n animation: spring-flip-out 1s linear;\n }\n }\n}\n\n.status__info__account {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n overflow: hidden;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-top: -10px;\n margin-bottom: 10px;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\na.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\n.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n flex: none;\n margin: 0 10px 0 0;\n height: 48px;\n width: 48px;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a,\n .status__content__text {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-color, 29%);\n text-decoration: none;\n }\n }\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n\n a .fa, a:hover .fa {\n color: inherit;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n.status__wrapper--filtered__button {\n display: inline;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n font-size: inherit;\n line-height: inherit;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n",".modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.onboarding-modal__pager {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 470px;\n\n .react-swipeable-view-container > div {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n user-select: text;\n }\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n@media screen and (max-width: 550px) {\n .onboarding-modal {\n width: 100%;\n height: 100%;\n border-radius: 0;\n }\n\n .onboarding-modal__pager {\n width: 100%;\n height: auto;\n max-width: none;\n max-height: none;\n flex: 1 1 auto;\n }\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.onboarding-modal__dots {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.onboarding-modal__dot {\n width: 14px;\n height: 14px;\n border-radius: 14px;\n background: darken($ui-secondary-color, 16%);\n margin: 0 3px;\n cursor: pointer;\n\n &:hover {\n background: darken($ui-secondary-color, 18%);\n }\n\n &.active {\n cursor: default;\n background: darken($ui-secondary-color, 24%);\n }\n}\n\n.onboarding-modal__page__wrapper {\n pointer-events: none;\n padding: 25px;\n padding-bottom: 0;\n\n &.onboarding-modal__page__wrapper--active {\n pointer-events: auto;\n }\n}\n\n.onboarding-modal__page {\n cursor: default;\n line-height: 21px;\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 20px;\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 4%);\n }\n }\n\n .navigation-bar a {\n color: inherit;\n }\n\n p {\n font-size: 16px;\n color: $lighter-text-color;\n margin-top: 10px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n background: $ui-base-color;\n color: $secondary-text-color;\n border-radius: 4px;\n font-size: 14px;\n padding: 3px 6px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.onboarding-modal__page__wrapper-0 {\n height: 100%;\n padding: 0;\n}\n\n.onboarding-modal__page-one {\n &__lead {\n padding: 65px;\n padding-top: 45px;\n padding-bottom: 0;\n margin-bottom: 10px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n margin-bottom: 8px;\n }\n\n p {\n margin-bottom: 0;\n }\n }\n\n &__extra {\n padding-right: 65px;\n padding-left: 185px;\n text-align: center;\n }\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboarding-modal__page-two,\n.onboarding-modal__page-three,\n.onboarding-modal__page-four,\n.onboarding-modal__page-five {\n p {\n text-align: left;\n }\n\n .figure {\n background: darken($ui-base-color, 8%);\n color: $secondary-text-color;\n margin-bottom: 20px;\n border-radius: 4px;\n padding: 10px;\n text-align: center;\n font-size: 14px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);\n\n .onboarding-modal__image {\n border-radius: 4px;\n margin-bottom: 10px;\n }\n\n &.non-interactive {\n pointer-events: none;\n text-align: left;\n }\n }\n}\n\n.onboarding-modal__page-four__columns {\n .row {\n display: flex;\n margin-bottom: 20px;\n\n & > div {\n flex: 1 1 0;\n margin: 0 10px;\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n\n p {\n text-align: center;\n }\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .column-header {\n color: $primary-text-color;\n }\n}\n\n@media screen and (max-width: 320px) and (max-height: 600px) {\n .onboarding-modal__page p {\n font-size: 14px;\n line-height: 20px;\n }\n\n .onboarding-modal__page-two .figure,\n .onboarding-modal__page-three .figure,\n .onboarding-modal__page-four .figure,\n .onboarding-modal__page-five .figure {\n font-size: 12px;\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .row {\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .column-header {\n padding: 5px;\n font-size: 12px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.favourite-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__display-name {\n display: flex;\n }\n\n .status__avatar {\n height: 48px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container,\n.favourite-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.favourite-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header,\n.favourite-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time,\n.favourite-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n strong {\n display: block;\n font-weight: 500;\n }\n\n max-height: 80vh;\n max-width: 80vw;\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n & > .react-toggle,\n & > .icon,\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__do_not_ask_again {\n padding-left: 20px;\n padding-right: 20px;\n padding-bottom: 10px;\n\n font-size: 14px;\n\n label, input {\n vertical-align: middle;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: 'mastodon-font-monospace', monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.filtered-status-info {\n text-align: start;\n\n .spoiler__text {\n margin-top: 20px;\n }\n\n .account {\n border-bottom: 0;\n }\n\n .account__display-name strong {\n color: $inverted-text-color;\n }\n\n .status__content__spoiler {\n display: none;\n\n &--visible {\n display: flex;\n }\n }\n\n ul {\n padding: 10px;\n margin-left: 12px;\n list-style: disc inside;\n }\n\n .filtered-status-edit-link {\n color: $action-button-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline\n }\n }\n}\n",".composer {\n padding: 10px;\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 0;\n right: 0;\n\n ::-webkit-scrollbar-track:hover,\n ::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .composer--spoiler {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.composer--spoiler {\n height: 0;\n transform-origin: bottom;\n opacity: 0.0;\n\n &.composer--spoiler--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1.0;\n }\n\n input {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px;\n padding: 10px;\n width: 100%;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n }\n}\n\n.composer--warning {\n color: $inverted-text-color;\n margin-bottom: 15px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:active,\n &:focus,\n &:hover { text-decoration: none }\n }\n}\n\n.compose-form__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-left: 5px;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n}\n\n.composer--reply {\n margin: 0 0 10px;\n border-radius: 4px;\n padding: 10px;\n background: $ui-primary-color;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n\n & > header {\n margin-bottom: 5px;\n overflow: hidden;\n\n & > .account.small { color: $inverted-text-color; }\n\n & > .cancel {\n float: right;\n line-height: 24px;\n }\n }\n\n & > .content {\n position: relative;\n margin: 10px 0;\n padding: 0 12px;\n font-size: 14px;\n line-height: 20px;\n color: $inverted-text-color;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n white-space: pre-wrap;\n padding-top: 5px;\n overflow: hidden;\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 18px;\n }\n\n h2 {\n font-size: 16px;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $inverted-text-color;\n color: $inverted-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n\n a {\n color: $lighter-text-color;\n text-decoration: none;\n\n &:hover { text-decoration: underline }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span { text-decoration: underline }\n }\n }\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -5px 0 0;\n }\n}\n\n.compose-form__autosuggest-wrapper,\n.autosuggest-input {\n position: relative;\n width: 100%;\n\n label {\n .autosuggest-textarea__textarea {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px 4px 0 0;\n padding: 10px 32px 0 10px;\n width: 100%;\n min-height: 100px;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: none;\n scrollbar-color: initial;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n &:disabled { background: $ui-secondary-color }\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n }\n}\n\n.composer--textarea--icons {\n display: block;\n position: absolute;\n top: 29px;\n right: 5px;\n bottom: 5px;\n overflow: hidden;\n\n & > .textarea_icon {\n display: block;\n margin: 2px 0 0 2px;\n width: 24px;\n height: 24px;\n color: $lighter-text-color;\n font-size: 18px;\n line-height: 24px;\n text-align: center;\n opacity: .8;\n }\n}\n\n.autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n}\n\n.autosuggest-textarea__suggestions {\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: 100%;\n border-radius: 0 0 4px 4px;\n padding: 6px;\n width: 100%;\n color: $inverted-text-color;\n background: $ui-secondary-color;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n font-size: 14px;\n z-index: 99;\n display: none;\n}\n\n.autosuggest-textarea__suggestions--visible {\n display: block;\n}\n\n.autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected { background: darken($ui-secondary-color, 10%) }\n\n > .account,\n > .emoji,\n > .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n & > .account.small {\n .display-name {\n & > span { color: $lighter-text-color }\n }\n }\n}\n\n.composer--upload_form {\n overflow: hidden;\n\n & > .content {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n font-family: inherit;\n padding: 5px;\n overflow: hidden;\n }\n}\n\n.composer--upload_form--item {\n flex: 1 1 0;\n margin: 5px;\n min-width: 40%;\n\n & > div {\n position: relative;\n border-radius: 4px;\n height: 140px;\n width: 100%;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n overflow: hidden;\n\n textarea {\n display: block;\n position: absolute;\n box-sizing: border-box;\n bottom: 0;\n left: 0;\n margin: 0;\n border: 0;\n padding: 10px;\n width: 100%;\n color: $secondary-text-color;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n font-size: 14px;\n font-family: inherit;\n font-weight: 500;\n opacity: 0;\n z-index: 2;\n transition: opacity .1s ease;\n\n &:focus { color: $white }\n\n &::placeholder {\n opacity: 0.54;\n color: $secondary-text-color;\n }\n }\n\n & > .close { mix-blend-mode: difference }\n }\n\n &.active {\n & > div {\n textarea { opacity: 1 }\n }\n }\n}\n\n.composer--upload_form--actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $ui-secondary-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($ui-secondary-color, 4%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n}\n\n.composer--upload_form--progress {\n display: flex;\n padding: 10px;\n color: $darker-text-color;\n overflow: hidden;\n\n & > .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n & > .message {\n flex: 1 1 auto;\n\n & > span {\n display: block;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n }\n\n & > .backdrop {\n position: relative;\n margin-top: 5px;\n border-radius: 6px;\n width: 100%;\n height: 6px;\n background: $ui-base-lighter-color;\n\n & > .tracker {\n position: absolute;\n top: 0;\n left: 0;\n height: 6px;\n border-radius: 6px;\n background: $ui-highlight-color;\n }\n }\n }\n}\n\n.compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n}\n\n.composer--options-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n height: 27px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n}\n\n.composer--options {\n display: flex;\n flex: 0 0 auto;\n\n & > * {\n display: inline-block;\n box-sizing: content-box;\n padding: 0 3px;\n height: 27px;\n line-height: 27px;\n vertical-align: bottom;\n }\n\n & > hr {\n display: inline-block;\n margin: 0 3px;\n border-width: 0 0 0 1px;\n border-style: none none none solid;\n border-color: transparent transparent transparent darken($simple-background-color, 24%);\n padding: 0;\n width: 0;\n height: 27px;\n background: transparent;\n }\n}\n\n.compose--counter-wrapper {\n align-self: center;\n margin-right: 4px;\n}\n\n.composer--options--dropdown {\n &.open {\n & > .value {\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n color: $primary-text-color;\n background: $ui-highlight-color;\n transition: none;\n }\n &.top {\n & > .value {\n border-radius: 0 0 4px 4px;\n box-shadow: 0 4px 4px rgba($base-shadow-color, 0.1);\n }\n }\n }\n}\n\n.composer--options--dropdown--content {\n position: absolute;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n background: $simple-background-color;\n overflow: hidden;\n transform-origin: 50% 0;\n}\n\n.composer--options--dropdown--content--item {\n display: flex;\n align-items: center;\n padding: 10px;\n color: $inverted-text-color;\n cursor: pointer;\n\n & > .content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n &:not(:first-child) { margin-left: 10px }\n\n strong {\n display: block;\n color: $inverted-text-color;\n font-weight: 500;\n }\n }\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n\n & > .content {\n color: $primary-text-color;\n\n strong { color: $primary-text-color }\n }\n }\n\n &.active:hover { background: lighten($ui-highlight-color, 4%) }\n}\n\n.composer--publisher {\n padding-top: 10px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n justify-content: flex-end;\n flex: 0 0 auto;\n\n & > .primary {\n display: inline-block;\n margin: 0;\n padding: 0 10px;\n text-align: center;\n }\n\n & > .side_arm {\n display: inline-block;\n margin: 0 2px;\n padding: 0;\n width: 36px;\n text-align: center;\n }\n\n &.over {\n & > .count { color: $warning-red }\n }\n}\n",".column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.column {\n overflow: hidden;\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n z-index: 1;\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n bottom: -13px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n\n .announcements {\n z-index: 1;\n position: relative;\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n\n & > button {\n margin: 0;\n border: none;\n padding: 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($ui-highlight-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n\n .wide .columns-area:not(.columns-area--mobile) & {\n flex: auto;\n min-width: 330px;\n max-width: 400px;\n }\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n margin-left: 0;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n\n // glitch - added focus ring for keyboard navigation\n &:focus {\n text-shadow: 0 0 4px darken($ui-highlight-color, 5%);\n }\n}\n\n.column-header__notif-cleaning-buttons {\n display: flex;\n align-items: stretch;\n justify-content: space-around;\n\n button {\n @extend .column-header__button;\n background: transparent;\n text-align: center;\n padding: 10px 0;\n white-space: pre-wrap;\n }\n\n b {\n font-weight: bold;\n }\n}\n\n// The notifs drawer with no padding to have more space for the buttons\n.column-header__collapsible-inner.nopad-drawer {\n padding: 0;\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n z-index: 1;\n position: relative;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n\n // notif cleaning drawer\n &.ncd {\n transition: none;\n &.collapsed {\n max-height: 0;\n opacity: 0.7;\n }\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.column-header__title {\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.empty-column-indicator,\n.error-column,\n.follow_requests-unlocked_explanation {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.follow_requests-unlocked_explanation {\n background: darken($ui-base-color, 4%);\n contain: initial;\n}\n\n.error-column {\n flex-direction: column;\n}\n\n// more fixes for the navbar-under mode\n@mixin fix-margins-for-navbar-under {\n .tabs-bar {\n margin-top: 0 !important;\n margin-bottom: -6px !important;\n }\n}\n\n.single-column.navbar-under {\n @include fix-margins-for-navbar-under;\n}\n\n.auto-columns.navbar-under {\n @media screen and (max-width: $no-gap-breakpoint) {\n @include fix-margins-for-navbar-under;\n }\n}\n\n.auto-columns.navbar-under .react-swipeable-view-container .columns-area,\n.single-column.navbar-under .react-swipeable-view-container .columns-area {\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 100% !important;\n }\n}\n\n.column-inline-form {\n padding: 7px 15px;\n padding-right: 5px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n margin-bottom: 6px;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 5px;\n }\n}\n",".regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n",".directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n",".search {\n position: relative;\n}\n\n.search__input {\n @include search-input();\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: color, transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(0deg);\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n padding: 15px 10px;\n font-size: 14px;\n font-weight: 500;\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n",null,".emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.emoji-button {\n display: block;\n padding: 5px 5px 2px 2px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n","$doodleBg: #d9e1e8;\n.doodle-modal {\n @extend .boost-modal;\n width: unset;\n}\n\n.doodle-modal__container {\n background: $doodleBg;\n text-align: center;\n line-height: 0; // remove weird gap under canvas\n canvas {\n border: 5px solid $doodleBg;\n }\n}\n\n.doodle-modal__action-bar {\n @extend .boost-modal__action-bar;\n\n .filler {\n flex-grow: 1;\n margin: 0;\n padding: 0;\n }\n\n .doodle-toolbar {\n line-height: 1;\n\n display: flex;\n flex-direction: column;\n flex-grow: 0;\n justify-content: space-around;\n\n &.with-inputs {\n label {\n display: inline-block;\n width: 70px;\n text-align: right;\n margin-right: 2px;\n }\n\n input[type=\"number\"],input[type=\"text\"] {\n width: 40px;\n }\n span.val {\n display: inline-block;\n text-align: left;\n width: 50px;\n }\n }\n }\n\n .doodle-palette {\n padding-right: 0 !important;\n border: 1px solid black;\n line-height: .2rem;\n flex-grow: 0;\n background: white;\n\n button {\n appearance: none;\n width: 1rem;\n height: 1rem;\n margin: 0; padding: 0;\n text-align: center;\n color: black;\n text-shadow: 0 0 1px white;\n cursor: pointer;\n box-shadow: inset 0 0 1px rgba(white, .5);\n border: 1px solid black;\n outline-offset:-1px;\n\n &.foreground {\n outline: 1px dashed white;\n }\n\n &.background {\n outline: 1px dashed red;\n }\n\n &.foreground.background {\n outline: 1px dashed red;\n border-color: white;\n }\n }\n }\n}\n",".drawer {\n width: 300px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n padding: 10px 5px;\n flex: none;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n\n @include single-column('screen and (max-width: 630px)') { flex: auto }\n\n @include limited-single-column('screen and (max-width: 630px)') {\n &, &:first-child, &:last-child { padding: 0 }\n }\n\n .wide & {\n min-width: 300px;\n max-width: 400px;\n flex: 1 1 200px;\n }\n\n @include single-column('screen and (max-width: 630px)') {\n :root & { // Overrides `.wide` for single-column view\n flex: auto;\n width: 100%;\n min-width: 0;\n max-width: none;\n padding: 0;\n }\n }\n\n .react-swipeable-view-container & { height: 100% }\n}\n\n.drawer--header {\n display: flex;\n flex-direction: row;\n margin-bottom: 10px;\n flex: none;\n background: lighten($ui-base-color, 8%);\n font-size: 16px;\n\n & > * {\n display: block;\n box-sizing: border-box;\n border-bottom: 2px solid transparent;\n padding: 15px 5px 13px;\n height: 48px;\n flex: 1 1 auto;\n color: $darker-text-color;\n text-align: center;\n text-decoration: none;\n cursor: pointer;\n }\n\n a {\n transition: background 100ms ease-in;\n\n &:focus,\n &:hover {\n outline: none;\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.search {\n position: relative;\n margin-bottom: 10px;\n flex: none;\n\n @include limited-single-column('screen and (max-width: #{$no-gap-breakpoint})') { margin-bottom: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n}\n\n.search-popout {\n @include search-popout();\n}\n\n.drawer--account {\n padding: 10px;\n color: $darker-text-color;\n display: flex;\n align-items: center;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n .acct {\n display: block;\n color: $secondary-text-color;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n overflow: hidden;\n}\n\n.drawer--results {\n background: $ui-base-color;\n overflow-x: hidden;\n overflow-y: auto;\n\n & > header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n & > section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n\n & > .hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n }\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 85%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n > .mastodon {\n display: block;\n width: 100%;\n height: 100%;\n border: none;\n cursor: inherit;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n",".video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n width: 100%;\n height: 100%;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 8%);\n }\n\n .status__content > & {\n margin-top: 15px; // Add margin when used bare for NSFW video player\n }\n @include fullwidth-gallery;\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 500;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n span {\n text-align: center;\n color: $darker-text-color;\n display: flex;\n height: 100%;\n align-items: center;\n\n p {\n width: 100%;\n }\n }\n\n audio {\n width: 100%;\n }\n}\n\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n height: 110px;\n\n @include fullwidth-gallery;\n}\n\n.media-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n .full-width & {\n border-radius: 0;\n }\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n\n &.letterbox {\n background: $base-shadow-color;\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n object-fit: contain;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n width: 100%;\n position: relative;\n z-index: 1;\n object-fit: contain;\n user-select: none;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $white;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $ui-highlight-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n .detailed-status & {\n width: 100%;\n height: 100%;\n }\n\n @include fullwidth-gallery;\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n position: relative;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-shadow-color;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n\n .fa,\n &:active .fa,\n &:hover .fa,\n &:focus .fa {\n color: inherit;\n }\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n",".sensitive-info {\n display: flex;\n flex-direction: row;\n align-items: center;\n position: absolute;\n top: 4px;\n left: 4px;\n z-index: 100;\n}\n\n.sensitive-marker {\n margin: 0 3px;\n border-radius: 2px;\n padding: 2px 6px;\n color: rgba($primary-text-color, 0.8);\n background: rgba($base-overlay-background, 0.5);\n font-size: 12px;\n line-height: 18px;\n text-transform: uppercase;\n opacity: .9;\n transition: opacity .1s ease;\n\n .media-gallery:hover & { opacity: 1 }\n}\n",".list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n",".emoji-mart {\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: 0;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -3px;\n left: 0;\n width: 100%;\n height: 3px;\n background-color: darken($ui-highlight-color, 3%);\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n",".glitch.local-settings {\n position: relative;\n display: flex;\n flex-direction: row;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n height: 80vh;\n width: 80vw;\n max-width: 740px;\n max-height: 450px;\n overflow: hidden;\n\n label, legend {\n display: block;\n font-size: 14px;\n }\n\n .boolean label, .radio_buttons label {\n position: relative;\n padding-left: 28px;\n padding-top: 3px;\n\n input {\n position: absolute;\n left: 0;\n top: 0;\n }\n }\n\n span.hint {\n display: block;\n color: $lighter-text-color;\n }\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n line-height: 24px;\n margin-bottom: 20px;\n }\n\n h2 {\n font-size: 15px;\n font-weight: 500;\n line-height: 20px;\n margin-top: 20px;\n margin-bottom: 10px;\n }\n}\n\n.glitch.local-settings__navigation__item {\n display: block;\n padding: 15px 20px;\n color: inherit;\n background: lighten($ui-secondary-color, 8%);\n border-bottom: 1px $ui-secondary-color solid;\n cursor: pointer;\n text-decoration: none;\n outline: none;\n transition: background .3s;\n\n .text-icon-button {\n color: inherit;\n transition: unset;\n }\n\n &:hover {\n background: $ui-secondary-color;\n }\n\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n\n &.close, &.close:hover {\n background: $error-value-color;\n color: $primary-text-color;\n }\n}\n\n.glitch.local-settings__navigation {\n background: lighten($ui-secondary-color, 8%);\n width: 212px;\n font-size: 15px;\n line-height: 20px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page {\n display: block;\n flex: auto;\n padding: 15px 20px 15px 20px;\n width: 360px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page__item {\n margin-bottom: 2px;\n}\n\n.glitch.local-settings__page__item.string,\n.glitch.local-settings__page__item.radio_buttons {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n@media screen and (max-width: 630px) {\n .glitch.local-settings__navigation {\n width: 40px;\n flex-shrink: 0;\n }\n\n .glitch.local-settings__navigation__item {\n padding: 10px;\n\n span:last-of-type {\n display: none;\n }\n }\n}\n",".error-boundary {\n color: $primary-text-color;\n font-size: 15px;\n line-height: 20px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n font-weight: 400;\n margin-bottom: 8px;\n }\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n }\n\n ul {\n list-style: disc;\n margin-left: 0;\n padding-left: 1em;\n }\n\n textarea.web_app_crash-stacktrace {\n width: 100%;\n resize: none;\n white-space: pre;\n font-family: $font-monospace, monospace;\n }\n}\n",".compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .drawer--account {\n flex: 0 1 48px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .composer {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px;\n min-height: 48px + 2px;\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n padding-top: 15px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .search {\n margin-bottom: 10px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n",".announcements__item__content {\n word-wrap: break-word;\n overflow-y: auto;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 10px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n &.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n.announcements {\n background: lighten($ui-base-color, 8%);\n font-size: 13px;\n display: flex;\n align-items: flex-end;\n\n &__mastodon {\n width: 124px;\n flex: 0 0 auto;\n\n @media screen and (max-width: 124px + 300px) {\n display: none;\n }\n }\n\n &__container {\n width: calc(100% - 124px);\n flex: 0 0 auto;\n position: relative;\n\n @media screen and (max-width: 124px + 300px) {\n width: 100%;\n }\n }\n\n &__item {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n max-height: 50vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &__range {\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n padding-right: 18px;\n }\n\n &__unread {\n position: absolute;\n top: 19px;\n right: 19px;\n display: block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n }\n }\n\n &__pagination {\n padding: 15px;\n color: $darker-text-color;\n position: absolute;\n bottom: 3px;\n right: 0;\n }\n}\n\n.layout-multiple-columns .announcements__mastodon {\n display: none;\n}\n\n.layout-multiple-columns .announcements__container {\n width: 100%;\n}\n\n.reactions-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-top: 15px;\n margin-left: -2px;\n width: calc(100% - (90px - 33px));\n\n &__item {\n flex-shrink: 0;\n background: lighten($ui-base-color, 12%);\n border: 0;\n border-radius: 3px;\n margin: 2px;\n cursor: pointer;\n user-select: none;\n padding: 0 6px;\n display: flex;\n align-items: center;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &__emoji {\n display: block;\n margin: 3px 0;\n width: 16px;\n height: 16px;\n\n img {\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n min-width: auto;\n min-height: auto;\n vertical-align: bottom;\n object-fit: contain;\n }\n }\n\n &__count {\n display: block;\n min-width: 9px;\n font-size: 13px;\n font-weight: 500;\n text-align: center;\n margin-left: 6px;\n color: $darker-text-color;\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 16%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n\n &__count {\n color: lighten($darker-text-color, 4%);\n }\n }\n\n &.active {\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%);\n\n .reactions-bar__item__count {\n color: lighten($highlight-text-color, 8%);\n }\n }\n }\n\n .emoji-picker-dropdown {\n margin: 2px;\n }\n\n &:hover .emoji-button {\n opacity: 0.85;\n }\n\n .emoji-button {\n color: $darker-text-color;\n margin: 0;\n font-size: 16px;\n width: auto;\n flex-shrink: 0;\n padding: 0 6px;\n height: 22px;\n display: flex;\n align-items: center;\n opacity: 0.5;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n opacity: 1;\n color: lighten($darker-text-color, 4%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n }\n\n &--empty {\n .emoji-button {\n padding: 0;\n }\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n ul,\n .e-content & ul {\n margin: 0;\n list-style: none;\n }\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n border-radius: 4px;\n display: block;\n background: darken($ui-primary-color, 5%);\n height: 5px;\n min-width: 1%;\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__option {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n &__text {\n display: inline-block;\n word-wrap: break-word;\n overflow-wrap: break-word;\n max-width: calc(100% - 45px - 25px);\n }\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n display: block;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($valid-value-color, 15%);\n border-width: 4px;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 45px;\n font-weight: 700;\n flex: 0 0 45px;\n }\n\n &__voted {\n padding: 0 5px;\n display: inline-block;\n\n &__mark {\n font-size: 18px;\n }\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n overflow-x: hidden;\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n width: 100%;\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__option {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n @include avatar-size(80px);\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n @include avatar-radius();\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n @include avatar-size(44px);\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: none;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &--with-select strong {\n display: block;\n margin-bottom: 10px;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n line-height: 20px;\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: $darker-text-color;\n font-size: 14px;\n padding: 0 10px;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n\n.announcements-list {\n border: 1px solid lighten($ui-base-color, 4%);\n border-radius: 4px;\n\n &__item {\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &__title {\n padding: 0 15px;\n display: block;\n font-weight: 500;\n font-size: 18px;\n line-height: 1.5;\n color: $secondary-text-color;\n text-decoration: none;\n margin-bottom: 10px;\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n }\n\n &__meta {\n padding: 0 15px;\n color: $dark-text-color;\n }\n\n &__action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n}\n","$emojis-requiring-outlines: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash' !default;\n\n%emoji-outline {\n filter: drop-shadow(1px 1px 0 $primary-text-color) drop-shadow(-1px 1px 0 $primary-text-color) drop-shadow(1px -1px 0 $primary-text-color) drop-shadow(-1px -1px 0 $primary-text-color);\n}\n\n.emojione {\n @each $emoji in $emojis-requiring-outlines {\n &[title=':#{$emoji}:'] {\n @extend %emoji-outline;\n }\n }\n}\n\n.hicolor-privacy-icons {\n .status__visibility-icon.fa-globe,\n .composer--options--dropdown--content--item .fa-globe {\n color: #1976D2;\n }\n\n .status__visibility-icon.fa-unlock,\n .composer--options--dropdown--content--item .fa-unlock {\n color: #388E3C;\n }\n\n .status__visibility-icon.fa-lock,\n .composer--options--dropdown--content--item .fa-lock {\n color: #FFA000;\n }\n\n .status__visibility-icon.fa-envelope,\n .composer--options--dropdown--content--item .fa-envelope {\n color: #D32F2F;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .composer--publisher {\n text-align: left;\n }\n\n .boost-modal__status-time,\n .favourite-modal__status-time {\n float: left;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .setting-meta__label {\n float: left;\n }\n\n .status__avatar {\n margin-left: 10px;\n margin-right: 0;\n\n // Those are used for public pages\n left: auto;\n right: 10px;\n }\n\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 58px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n text-align: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","// components.scss\n.compose-form {\n .compose-form__modifiers {\n .compose-form__upload {\n &-description {\n input {\n &::placeholder {\n opacity: 1.0;\n }\n }\n }\n }\n }\n}\n\n.rich-formatting a,\n.rich-formatting p a,\n.rich-formatting li a,\n.landing-page__short-description p a,\n.status__content a,\n.reply-indicator__content a {\n color: lighten($ui-highlight-color, 12%);\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n }\n\n &.mention span {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.status__content__spoiler-link {\n color: $secondary-text-color;\n text-decoration: none;\n }\n}\n\n.status__content__read-more-button {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n}\n\n.getting-started__footer a {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n}\n\n.nothing-here {\n color: $darker-text-color;\n}\n\n.public-layout .public-account-header__tabs__tabs .counter.active::after {\n border-bottom: 4px solid $ui-highlight-color;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/skins/glitch/contrast/common.js b/priv/static/packs/skins/glitch/contrast/common.js index af82696b8..adca386cf 100644 Binary files a/priv/static/packs/skins/glitch/contrast/common.js and b/priv/static/packs/skins/glitch/contrast/common.js differ diff --git a/priv/static/packs/skins/glitch/mastodon-light/common.css b/priv/static/packs/skins/glitch/mastodon-light/common.css index 4f1274786..90aa2181c 100644 Binary files a/priv/static/packs/skins/glitch/mastodon-light/common.css and b/priv/static/packs/skins/glitch/mastodon-light/common.css differ diff --git a/priv/static/packs/skins/glitch/mastodon-light/common.css.map b/priv/static/packs/skins/glitch/mastodon-light/common.css.map index 049a2d972..88fa5f09b 100644 --- a/priv/static/packs/skins/glitch/mastodon-light/common.css.map +++ b/priv/static/packs/skins/glitch/mastodon-light/common.css.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///common.scss","webpack:///./app/javascript/flavours/glitch/styles/reset.scss","webpack:///./app/javascript/flavours/glitch/styles/mastodon-light/variables.scss","webpack:///./app/javascript/flavours/glitch/styles/basics.scss","webpack:///./app/javascript/flavours/glitch/styles/containers.scss","webpack:///./app/javascript/flavours/glitch/styles/_mixins.scss","webpack:///./app/javascript/flavours/glitch/styles/variables.scss","webpack:///./app/javascript/flavours/glitch/styles/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/footer.scss","webpack:///./app/javascript/flavours/glitch/styles/compact_header.scss","webpack:///./app/javascript/flavours/glitch/styles/widgets.scss","webpack:///./app/javascript/flavours/glitch/styles/forms.scss","webpack:///./app/javascript/flavours/glitch/styles/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/statuses.scss","webpack:///./app/javascript/flavours/glitch/styles/components/index.scss","webpack:///./app/javascript/flavours/glitch/styles/components/boost.scss","webpack:///./app/javascript/flavours/glitch/styles/components/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/components/domains.scss","webpack:///./app/javascript/flavours/glitch/styles/components/status.scss","webpack:///./app/javascript/flavours/glitch/styles/components/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/components/composer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/columns.scss","webpack:///./app/javascript/flavours/glitch/styles/components/regeneration_indicator.scss","webpack:///./app/javascript/flavours/glitch/styles/components/directory.scss","webpack:///./app/javascript/flavours/glitch/styles/components/search.scss","webpack:///","webpack:///./app/javascript/flavours/glitch/styles/components/emoji.scss","webpack:///./app/javascript/flavours/glitch/styles/components/doodle.scss","webpack:///./app/javascript/flavours/glitch/styles/components/drawer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/media.scss","webpack:///./app/javascript/flavours/glitch/styles/components/sensitive.scss","webpack:///./app/javascript/flavours/glitch/styles/components/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/components/emoji_picker.scss","webpack:///./app/javascript/flavours/glitch/styles/components/local_settings.scss","webpack:///./app/javascript/flavours/glitch/styles/components/error_boundary.scss","webpack:///./app/javascript/flavours/glitch/styles/components/single_column.scss","webpack:///./app/javascript/flavours/glitch/styles/polls.scss","webpack:///./app/javascript/flavours/glitch/styles/about.scss","webpack:///./app/javascript/flavours/glitch/styles/tables.scss","webpack:///./app/javascript/flavours/glitch/styles/admin.scss","webpack:///./app/javascript/flavours/glitch/styles/accessibility.scss","webpack:///./app/javascript/flavours/glitch/styles/rtl.scss","webpack:///./app/javascript/flavours/glitch/styles/dashboard.scss","webpack:///./app/javascript/flavours/glitch/styles/mastodon-light/diff.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,0CACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,8BACA,CC3EwB,iEDkF1B,kBClF0B,4BDsF1B,sBACE,MEtFF,sBACE,mBACA,eACA,iBACA,gBACA,WDXM,kCCaN,6BACA,8BACA,CADA,0BACA,CADA,yBACA,CADA,qBACA,0CACA,wCACA,kBAEA,sIAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBDjDwB,kBCqDxB,iBACE,kBACA,0BAEA,iBACE,YAIJ,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cDpFiB,mBAEK,WCqFtB,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,wBAEA,aACE,gBACA,WACA,YACA,kBACA,uBAGF,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,6BAKF,YAEE,WACA,mBACA,uBACA,oBACA,yEAKF,gBAEE,+EAKF,WAEE,gBCrJJ,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SFtBI,YEwBF,kBACA,sBAGF,YACE,uBACA,mBACA,WF/BE,qBEiCF,UACA,kBACA,iBACA,uBACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAKA,UACqB,sCC3EvB,iBD4EE,6BAEA,UACE,YACA,cACA,SACA,kBACA,iBE5BkB,wBD9DtB,4BACA,uBD8FA,aACE,cF9FiB,wBEgGjB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UF3UA,qCE8UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cF7Ve,mBE+Vf,kBACA,uHAEA,yBAGE,WFxWA,qCE4WF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBFvbe,8CE4bjB,yBACE,gBACA,aACA,kBACA,gBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,CAEA,WACqB,yCCzgB3B,kBD0gBM,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,iBE7dc,wBD9DtB,4BACA,qCD+hBI,2CAvCF,YAwCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAKA,UACqB,sCCtiB7B,CDuiBQ,sBACA,wDAEA,QACE,kBACA,iBErfY,wBD9DtB,4BACA,2DDsjBQ,mDAbF,YAcI,sCAKN,2CApEF,eAqEI,sCAGF,2CAxEF,cAyEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WFjlBF,gBEmlBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WF3lBJ,gBE6lBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aFhnBS,oDEunBf,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cF5oBW,aE8oBX,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BF9qBS,wEEorBT,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WF1sBJ,uBE4sBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cF7uBa,uDEgvBb,oBACE,cFjvBW,qBEmvBX,aACA,gBACA,8DAEA,eACE,WF3vBJ,qCEiwBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aE3yBU,8DFizBV,mBACA,WFpzBE,qFEwzBJ,YAEE,eACA,cFxzBe,2CE4zBjB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBFt3BkB,+IEy3BhB,kBAGE,WGl4BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,eChBJ,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,yBCrBF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cP9Fe,6BOiGf,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cACA,gBACA,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cRjBe,wBQqBjB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBLPI,uBKUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBTfwB,aSiBtB,0BACA,eACA,cTrBiB,iBSuBjB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aTrDiB,qBSuDf,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cT5EiB,+BSgFnB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aTzGmB,aS8GrB,YACE,kBACA,mBT9GwB,mCSgHxB,qBAGF,YACE,kBACA,0BACA,kBACA,cTzHmB,mBS2HnB,iBAGF,eACE,eACA,cThImB,iBSkInB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cT3IiB,0BS+InB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cTxJiB,qBS0JjB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBTxKwB,mCS0KxB,cT5KmB,gBS8KnB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cTvNe,8DS6NjB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eLlPM,CKoPN,cACA,cTlPmB,mBSoPnB,+BANA,iBACA,CLlPM,kCKgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,UTlQM,eSoQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cTxQiB,qCS4QnB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBTpR0B,kBSsRxB,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBTjSoB,kBSmSpB,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBTjTsB,eSmTpB,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WTpUE,mBSsUF,gBACA,uBACA,wBAEA,aTvUe,0BS2Uf,aACE,gBACA,eACA,eACA,cT/Ua,yFSqVf,UTxVE,+BS+VJ,aACE,YACA,uDAGF,oBT9VsB,eSoW1B,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cTjZiB,gBSmZjB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WT5aI,8BS+aJ,aACE,cT7ae,gBS+af,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aT9gBmB,iCS6gBrB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cThiBsB,4JSmiBtB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WT/jBI,gCSikBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MC/kBJ,+BACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WVjDA,cUmDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aVhEoB,0BUkElB,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aVlGmB,sBUqGjB,aVlGsB,yBUsGtB,iBACE,kBACA,gBACA,wBAIJ,aACE,eACA,eACA,qBAGF,kBACE,cVvHiB,iCU0HjB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WV1JA,gBU4JA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WVhLE,cUkLF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WVtME,cUwMF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,6BAIJ,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WVpRI,cUsRJ,WACA,2CAKE,mBACE,eACA,WV9RA,qBUgSA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WV9TI,cUgUJ,WACA,UACA,oBACA,gBACA,mBACA,sBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,wQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBNpVY,oLMwVZ,iBACE,4WAGF,oBVxVsB,mBU2VpB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBVzYsB,WANlB,eUkZJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBVzaoB,gGU6apB,kBN9aQ,kHMibN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WVlcI,cUocJ,WACA,UACA,oBACA,gBACA,wXACA,sBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cVhdY,oBUkdZ,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,oEACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,iCACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UVhhBF,aU0hBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cV/hBmB,kBUiiBnB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cNziBY,sBM6iBd,mCACE,+BACA,cN9iBQ,kBMkjBV,oBACE,cVnjBiB,qBUqjBjB,wBAEA,UV1jBI,0BU4jBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gCACA,mBVtkBsB,WALlB,eU8kBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aVhnBmB,qBUknBjB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aVjoBwB,yBUmoBtB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cVppBmB,oCUupBnB,cACE,mBACA,kBACA,4CAGF,aV7pBmB,gBU+pBjB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBNtrBM,YMwrBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cVlsBmB,WUosBnB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WVnuBI,qCUquBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UV3uBI,0BU6uBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cVvxBmB,0BU0xBnB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WVvyBI,kBUyyBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aNhzBc,0SM0zBZ,+BACE,aAIJ,kBACE,sBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gCACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBNp2Bc,gBMs2BZ,2BAEA,kBNx2BY,gBM02BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SC36BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,gBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,CAEA,UACqB,sCRpDzB,gBQqDI,wBAEA,UACE,YACA,cACA,SACA,kBACA,iBPLgB,wBD9DtB,4BACA,mBQoEM,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WXhFA,gBWkFA,gBACA,uBACA,+BAGF,aACE,eACA,cXtFa,gBWwFb,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WX9GI,gBWgHJ,qBACA,iBACA,qBACA,sBAGF,ePrHM,oBOuHJ,WXxHI,eW0HJ,cACA,kBAGF,cACE,uCAGF,wBAEE,cXjIiB,oBWqInB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,WACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBX1K0B,mCW4KxB,cXxJiB,eW0JjB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cX7MmB,mCW+MnB,mCACA,6DAEA,aPnNc,sCOqNZ,kCACA,qDAGF,aACE,oCACA,gCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cX5PiB,gCW8PjB,6BAGF,aACE,cXlQiB,4BWsQnB,aXnQwB,qBWqQtB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aPtRY,gBOwRV,0CAGF,aP3RY,wCOgSd,eACE,wCAIJ,UACE,0BAIA,aXzSmB,4BW4SjB,aX5SiB,qBW8Sf,qGAEA,yBAGE,iCAIJ,UX1TI,gBW4TF,wBAIJ,eACE,kBClUJ,kCACE,kBACA,gBACA,mBACA,qCAEA,iBANF,eAOI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBZrBwB,6GYwBtB,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBZtEwB,WANlB,oBY+EN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UZzFI,gFY6FN,kBAGE,qNAKA,kBZjGoB,4IYyGpB,kBR1GQ,qCQiHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAKA,cACA,iBACA,mBACA,mFAGF,iBACE,eACA,WACA,WACA,WACA,qMAGF,eAGE,mEASF,cACE,gBACA,qFAGF,aZ/Jc,YYiKZ,eACA,WACA,eACA,gBACA,+GAGF,aACE,eACA,CACA,sBACA,eACA,yJAEA,cACE,uEAIJ,WACE,kBACA,WACA,eACA,iDAQF,iBACE,mBACA,yHAEA,iBACE,gBACA,+FAGF,UACE,WC3NR,gCACE,4CACA,cAGF,aACE,eACA,iBACA,cbDwB,SaGxB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,abfsB,eaiBpB,SAIJ,wBACE,YACA,kBACA,sBACA,Wb7BM,ea+BN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,qCACA,mBACA,WACA,4CAEA,wBAGE,4BACA,qCACA,sBAGF,eACE,mFAEA,wBT3DQ,gBS+DN,kBAIJ,wBblEsB,eaoEpB,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,UbtFM,mBAIgB,qGasFpB,wBAGE,8BAIJ,kBbxFsB,2Ga2FpB,wBAGE,0BAIJ,cACE,iBACA,YACA,cb3GiB,oBa6GjB,uBACA,iBACA,kBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,cAIJ,oBACE,UACA,cbzHoB,Sa2HpB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,sCACA,4BACA,2CACA,oBAGF,oCACE,uBAGF,aACE,6BACA,eACA,qBAGF,abhKwB,gCaoKxB,QACE,uEAGF,mBAGE,uBAGF,abjLmB,sFaoLjB,aAGE,oCACA,6BAGF,kCACE,gCAGF,aACE,6BACA,8BAGF,abjMsB,uCaoMpB,aACE,wBAKN,sBACE,8BACA,qBACA,kBACA,YACA,8BAEA,6BACE,mBAKN,ab1NqB,Sa4NnB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,oCACA,4BACA,2CACA,yBAGF,kCACE,4BAGF,UACE,6BACA,eACA,0BAGF,abxPwB,qCa4PxB,QACE,sFAGF,mBAGE,gBAIJ,iBACE,uBACA,YAGF,WACE,cACA,qBACA,QACA,SACA,kBACA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,uCAIJ,MACE,kBACA,CTvSU,sES8SZ,aT9SY,uBSkTZ,aTnTc,4DSyTV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,Ub9UM,0BagVJ,eAIJ,aACE,eACA,gBACA,uBACA,mBACA,iBAEA,aACE,wBACA,sBAIA,cACA,gBAKA,yCAPF,WACE,CAEA,gBACA,uBACA,gBACA,mBAWA,CAVA,mBAGF,aACE,CACA,cAKA,8BAIA,yBACE,sBAIJ,SACE,YACA,eACA,iBACA,uBACA,mBACA,gBACA,CAME,sDAGF,cACE,YACA,kBACA,oBACA,qBAKN,eACE,wBAGF,cACE,eAGF,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cThX4B,eAEC,0DSiX3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cTxY4B,eAEC,WSyY3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,WAIJ,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBbjdqB,camdnB,kBACA,uCACA,mBAEA,eACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BbreiB,2BayenB,WACE,iBACA,uBACA,yBb5eiB,8BagfnB,QACE,iBACA,uBACA,4BbnfiB,6BaufnB,SACE,gBACA,2BACA,2Bb1fiB,wBaggBnB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBbtgBiB,WAHb,gBa4gBJ,uBACA,mBACA,yFAEA,kBb1gBsB,cAHL,UakhBf,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBbhiBiB,cakiBjB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBbzjBiB,WAHb,gBa+jBJ,uBACA,mBACA,oDAEA,SACE,oDAGF,kBbjkBsB,cAHL,iBa2kBrB,qBACE,iBAIA,sBACA,cbpkBgB,oBaukBhB,cACE,gBACA,mBACA,kBACA,mBAGF,cACE,mBACA,iBAIJ,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WbppBM,qBaspBN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCVhoBA,6GADF,kBUwoBI,4BACA,kHVpoBJ,kBUmoBI,4BACA,wBAIJ,+BACE,cbvqBsB,sBa2qBxB,eACE,aACA,2BAGF,aACE,eACA,kBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBb5rBsB,yBa8rBtB,gBACA,kBACA,eACA,gBACA,iBACA,WbzsBI,mDa8sBR,oBACE,aAGF,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,gBAIJ,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,gDACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBb9wBwB,qCagxBxB,sEAGF,wBACE,4CAGF,wBbtxB0B,+Ea0xB1B,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,sBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBbl1BwB,yDas1B1B,kBbv1B0B,2Ba61B1B,iBACE,gBACA,cAGF,aACE,kBAGF,kBbt2B0B,caw2BxB,oBAEA,ab52BmB,oBag3BnB,abn2BgB,yBau2BhB,0BACE,CADF,uBACE,CADF,kBACE,kDAKA,sBACA,cACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,abz3Bc,ea23BZ,0DAEA,ab73BY,0Ba+3BV,sDAIJ,oBACE,cbj5Be,sMao5Bf,yBAGE,0BAKN,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cbp6Be,aas6Bf,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,ab/7Be,qBas8BrB,oBACE,kBACA,eACA,iBACA,gBACA,mBbz8BwB,gBa28BxB,iBACA,qBAGF,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,abt+BqB,uBaw+BnB,CACA,WACA,CADA,+BACA,sBACA,cACA,oBACA,mBACA,cACA,WACA,0CAEA,Ubr/BM,4BAMkB,qCGkBtB,yDADF,cUq+BE,sBAGF,Ub//BM,gCaigCJ,sDAEA,UbngCI,4BAMkB,mDaqgC1B,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAIJ,uBACE,2BACA,gDAGF,ab5gCsB,6Ba8gCpB,uDAGF,ab5hC0B,yDagiC1B,aACE,YAGF,aACE,cb3hCgB,6Ba6hChB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,oBAGF,gBACE,qEAGF,4BACE,gCAGF,eACE,kBACA,MACA,QACA,YACA,kBACA,YAEA,mBACA,yBACA,eACA,aAEA,wCAEA,UTvhCsB,mBSyhCpB,aACA,sBACA,mBACA,uBACA,mBACA,8BACA,wBACA,gCACA,uCAGF,wBACE,kBACA,WACA,YACA,eACA,cbxmCiB,yBa0mCjB,aACA,uBACA,mBACA,sCAGF,mBACE,6CAEA,8BACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,oBAGF,abvnCkB,eaynChB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,6BAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,YACE,SACA,QACA,WACA,YACA,mBACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,8BACA,kBACA,iBACA,WbpyCE,gBasyCF,eACA,+LAMA,6BACE,mEAKF,6BACE,iBAMR,aACE,iBACA,mEAGF,ab5zCqB,qBag0CnB,mBACA,gBACA,sBACA,gBAGF,aACE,iBACA,uBAGF,eACE,8BAGF,ab/0CqB,eai1CnB,cACA,gBACA,gBACA,uBAGF,qBACE,sBAGF,WACE,8BAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA3BF,qBAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,iBAIJ,0DACE,CADF,kDACE,cAGF,kBACE,8BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBbh6CwB,kCak6CxB,uBAGF,MACE,aACA,mBACA,uBACA,cb36CmB,ea66CnB,gBACA,0BACA,kBACA,qCAGF,SACE,oBACA,CADA,WACA,cAGF,wBbr7C0B,Wau7CxB,kBACA,MACA,OACA,aACA,qBAGF,iBACE,aAGF,iBACE,cACA,aACA,WACA,yBbt8CwB,kBaw8CxB,cACA,UACA,WACA,eAGF,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,uBAGF,oBACE,mBbj+CsB,kBam+CtB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cb1/Ce,kBa4/Cf,+BAGF,ab//CiB,eaigDf,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,Ub5gDE,qBa8gDA,oHAEA,yBAGE,yCAKN,QACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UbxiDI,oBaijDN,kBACA,cACA,2BAGF,eACE,UAGF,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cblkDiB,gBaokDjB,gBAEA,abnkDsB,0BaqkDpB,sBAEA,oBACE,gBAIJ,qBACE,4BAKN,GACE,cACA,eACA,WARI,mBAKN,GACE,cACA,eACA,2CC5lDF,u+KACE,uCAEA,u+KACE,CAOA,8MAMF,okBACE,UClBJ,YACE,gCACA,cACA,qBACA,iCAEA,aACE,cACA,cfJiB,gBeMjB,qBACA,eACA,gBAGF,WACE,UACA,yCAEA,8CAEA,WACE,iBACA,mBAKN,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,gBX0BwB,wBD9DtB,4BACA,kBYqCA,eACA,yBAEA,oBACE,sBACA,iBACA,4BZ3CF,eYgDE,CACA,cACA,2DAJF,gBXesB,wBD9DtB,4BACA,CYgDE,iBAQE,CANF,+BZlDF,UYsDI,CACA,qBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WflEE,6BeoEF,gBACA,eACA,0BAKN,iBACE,WACqB,sCZrErB,+BANA,UY+EuB,sCZzEvB,gEYuEA,gBXhBsB,wBD9DtB,4BY0FE,CZnFF,iCANA,UYoFuB,sCZ9EvB,kBYgFE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,2BAGF,aACE,mBACA,sBAGF,YACE,cf3FgB,6Be8FhB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,4BAGF,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,8BACA,eACA,oCACA,uCAEA,aACE,kCAGF,+BACE,gCAGF,aACE,yBACA,eACA,cfrKiB,kCeyKnB,aACE,eACA,gBACA,Wf/KI,CeoLA,2NADF,eACE,gCAKN,afnLwB,oBewL1B,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,wBAGF,gBACE,qBACA,eACA,cf7MmB,ee+MnB,kBACA,4BAEA,af/MwB,6BemNxB,aACE,gBACA,uBACA,iBAIJ,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,afjPqB,eemPnB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SZ7MF,sBACA,WACA,YACA,gBACA,oBACA,mBHrDwB,cAFL,eG0DnB,SACA,+EYuMI,aACE,CZxMN,qEYuMI,aACE,CZxMN,yEYuMI,aACE,CZxMN,0EYuMI,aACE,CZxMN,gEYuMI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,af5Qc,iBe8QZ,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,aflTiB,0HeuTjB,cAEE,gBACA,cf7SY,kZegTZ,aAGE,gEAIJ,wBACE,iDAGF,eX1UI,kBDkEN,CAEA,eACA,cH7CiB,uCG+CjB,UYqQI,mBf1Ue,oDGuEnB,wBACE,cHlDe,eGoDf,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,WH3FI,sDeiVJ,WACE,mDAGF,UfrVI,kBeuVF,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UfxWQ,kBe0WN,cACA,mBACA,sBf3WM,yBe6WN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,6BAIJ,YACE,eACA,gBACA,wBAGF,WACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cfhaiB,eekajB,eACA,gBACA,kBACA,qBACA,kBACA,yJAEA,afzaiB,qWe4af,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,sBAQR,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cfjdc,Ceodd,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,2BAIJ,af1fqB,ee4fnB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WfjnBA,gBemnBA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cfvnBW,gBeynBX,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,Wf9oBE,gDekpBJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,aX5pBU,yBWkqBd,cACE,gCAEA,cACE,cfrqBe,eeuqBf,kCAEA,oBACE,cf1qBa,qBe4qBb,iBACA,gBACA,yCAEA,eACE,WfprBF,SgBDR,YACE,gCACA,8BAEA,aACE,cACA,WhBLI,qBgBOJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,mCCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,EDGF,0BCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,qCAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,EAtBA,2BAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,gCAIJ,cACE,kBAGF,iBACE,cACA,eACA,iBACA,qBACA,gBACA,iBACA,gBACA,wBAEA,SACE,4BAGF,UACE,YACA,gBACA,sBAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,qEAGF,kBACE,qBACA,sGAEA,eACE,qEAIJ,eAEE,qJAEA,kBAEE,mXAGF,eACE,mBACA,qJAGF,eACE,gBACA,2EAGF,eACE,+NAGF,eACE,2FAGF,iBACE,8BACA,cjB5Ge,mBiB8Gf,qHAEA,eACE,2JAIJ,eACE,mJAGF,iBACE,6EAGF,iBACE,eACA,6EAGF,iBACE,qBACA,qJAGF,eACE,6JAEA,QACE,2EAIJ,oBACE,2EAGF,uBACE,oBAIJ,ab9Ic,qBagJZ,0BAEA,yBACE,8BAEA,aACE,kCAKF,oBACE,uCAEA,yBACE,wBAKN,ajBjKc,4CiBsKhB,YACE,8EAEA,aACE,mCAIJ,aACE,oDAEA,ab5LQ,ea8LN,CAKF,sDAEA,kBAEE,gCAKN,oBACE,kBACA,mBACA,YACA,WjBrNM,gBiBuNN,eACA,cACA,yBACA,oBACA,eACA,sBACA,sCAEA,kBACE,qBACA,+DAGF,oBACE,iBACA,sBACA,kBACA,eACA,oBACA,2GAKF,oBAGE,4BAIJ,ajBtOkB,SiBwOhB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,mDAGF,iBAEE,gCAGA,qEAEA,eACE,kBAKF,SACE,mBACA,kDAEA,kBACE,wDAEA,sBACE,iFAIJ,kBAEE,SAKN,iBACE,kBACA,YACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QAPF,kBAUI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,ajBtUiB,CAHb,uEiBkVF,UjBlVE,kCiBsVF,ajBnVe,gCiBwVjB,UjB3VI,kCiB8VF,ajBxVoB,gEiB4VpB,UjBlWE,mBAIgB,sEiBkWhB,kBACE,mBAMR,uBACE,sBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,yCAEA,aACE,kBACA,OACA,QACA,MACA,SACA,6FACA,oBACA,WACA,2DAGF,oBACE,oCAGF,WACE,gBACA,uBACA,cACA,0CAEA,UACE,kBACA,MACA,gBACA,gEACA,oBACA,4CAGF,oBACE,gDAGJ,uDACE,mEAEF,uDACE,0CAGF,eACE,6DAGF,kBACE,gCAIJ,mBACE,+CAKF,sBACE,qEAEA,aACE,wBAKN,oBACE,YACA,CjBtagB,ciBwahB,iBACA,mBACA,CACA,sBACA,8CANA,ajBtagB,CiB0ahB,eAOA,8CAGF,aACE,eACA,eAGF,YACE,8BACA,eACA,oBAEA,sBACE,gBACA,2CAGF,oBACE,sBAIJ,YACE,mBACA,WACA,cjB1coB,iIiB6cpB,gBAGE,kBACA,0EAGF,yBACE,yEAMA,0CACE,CADF,kCACE,2EAKF,2CACE,CADF,mCACE,wBAKN,YACE,mBACA,2BACA,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,mBACA,iBACA,cjBthBgB,CiBwhBhB,iBACA,eACA,kBACA,+CAEA,ajB7hBgB,uBiBiiBhB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cjBzjBgB,4BiB+jBtB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cjBnnBgB,eiBqnBhB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,6JAGF,oBAME,4DAKA,UjB1qBM,kBiBgrBN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,ajB1sBqB,ciB4sBnB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WjB5tBI,kCiBiuBR,UACE,kBACA,iBAGF,SACE,kBACA,YACA,WACA,CjB1tBgB,8IiBquBhB,ajBruBgB,wBiByuBhB,UACE,wCAGF,kBjBpvBsB,WAThB,8CiBiwBJ,kBACE,qBACA,+DAOJ,yBACE,cAIJ,YACE,eACA,yBACA,kBACA,cjBnwBgB,gBiBqwBhB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cjB5yBe,uBiB8yBf,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UjBxzBE,yBiB+zBJ,cACE,kBACA,YACA,+DAGF,aACE,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACE,YACA,SACA,2BAIF,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cjBn2BmB,gBiBq2BnB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,ajBj3BqB,oBiBq3BrB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,kBAGF,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cjB77Bc,iBiB+7Bd,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cjB39BY,gBiB69BZ,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,ajB9+Bc,oCiBo/BlB,cACE,cACA,SACA,uBACA,UACA,kBACA,oBACA,oFAEA,yBAEE,6BChhCJ,kBACE,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,8BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,6CAGF,kBlBtCqB,WAHb,kBkB8CN,gBACA,aACA,sBACA,0BAGF,WACE,WACA,gBACA,iBACA,8DAEA,UACE,YACA,sBACA,aACA,sBACA,mBACA,uBACA,aACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAIJ,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,qCAGF,kBACE,UACE,YACA,gBACA,0BAGF,UACE,YACA,eACA,gBACA,cACA,oDAIJ,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,alBhImB,SkBmIjB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,ClBpJE,wyEkB2JF,UAGE,sBAMR,sBACE,yBAGF,aACE,aACA,mBACA,uBACA,wBAGF,UACE,YACA,mBACA,mBACA,aACA,eACA,8BAEA,kBACE,+BAGF,cACE,mBACA,kCAIJ,mBACE,CACA,mBACA,0EAEA,mBACE,yBAIJ,cACE,iBACA,4BAEA,cACE,gBACA,WlBjNI,mBkBmNJ,2BAGF,alBhNwB,kGkBmNtB,aAGE,2CAIJ,aACE,2BAGF,cACE,clBlOiB,gBkBoOjB,mBACA,sCAEA,eACE,kCAGF,eACE,mBlB1OoB,cAFL,kBkB+Of,eACA,gBACA,CAII,2NADF,eACE,oCAOV,WACE,UACA,mCAME,mBACA,mBACA,sCAEA,cACE,iBACA,kBACA,qCAGF,eACE,oCAIJ,kBACE,mBACA,kBACA,eAIJ,iBACE,eACA,mBACA,sBAEA,eACE,WlBnSI,kBkBqSJ,yBACA,eACA,qBAGF,kBlBrSwB,cAFL,gBkB0SjB,aACA,kBACA,6HAQF,eACE,qJAGF,kBACE,clBzTiB,mBkB2TjB,kBACA,aACA,kBACA,eACA,sCACA,yPAEA,iBACE,mBACA,qNAGF,mBACE,gBACA,4CAMJ,YACE,mBACA,gDAEA,UACE,cACA,4DAEA,aACE,2DAGF,cACE,kDAGF,iBACE,uDAIJ,eACE,sDAIJ,UlB5WM,2DkBiXR,0BACE,cACE,iBACA,qJAGF,cAIE,mBACA,4CAGF,kBACE,sDAGF,WACE,eACA,mBAIJ,oBACE,eACA,gBACA,iBACA,uHAGF,kBAOE,WlBvZM,kBkByZN,gBACA,eACA,YACA,kBACA,sBACA,+SAEA,alBhZgB,YkBkZd,eACA,WACA,eACA,gBACA,uSAGF,YACE,uPAGF,WACE,WACA,+WAGF,aACE,wBAKF,edvbM,CJEa,gBkBwbjB,oBACA,iEd3bI,2BJEa,qDkBicrB,iBAEE,aACA,qEAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,kKAIJ,YAKE,8BACA,mBlBldmB,akBodnB,iBACA,0LAEA,aACE,iBACA,clBzdiB,mBkB2djB,kNAGF,aACE,6DAIJ,cAEE,yDAGF,WAEE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,alBthBwB,qCkB0hBxB,oDAZF,eAaI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,UlB1jBI,gBICA,ac4jBJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,ed5kBI,yBc8kBF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,UlB7lBE,oBkB+lBA,eACA,gBd/lBA,+CcomBJ,YACE,8BACA,mBACA,4CAIJ,aACE,WlB7mBI,ekB+mBJ,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,UlBxnBI,ekB0nBF,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eAWE,eACA,wBAXA,eACE,iBACA,uBAGF,aACE,gBACA,2CAMF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,UlBzqBE,akB2qBA,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBlBprBgB,WANlB,iJkBisBA,iBAGE,oMAUR,aACE,iIAIJ,4BAIE,clBptBmB,ekBstBnB,gBACA,6cAEA,aAGE,6BACA,uCAIJ,iBACE,mBACA,oBACA,eAEA,yFAEA,qBACE,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,UlBnxBI,CkBqxBF,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gDACA,mBlBzzBoB,WALlB,ekBi0BF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,cAKN,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBd12BM,yDc62BN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBdr3BI,uBcy3BN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UlBv5BI,ekBy5BF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,wBAKN,gBACE,sCAEA,eACE,gCAGF,eACE,qDAGF,UlB57BM,iDkBg8BN,YACE,0DAEA,YACE,0BAIJ,YACE,iBACA,uBACA,kDAGF,alB77BoB,qBkB+7BlB,wDAEA,yBACE,WCp9BN,YACE,oBAGF,cACE,uBACA,eACA,gBACA,cnBJmB,4CmBOnB,afNY,sCeWd,2CACE,oBAGF,QACE,wBACA,UACA,+CAEA,WACE,mBACA,UACA,0BAGF,aACE,sBACA,SACA,YACA,kBACA,aACA,WACA,UACA,WnBtCI,gBICA,eewCJ,oBACA,gBACA,qDAEA,anB7Bc,CmB2Bd,2CAEA,anB7Bc,CmB2Bd,+CAEA,anB7Bc,CmB2Bd,gDAEA,anB7Bc,CmB2Bd,sCAEA,anB7Bc,gCmBiCd,8ChBpCA,uCADF,cgBsC4D,0ChBjC5D,cgBiC4D,oBAI9D,UnBtDQ,mBmBwDN,mBnBpDsB,oCmBsDtB,iBACA,kBACA,eACA,gBACA,sBAEA,anB7DmB,gBmB+DjB,0BACA,mFAEA,oBAEU,iCAKZ,mBACA,eAEA,gBACA,wCAEA,anB5EwB,sDmBgFxB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,gBACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBnBlGsB,qCmByG1B,eACE,kBACA,aACA,mBnB9GsB,gBmBgHtB,gBACA,cACA,yBAEA,iBACE,gBACA,wCAEA,UnB5HI,iCmB8HJ,WACE,iBACA,2BAIJ,iBACE,cACA,CACA,cACA,iBACA,WnBzII,qBmB2IJ,gBACA,iBACA,qBACA,mBACA,gBACA,gGAEA,kBACE,qBACA,iIAEA,eACE,kJAIJ,eACE,mBACA,2DAGF,eACE,eACA,8BAGF,cACE,wFAGF,eACE,sCAGF,iBACE,2BACA,WnB/KE,mBmBiLF,mDAEA,eACE,8DAIJ,eACE,0DAGF,iBACE,+BAGF,iBACE,eACA,2DAGF,eACE,+DAEA,QACE,8BAIJ,oBACE,8BAGF,uBACE,6BAGF,anBlNiB,qBmBoNf,mCAEA,oEAGE,oBACE,gDAEA,qDAMR,UACE,YACA,gBACA,wBAIJ,iBACE,UACA,QACA,gHAEA,mCAEE,uDAIJ,iBAEE,WACA,mIAGE,aACE,sBACA,SACA,YACA,0BACA,yBACA,WACA,iBACA,UACA,WnBtQE,gBICA,eewQF,oBACA,YACA,qBACA,yLAEA,anB9PY,CmB4PZ,sKAEA,anB9PY,CmB4PZ,8KAEA,anB9PY,CmB4PZ,gLAEA,anB9PY,CmB4PZ,4JAEA,anB9PY,yKmBkQZ,SACE,qJAGF,kBnBnRe,+ImBoRf,8ChB1QF,8JADF,cgB4Q8D,kKhBvQ9D,cgBuQ8D,qChBhQ5D,8TADF,sBgBoQM,gBACA,6BAMR,aACE,kBACA,SACA,UACA,WACA,gBACA,2CAEA,aACE,mBACA,WACA,YACA,cnB3SiB,emB6SjB,iBACA,kBACA,WACA,4CAIJ,iBACE,SACA,oCAGF,aACE,kBACA,sBACA,SACA,0BACA,YACA,WACA,WnBnUM,mBAGa,sCmBmUnB,eACA,WACA,aACA,6CAGF,aACE,0CAGF,YACE,eACA,kBACA,iMAEA,kBAGa,iKAEb,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,+DAGF,6BACE,qEAEA,aACE,gBACA,uBACA,mBACA,sEAGF,eACE,qEAGF,aACE,iBACA,gBACA,uBACA,mBACA,4EAMA,anB3Xe,wBmBgYrB,eACE,iCAEA,YACE,mBACA,eACA,oBACA,YACA,gBACA,8BAIJ,UACE,WACA,cACA,kCAEA,iBACE,kBACA,aACA,WACA,sBfzZI,wBe2ZJ,sBACA,4BACA,gBACA,2CAEA,aACE,kBACA,sBACA,SACA,OACA,SACA,SACA,aACA,WACA,cnBtae,gFmBwaf,eACA,oBACA,gBACA,UACA,UACA,4BACA,iDAEA,UflbE,sEeobF,WACE,cnBnba,CIFb,4DeobF,WACE,cnBnba,CIFb,gEeobF,WACE,cnBnba,CIFb,iEeobF,WACE,cnBnba,CIFb,uDeobF,WACE,cnBnba,yCmBwbjB,2EAKE,0CAKN,iFACE,aACA,uBACA,8BACA,UACA,4BACA,8CAEA,aACE,cnB3ciB,emB6cjB,gBACA,aACA,oBACA,2JAEA,aAGE,wCAIJ,SACE,kCAIJ,YACE,aACA,cnBhemB,gBmBkenB,sCAEA,cACE,kBACA,2CAGF,aACE,gDAEA,aACE,eACA,gBACA,yBACA,qDAGF,iBACE,eACA,kBACA,WACA,WACA,mBnBlfkB,8DmBqflB,iBACE,MACA,OACA,WACA,kBACA,mBnB7fkB,0BmBogB1B,UnB1gBQ,oBmB4gBN,eACA,gBf5gBM,4BeghBR,YACE,gBACA,0BACA,YACA,aACA,8BACA,cACA,oBAGF,YACE,cACA,sBAEA,oBACE,uBACA,cACA,YACA,iBACA,sBACA,uBAGF,oBACE,aACA,CAEA,oBACA,CADA,0BACA,UACA,QACA,YACA,uBACA,2BAIJ,iBACE,iBACA,0CAKE,yBACE,qCACA,WnB9jBE,mBAMkB,gBmB2jBpB,8CAGA,yBACE,oCACA,uCAMR,iBACE,kBACA,uCACA,gBf9kBM,gBeglBN,uBACA,6CAGF,YACE,mBACA,aACA,WnBxlBM,emB0lBN,sDAEA,aACE,cnB1lBiB,wEmB6lBjB,6EAEA,aACE,WnBnmBE,gBmBqmBF,sGAIJ,kBnBnmBwB,WANlB,6PmBinBF,UnBjnBE,0DmBqnBN,wCAGF,gBACE,iBACA,mBACA,gBACA,yBACA,cACA,+BAEA,oBACE,SACA,eACA,kBACA,gCAGF,oBACE,aACA,UACA,WACA,kBACA,kCAIA,af5oBU,CgBFZ,+BAHF,YACE,cACA,kBAUA,CATA,cAKA,kBACA,2BACA,gBAEA,uBAEA,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,wHAMJ,WAGE,mCAIJ,YACE,mBACA,uBACA,YACA,CpBlFwB,IoBiG1B,aACE,aACA,sBACA,WACA,YACA,CAIA,oBAGF,qBACE,WACA,mBACA,cpB/GwB,eoBiHxB,cACA,eACA,SACA,iBACA,aACA,SACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cpBlIwB,eoBoIxB,cACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,cAGF,kBACE,WpB7KM,coB+KN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cpB5LiB,kGoB+LjB,sBAGE,WpBrME,kCoByMJ,apBnMsB,oBoByM1B,oBACE,iBACA,oBAGF,kBpB/M0B,cAWR,iBoBuMhB,eACA,gBACA,yBACA,eACA,yBAGF,iBACE,cACA,uCAGE,aACE,WACA,kBACA,SACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,kFACA,gBAKN,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,uBAEA,QACE,YACA,aACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,apBvQwB,uBoB2QxB,sCACE,4CAEA,apB9QsB,yCoBgRpB,4CAIJ,SAEE,SAIJ,WACE,kBACA,sBACA,aACA,sBACA,gBACA,wDAEA,SACE,gBACA,gBACA,qBAGF,kBpBzSwB,yBoB8S1B,WACE,aACA,cACA,uBAGF,kBACE,iCAGF,iBACE,sEAGF,kBACE,SACA,cpBhUmB,eoBkUnB,eACA,eACA,kFAEA,aACE,CAKA,kLAEA,UpBjVI,mBoBmVF,kFAKJ,2BACE,wCAIJ,YACE,oBACA,6BACA,+CAEA,sBAEE,kBACA,eACA,qBACA,0CAGF,eACE,gDAKJ,SACE,6BAGF,eACE,gBACA,gBACA,cpBpXmB,0DoBsXnB,UACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,iCAIF,eACE,2CACA,YACE,WACA,mCAKN,kBACE,aACA,mCAIA,apB1ZmB,0BoB4ZjB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,uBAKN,oBACE,uBACA,gBACA,mBACA,OACA,sBAGF,oBACE,iBACA,uCAGF,apB5akB,mBAXQ,kBoB2bxB,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBACA,sCAbF,cAcI,kDAGF,eACE,2CAGF,apB3cwB,qBoB6ctB,uDAEA,yBACE,eAKN,qBACE,uCAKA,sBACE,6BACA,qCASF,qCAXA,sBACE,6BACA,sCAgBF,mJAFF,qBAGI,sBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,kBACA,uCAEA,SACE,kCAKN,aACE,aACA,yBChhBJ,iBACE,eACA,gBACA,crBcgB,mBAXQ,4BqBCxB,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,crBhBY,qCqBoBd,cACE,gBACA,kBCtCJ,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,gBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WtB3EF,gBsB6EE,gBACA,uBACA,0CAGF,aACE,eACA,ctBjFW,gBsBmFX,gBACA,uBACA,yBAKN,kBtBxFsB,asB0FpB,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,cAOV,kBtB9H0B,sBsBiIxB,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,CC/KJ,eAGF,SpBkDE,sBACA,WACA,YACA,gBACA,oBACA,mBHrDwB,cAFL,eG0DnB,SACA,coBxDA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,sCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,4CACA,eACA,WACA,YACA,cvBrDiB,euBuDjB,oBACA,0BAEA,mBACE,WACA,0BAIJ,sBACE,iCAEA,mBACE,WACA,gCAIJ,QACE,uBACA,cvB7DkB,euB+DlB,uCAEA,uBACE,sCAGF,aACE,yBAKN,avB5EkB,mBuB8EhB,gCACA,kBACA,eACA,gBACA,uBAGF,YACE,cvBnGmB,kBuBqGnB,iBAIA,avB5FgB,mBuB8Fd,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cvBtHY,gBuBwHZ,uBACA,mBACA,4BAEA,eACE,uBAGF,avB7Ie,qBuB+Ib,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cvBxKe,0BuB4KjB,aACE,WACA,2CAEA,mCACE,yBACA,0CAGF,wBACE,WC1LR,yCCCE,qBACA,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,8BAIJ,erBXQ,kBqBaN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBrBvCM,kBqByCN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,4BAGE,2DAIJ,WACE,wBAKF,2BACE,eAIJ,aACE,eACA,iBACA,gBACA,WACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,CACA,UACA,YACA,eACA,0EAMA,SACE,oBACA,CADA,WACA,eCpGN,WAEE,0BAGF,kBANW,kBAQT,cACA,iCACA,wBACE,mCAOF,WACE,SACA,UACA,2CAGF,aACE,aAEA,sBACA,YACA,6BACA,6DAGE,oBACE,WACA,iBACA,iBACA,iJAGF,UACE,gEAEF,oBACE,gBACA,WACA,2CAKN,yBACE,sBACA,kBACA,YACA,gBACA,kDAEA,uBACE,CADF,oBACE,CADF,eACE,WACA,YACA,SACA,4BACA,WACA,yBACA,eACA,4CACA,sBACA,oBACA,6DAEA,uBACE,6DAGF,sBACE,wEAGF,sBACE,kBACA,SCjFR,WACE,sBACA,aACA,sBACA,kBACA,iBACA,UACA,qBAEA,iBACE,oBAGF,kBACE,2DxBDF,SwBI0D,yBxBC1D,SwBD0D,qCxBQxD,qLwBLA,yBAGF,eACE,gBACA,eACA,qCxBZA,4BwBgBA,SACE,WACA,YACA,eACA,UACA,+BALF,SACE,WACA,YACA,eACA,UACA,yCAIJ,4BAGF,YACE,mBACA,mBACA,UACA,mBACA,eACA,mBAEA,aACE,sBACA,oCACA,sBACA,YACA,cACA,c3BpDiB,kB2BsDjB,qBACA,eACA,mBAGF,iCACE,iDAEA,YAEE,mBACA,mCACA,SAKN,iBACE,mBACA,UACA,qCxBrDE,6CADF,ewBwDkF,sCxBlEhF,sBADF,cwBoE0D,yBxB/D1D,cwB+D0D,gBAG5D,evBlFQ,kBDkEN,CACA,sBACA,gBACA,cH7CiB,uCG+CjB,mBAEA,wBACE,cHlDe,eGoDf,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,WH3FI,kB2BuFR,YACE,c3BrFmB,a2BuFnB,mBACA,oBAEA,aACE,qBACA,wBAGF,aACE,c3BhGiB,gB2BkGjB,mBACA,gBACA,uBACA,0BAIJ,aACE,gBACA,gBACA,kBAGF,kB3B7G0B,kB2B+GxB,gBACA,yBAEA,a3BvGgB,mB2ByGd,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,c3B/HY,iC2BkIZ,oBACE,iBACA,8FAIJ,eAEE,mCAGF,aACE,aACA,c3B5Je,qB2B8Jf,0HAEA,aAGE,0BACA,gBAQN,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAgBA,CAfA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,uBAEA,kB3B/LwB,0B2BoM1B,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,WACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oCAGF,aACE,WACA,YACA,YACA,eACA,sCAGF,yBAzBF,aA0BI,iBAIJ,kBACE,eACA,gBACA,mBAGF,cACE,kBACA,MACA,OACA,WACA,YACA,8BACA,oBCrPF,kBACE,gBACA,W5BDM,e4BGN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,e5BbQ,cAEa,S4BcnB,WACA,YACA,iEAEA,aAGE,iCAGF,eACE,2BzBcF,iBACE,mBACA,cACA,eACA,aACA,gBACA,yByBfJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,6BAGF,aACE,kBACA,W5B9CM,8B4BgDN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,2DAKE,YACE,wDAKF,SACE,uBAKN,WACE,aACA,sBACA,4BAEA,iBACE,c5B/EiB,a4BiFjB,YACA,mBACA,CAGE,yDAIJ,UACE,gBAIJ,qBACE,eACA,gBACA,kBACA,kBACA,WACA,aACA,2BzB/DA,iBACE,mBACA,cACA,eACA,aACA,gBACA,sByB8DJ,WACE,sBACA,cACA,WACA,kBACA,kBACA,gBACA,kCAEA,eACE,qEAIA,cACE,MACA,gCAIJ,exBlIM,gCwBuIR,cACE,cACA,qBACA,c5BvImB,kB4ByInB,UACA,mEAEA,WAEE,WACA,sBACA,CADA,gCACA,CADA,kBACA,CAIE,0HAFF,WACE,oBACA,CADA,8BACA,CADA,gB5BrJE,C4BsJF,wBAKN,UACE,CAEA,iBACA,MACA,OACA,UACA,gB5BlKM,iC4BqKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,aACA,uBACA,qCAGF,cACE,YACA,WACA,kBACA,UACA,sBACA,CADA,gCACA,CADA,kBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,qDAEA,WACE,oBACA,CADA,8BACA,CADA,gBACA,sCAIJ,0BACE,2BACA,gBACA,kBACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,cxB3K0B,eAEC,CwBqL7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,6BACE,sBACA,SACA,W5BxQM,e4B0QN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,c5BnTiB,mF4BsTjB,yBAGE,wBAKN,oBACE,sBAGF,qBxBpUQ,YwBsUN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wB5B1U0B,qB4B8U1B,iBACE,UACA,QACA,YACA,qKAKA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,oCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gBxBzZM,ewB2ZN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,gCAGF,UACE,YACA,0BzBjYF,iBACE,mBACA,cACA,eACA,aACA,gBACA,qByBgYF,eACE,gBACA,UACA,kBACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gBxB9eI,cJGa,gB4B8ejB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,CAGE,gUAEA,aAIE,wBAKN,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,UxBpjBE,+EwB4jBN,cAGE,gBACA,6BAGF,UxBnkBM,iBwBqkBJ,yBAGF,oBACE,aACA,mDAGF,UxB7kBM,uBwBklBN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,WxBloBE,sFwBqoBF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,iBC5sBR,YACE,mBACA,mBACA,kBACA,QACA,SACA,YACA,mBAGF,YACE,kBACA,gBACA,qBACA,8BACA,eACA,iBACA,yBACA,WACA,4BACA,wCAEA,uBCtBF,kB9BM0B,sB8BJxB,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kB9BhD0B,sB8BkDxB,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,aC3FJ,cAOE,qBACA,W/BPM,gD+BEJ,iBACA,+BAOF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mB/BlBiB,4B+BsBnB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,c/BjCmB,c+BmCnB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,a/BjD0B,mC+BoDxB,aACE,oDAGF,QACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBACA,uBAIA,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gB3B5FM,sB2B8FN,sGAEA,mCAEE,oBAKF,2BACA,gB3BxGM,0B2B2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,6BACA,W/BnHI,yB+BqHJ,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,mCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gB3BpKI,mB2ByKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,c/B/JiB,mD+BkKjB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,wBC1MF,iBACE,aACA,mBACA,mBACA,WhCHM,kBgCKN,YACA,WACA,gBACA,iBACA,gBACA,4DAEA,aACE,eACA,mFAGF,iBACE,kBACA,gBACA,+FAEA,iBACE,OACA,MACA,kCAIJ,aACE,chC3BiB,2BgC+BnB,cACE,gBACA,iBACA,mBACA,2BAGF,cACE,gBACA,iBACA,gBACA,mBACA,0CAIJ,aACE,kBACA,cACA,mBACA,gCACA,eACA,qBACA,aACA,0BACA,4DAEA,aACE,iBACA,gDAGF,kBhC/DmB,iDgCmEnB,kBhChEwB,WANlB,qGgC2EN,kB5BxEU,WJHJ,oCgCiFR,kBACE,YACA,eACA,iBACA,gBACA,8BAGF,aACE,UACA,kBACA,YACA,gBACA,oCAGF,iBACE,4FAGF,eAEE,mBACA,qCAGF,mCACE,UACE,cACA,0CAGF,YACE,4DAEA,YACE,kBCtHN,UACE,eACA,iBACA,oBAEA,cACE,iBACA,gBACA,kBACA,mBAGF,UjCXM,0BiCaJ,oBAGF,eACE,cACA,iBACA,mDAGF,UACE,YACA,gBACA,gCACA,gBC3BJ,WACE,gBACA,aACA,sBACA,yBACA,kBACA,+BAEA,gBACE,eACA,CACA,2BACA,kCAGF,QACE,iCAGF,aACE,6BAGF,sBACE,0BAGF,MACE,kBACA,aACA,sBACA,iBACA,mDAGF,eACE,sB9BlCI,0B8BoCJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,YACE,gBACA,gLAEA,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,CAIA,yFAGF,eACE,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,W9BjNM,kB8BmNN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,mCAGF,kBAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,QC1QJ,eACE,eACA,8BAEA,QAEE,gBACA,UAGF,kBACE,kBACA,cAGF,iBACE,MACA,OACA,YACA,qBACA,kBACA,mBACA,sBAEA,kBnCjBsB,amCsBxB,iBACE,aACA,cACA,iBACA,eACA,gBACA,gEAEA,YAEE,gCAGF,aACE,8BAIA,qBACA,WACA,eACA,WnCjDE,cmCmDF,UACA,oBACA,gB/BpDE,sB+BsDF,kBACA,iBACA,oCAEA,oBnCrDoB,wBmC0DtB,cACE,sBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oB/B7FY,8E+BkGZ,gBAGE,gBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,CACA,oBACA,iBACA,gBACA,mBACA,cACA,mBAGF,UACE,iBACA,eAGF,eACE,mBACA,cnCzHc,amC6HhB,cACE,uBACA,UACA,SACA,SACA,cnClIc,0BmCoId,kBACA,mBAEA,oBACE,sCAGF,kCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,yBACE,gCAEA,YACE,2CAGF,yBACE,aACA,aACA,mBACA,mGAEA,UAEE,aACA,+GAEA,oBnCrLoB,sDmC2LxB,cACE,gBACA,iBACA,YACA,oBACA,cnCrLkB,sCmCwLlB,gCAGF,YACE,mBACA,4CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WnC1NI,qBmC4NJ,WACA,UACA,oBACA,qXACA,sBACA,kBACA,CACA,yBACA,mDAGF,UACE,cAIJ,anC5NkB,qBmC+NhB,+BACE,6BAEA,8BACE,YC/ON,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,sBACE,eACA,gBACA,gBACA,qBACA,cpClBmB,oBoCqBnB,apClBwB,0BoCoBtB,6EAEA,oBAGE,wCAIJ,apChCmB,oBoCqCnB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,cpC/CiB,qBoCmDnB,iBACE,cpCpDiB,uBoCwDnB,eACE,mBACA,kBACA,kBACA,yHAGF,sBAME,mBACA,oBACA,gBACA,cpCxEiB,qBoC4EnB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,cpCnJe,iCoCuJjB,uBACE,gBACA,gBACA,cpC7IY,qDoCiJd,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,uBACA,eACA,iBACA,WpCrNI,iBoCuNJ,kBACA,qEAEA,aAEE,6CAIA,apC7Ne,oCoCkOjB,sBACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,sBACE,eACA,iBACA,gBACA,cpC7Pe,mBoC+Pf,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAIE,UACqB,sCjCnRzB,CiCoRI,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iBhCpOgB,wBD9DtB,4BACA,iCiCsSE,cACE,mCAEA,aACE,WpC5SA,qBoC8SA,uDAGE,yBACE,2CAKN,aACE,cpCrTa,kCoC6TnB,sBAEE,CACA,eACA,eACA,iBACA,mBACA,cpCpUiB,sCoCuUjB,apCpUsB,0BoCsUpB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,sBACE,eACA,iBACA,gBACA,mBACA,cpC9ViB,wBoCiWjB,sBACE,cACA,eACA,gBACA,cACA,kBAKF,cACA,iBpC5WiB,mCoC0WnB,sBACE,CAEA,eACA,mBACA,cpC/WiB,kBoCoXjB,cACA,iBpCrXiB,kBoC6XjB,cpC7XiB,mCoC4XnB,sBACE,CACA,gBACA,gBACA,mBACA,cpCjYiB,kBoCsYjB,cpCtYiB,kBoC8YnB,sBACE,eACA,iBACA,gBACA,mBACA,cpCnZiB,mCoCuZnB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,0CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBpCjcwB,kBoCmctB,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAMA,UACqB,sCjC9hB3B,mDiCiiBI,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA9DF,iBA+DI,mFAIJ,qBAGE,mBpC3jBsB,kBoC6jBtB,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,apC7lBiB,qCoCimBjB,eACE,WpCrmBE,gBoCumBF,CpCpmBe,yFoCymBb,apCzmBa,+CoC+mBjB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SpC3rBI,YoC6rBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,cpCltBe,6BoCstBjB,eACE,iBACA,+BAGF,kBpCztBsB,aoC2tBpB,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,sBACE,eACA,gBACA,cACA,qCAGF,cACE,cpCjwBa,uFoCuwBnB,eACE,cASA,CpCjxBiB,2CoC8wBjB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,cpC72BsB,qBoC+2BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,cpCz2Bc,SqCjBlB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBrCrBwB,UqC0BxB,arCzBwB,0BqC2BtB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBrC9DsB,6BqCgEpB,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+BACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,crC1GmB,gBqC4GnB,0DAEA,UrCjHM,wDqCqHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBrC5JsB,sBqC8JtB,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBrC3KsB,gCqC8KtB,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBrCnMsB,uCqCsMpB,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,crC7Oa,gBqC+Ob,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,sCAEA,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBCzRN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBtCZoB,YsCcpB,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,StCzCA,YsC2CE,kBACA,YACA,uCAIJ,aACE,ctC/Ca,qBsCiDb,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,ctCzFa,qBsC2Fb,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UtC1GA,yBsC4GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UtClIE,yBAMkB,gBsC+HlB,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,atClNiB,esCoNf,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,atC7NiB,esC+Nf,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,ctCxOe,mBsC0Of,kBACA,gCACA,4BAGF,cACE,ctChPe,iBsCkPf,gBACA,0CAGF,UtCzPI,gBsC2PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WtCzQE,oBsC2QF,iBACA,gBACA,mBACA,2BAGF,cACE,iBACA,ctChRe,mBsCkRf,kCAEA,UtCvRE,gBsCyRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,0CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BtC9UoB,YsCqV1B,UACE,SACA,cACA,WACA,sDAKA,atCjWmB,0DsCoWjB,atCjWsB,4DsCsWxB,alC1Wc,gBkC4WZ,4DAGF,alC9WU,gBkCgXR,0DAGF,atCtWgB,gBsCwWd,0DAGF,alCtXU,gBkCwXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,2BAKN,oBACE,ctCjae,qBsCmaf,yBACA,eACA,gBACA,gCACA,iCAEA,UtC5aE,gCsC8aA,oCAGF,atC3aoB,gCsC6alB,iBAMR,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,ctCvdiB,CsC4db,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,atCniBwB,qBsCqiBtB,oBAEA,yBACE,SAKN,aACE,YAGF,kBACE,iBACA,oBAEA,YACE,2BACA,mBACA,aACA,mBtC1jBsB,cAFL,0BsC+jBjB,eACA,kBACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,atC3kBgB,oBsC+kBhB,kBACE,0BACA,aACA,ctC/lBiB,gCsCimBjB,eACA,qBACA,gBACA,kBAGF,cACE,kBACA,ctC5lBc,2BsCgmBhB,iBACE,SACA,WACA,WACA,YACA,kBACA,oCAEA,kBlCtnBY,oCkC0nBZ,kBACE,mCAGF,kBtC1nBsB,sDsC+nBxB,atCloBmB,qBsCsoBjB,gBACA,sBAGF,aACE,0BAGF,atC9oBmB,sBsCkpBnB,alCnpBc,yDkCwpBhB,oBAIE,ctC3pBmB,iGsC8pBnB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBlCxsBc,yBkC4sBd,yBACE,wBAGF,yBlC7sBU,wBkCktBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,atC5tBiB,uBsCkuBjB,wBACA,qBAGF,atCztBgB,csC8tBlB,kBtCzuB0B,kBsC2uBxB,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,ctCjwBe,yBsCmwBf,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,alCjxBM,6BkCwxBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,ctCtyBa,mLsCyyBb,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,atCxyBU,iBsC0yBR,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,ctCj0Ba,WsCw0BrB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,alCv3BY,8CkC43Bd,qBACE,aACA,WtCh4BI,csCq4BR,iBACE,0pDCr4BF,kIACE,CADF,sIACE,uIAYA,aAEE,yIAGF,aAEE,qIAGF,aAEE,6IAGF,aAEE,UChCJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,+BAGF,eACE,2EAGF,UAEE,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,+BAGF,UACE,0BAGF,gBACE,eACA,UAGA,WACA,yCAGF,iBACE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,gBACA,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,qEACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,sBChbJ,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WzCtCI,uByCwCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,czC/CiB,kByCiDjB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,azCpEmB,gByCsEjB,qBACA,wBCxEJ,kB1CG0B,C0CCtB,4EAGF,kBACE,gDAEA,kB1CPsB,wC0CcxB,gBACE,uCAGF,iBACE,kCAIJ,kBACE,yBACA,mEAEA,uDACE,kDAIJ,kBACE,mFAEA,uDACE,qBAMF,eACE,0CAIJ,kDACE,gBAGF,kB1CnD0B,0B0CuD1B,i2BACE,oCAEA,sDACE,CADF,8CACE,iDAOF,kBAEE,uDAEA,kBACE,qBACA,C1CxEoB,8E0CuF1B,kB1CvF0B,4B0C6FxB,yB1C7FwB,2B0CiGxB,wB1CjGwB,8B0CqGxB,2B1CrGwB,6B0CyGxB,0B1CzGwB,wB0CgHxB,kB1ChHwB,cAFL,0F0C2HnB,aACE,4GAEA,kKAEA,aACE,CAHF,6HAEA,aACE,CAHF,qIAEA,aACE,CAHF,uIAEA,aACE,CAHF,mHAEA,aACE,sCAIJ,kBACE,iCAGF,YACE,C1CzIoB,mH0C+IpB,a1C/IoB,8C0CuJxB,aACE,2JAEA,UtC7JM,wCsCoKR,aACE,mEAEA,aACE,CAHF,yDAEA,aACE,CAHF,6DAEA,aACE,CAHF,8DAEA,aACE,CAHF,oDAEA,aACE,2BAIJ,2BACE,gDAKA,a1C7KwB,iB0CkL1B,oBACE,6BAEA,kBACE,0BAIJ,+BACE,qB1C5LwB,oC0CgM1B,kBACE,iMAIA,kBAIE,qBAIJ,kB1C/MqB,sE0CmNrB,kBACE,4FAGF,kBACE,qOAIF,etC9NQ,yBsC0ON,wBAGF,0BACE,0BAGF,wBACE,uLAGF,kBAME,4qEAIE,qBAGE,uCAMN,aAEE,uBAIF,e1C9QQ,gC0CmRJ,a1ChRoB,yB0CyRtB,e1C5RM,CADA,oG0CwSF,U1CxSE,0D0CqTF,a1ClTe,2C0CwTf,U1C3TE,6C0CgUJ,a1C7TiB,6D0CiUjB,U1CpUI,qB0C2UR,UtC1UQ,yBsC6UN,StC7UM,iGsCmVN,eAGE,CAIA,oEAIA,kBACE,oDAEA,eACE,iHAMA,UtCxWA,2CsCiXR,yCACE,gMAGF,eAUE,sKAGF,U1CnYQ,0D","file":"skins/glitch/mastodon-light/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#ccd7e0 rgba(255,255,255,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#ccd7e0;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#c6d2dc}::-webkit-scrollbar-thumb:active{background:#ccd7e0}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(255,255,255,.1)}::-webkit-scrollbar-track:hover{background:#d9e1e8}::-webkit-scrollbar-track:active{background:#d9e1e8}::-webkit-scrollbar-corner{background:transparent}body{font-family:sans-serif,sans-serif;background:#eff3f5;font-size:13px;line-height:18px;font-weight:400;color:#000;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif,sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#d9e1e8}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.embed{background:#ccd7e0;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#e6ebf0;padding:0}body.error{position:absolute;text-align:center;color:#282c37;background:#d9e1e8;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#000;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#000;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:sans-serif,sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;width:40px;height:40px;background-size:40px 40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}.account-header .name{flex:1 1 auto;color:#282c37;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#000}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#b3c3d1}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#282c37;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#000}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#a6b9c9;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#99afc2}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#282c37}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#fff}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#ccd7e0;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;width:120px;height:120px;background-size:120px 120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #ccd7e0;background:#f2f5f7;border-radius:8%;background-position:50%;background-clip:padding-box}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#ccd7e0;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#000;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#000;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#282c37}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#282c37;padding:10px;border-right:1px solid #ccd7e0;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b90d9;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#282c37}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#000;font-family:sans-serif,sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #b3c3d1}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#282c37}.public-layout .public-account-header__extra__links a{display:inline-block;color:#282c37;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#000}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#217aba}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#000}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#282c37}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #c0cdd9}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #c0cdd9}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#d9e1e8}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#ccd7e0}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.modal-layout{background:#d9e1e8 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#6d8ca7}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#6d8ca7}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#282c37}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#6d8ca7}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#6d8ca7}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#60829f}.compact-header h1{font-size:24px;line-height:28px;color:#282c37;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#282c37}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#d9e1e8;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#282c37;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#131419}.hero-widget__text a{color:#282c37;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#282c37}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#282c37}.box-widget{padding:20px;border-radius:4px;background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #444b5d;text-align:center;color:#282c37;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#282c37;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#282c37}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#282c37;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2);color:#282c37;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#282c37}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#282c37;margin-bottom:10px}.page-header{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#000;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#282c37}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#ccd7e0}.page-header h1{font-size:24px}}.directory{background:#d9e1e8;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#d9e1e8;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#c0cdd9}.directory__tag.active>a{background:#2b90d9;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#282c37}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#282c37}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small{color:#000}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#2b90d9}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#f2f5f7;border:2px solid #d9e1e8}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#282c37;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #c0cdd9}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#000}.accounts-table__count small{display:block;color:#282c37;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #a6b9c9}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#282c37}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#2b90d9}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#e6ebf0;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#000;border-bottom:1px solid #ccd7e0}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #ccd7e0}code{font-family:monospace,monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#000;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#2b90d9;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#282c37}.simple_form .hint a{color:#2b90d9}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#fff}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#282c37}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#000;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#000;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#000;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .required abbr{text-decoration:none;color:#c1203b}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#000;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#000;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #444b5d;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#000;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#f9fafb;border:1px solid #fff;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#1f232b}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#c1203b}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#fff}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#2b90d9;background:#f2f5f7}.simple_form .input.field_with_errors label{color:#c1203b}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#c1203b}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#c1203b;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#2b90d9;color:#000;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#2482c7}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#419bdd}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#db2a47}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#e3566d}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#000;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#f9fafb url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #fff;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#444b5d;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(249, 250, 251, 0), #f9fafb)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(217,225,232,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#000}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#c0cdd9;color:#282c37;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#282c37;text-decoration:none}.flash-message a:hover{color:#000;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:monospace,monospace;background:#d9e1e8;color:#000;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#ccd7e0}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#282c37;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#2b90d9;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#217aba}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#282c37}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#282c37;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#282c37;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#000;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#000;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#282c37}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#000;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:monospace,monospace}.input-copy{background:#f9fafb;border:1px solid #fff;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:monospace,monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#e6ebf0;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#e6ebf0;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#c0cdd9}.card__img{height:130px;position:relative;background:#fff;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#ccd7e0;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box;background:#f2f5f7;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#000;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#000;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#000;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#282c37}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#000}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2);color:#444b5d;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#282c37;background-color:rgba(40,44,55,.1);border:1px solid rgba(40,44,55,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#c1203b;background-color:rgba(193,32,59,.1);border-color:rgba(193,32,59,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #b3c3d1;border-bottom:1px solid #b3c3d1;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #b3c3d1}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#282c37;background:rgba(242,245,247,.5)}.account__header__fields dd{flex:1 1 auto;color:#282c37}.account__header__fields a{color:#2b90d9;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#282c37}.pending-account__header a{color:#282c37;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#000;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#d9e1e8}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#c0cdd9}.button.logo-button{flex:0 auto;font-size:14px;background:#2b90d9;color:#000;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#000}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#2074b1}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{padding:8px 0;padding-bottom:2px;margin:initial;margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{position:absolute;margin:initial;float:initial;width:auto;left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}.embed .status .status__info,.public-layout .status .status__info{font-size:15px;display:initial}.embed .status .status__relative-time,.public-layout .status .status__relative-time{color:#444b5d;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.embed .status .status__info .status__display-name,.public-layout .status .status__info .status__display-name{display:block;max-width:100%;padding:6px 0;padding-right:25px;margin:initial}.embed .status .status__info .status__display-name .display-name strong,.public-layout .status .status__info .status__display-name .display-name strong{display:inline}.embed .status .status__avatar,.public-layout .status .status__avatar{height:48px;position:absolute;width:48px;margin:initial}.rtl .embed .status,.rtl .public-layout .status{padding-left:10px;padding-right:68px}.rtl .embed .status .status__info .status__display-name,.rtl .public-layout .status .status__info .status__display-name{padding-left:25px;padding-right:0}.rtl .embed .status .status__relative-time,.rtl .public-layout .status .status__relative-time{float:left}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.link-button{display:block;font-size:15px;line-height:20px;color:#2b90d9;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#3897db;border:10px none;border-radius:4px;box-sizing:border-box;color:#000;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;transition-property:background-color;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#227dbe;transition:all 200ms ease-out;transition-property:background-color}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled{background-color:#9baec8;cursor:default}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#000;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#8ea3c1}.button.button-alternative-2{background:#3c5063}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#344656}.button.button-secondary{font-size:16px;line-height:36px;height:auto;color:#282c37;text-transform:none;background:transparent;padding:3px 15px;border-radius:4px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#8ea3c1;color:#1f232b}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.icon-button{display:inline-block;padding:0;color:#606984;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#51596f;background-color:rgba(96,105,132,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(96,105,132,.3)}.icon-button.disabled{color:#828ba4;background-color:transparent;cursor:default}.icon-button.active{color:#2b90d9}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#282c37}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#373d4c;background-color:rgba(40,44,55,.15)}.icon-button.inverted:focus{background-color:rgba(40,44,55,.3)}.icon-button.inverted.disabled{color:#191b22;background-color:transparent}.icon-button.inverted.active{color:#2b90d9}.icon-button.inverted.active.disabled{color:#1d6ca4}.icon-button.overlayed{box-sizing:content-box;background:rgba(255,255,255,.6);color:rgba(0,0,0,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(255,255,255,.9)}.text-icon-button{color:#282c37;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#373d4c;background-color:rgba(40,44,55,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(40,44,55,.3)}.text-icon-button.disabled{color:#000;background-color:transparent;cursor:default}.text-icon-button.active{color:#2b90d9}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute;transform-origin:50% 0}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.notification__favourite-icon-wrapper{left:0;position:absolute}.notification__favourite-icon-wrapper .fa.star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#000;text-decoration:underline}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name a{color:inherit;text-decoration:inherit}.display-name strong{height:18px;font-size:16px;font-weight:500;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name span{display:block;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name>a:hover strong{text-decoration:underline}.display-name.inline{padding:0;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.display-name.inline strong{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name.inline span{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #393f4f;margin:5px 7px 6px;height:0}.dropdown-menu{background:#282c37;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.dropdown-menu ul{list-style:none}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#282c37}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#282c37}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#282c37}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#282c37}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#282c37;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#2b90d9;color:#282c37;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#282c37;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#282c37;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#2b90d9;color:#282c37}.dropdown__icon{vertical-align:middle}.static-content{padding:10px;padding-top:20px;color:#444b5d}.static-content h1{font-size:16px;font-weight:500;margin-bottom:40px;text-align:center}.static-content p{font-size:13px;margin-bottom:20px}.column,.drawer{flex:1 1 100%;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#c0cdd9;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#000;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #c0cdd9;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.auto-columns .tabs-bar__link:hover,.auto-columns .tabs-bar__link:focus,.auto-columns .tabs-bar__link:active{background:#adbecd;border-bottom-color:#adbecd}}.multi-columns .tabs-bar__link:hover,.multi-columns .tabs-bar__link:focus,.multi-columns .tabs-bar__link:active{background:#adbecd;border-bottom-color:#adbecd}.tabs-bar__link.active{border-bottom:2px solid #2b90d9;color:#2b90d9}.tabs-bar__link span{margin-left:5px;display:none}.tabs-bar__link span.icon{margin-left:0;display:inline}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#2b90d9;border:2px solid #c0cdd9;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#000}.column-link--transparent .icon-with-badge__badge{border-color:#f2f5f7}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#d9e1e8;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#f9fafb}.react-toggle--checked .react-toggle-track{background-color:#2b90d9}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#2074b1}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #d9e1e8;border-radius:50%;background-color:#fff;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#2b90d9}.getting-started__wrapper,.getting_started,.flex-spacer{background:#d9e1e8}.getting-started__wrapper{position:relative;overflow-y:auto}.flex-spacer{flex:1 1 auto}.getting-started{background:#d9e1e8;flex:1 0 auto}.getting-started p{color:#282c37}.getting-started a{color:#444b5d}.getting-started__panel{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex:0 1 auto}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{color:#444b5d;font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#444b5d;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#282c37}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#282c37;padding:10px;font-weight:500;border-bottom:1px solid #c0cdd9}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#282c37}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#d9e1e8;padding:4px 8px;margin:-6px 10px}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#c0cdd9;border:1px solid #e6ebf0}.setting-text{color:#282c37;background:transparent;border:none;border-bottom:2px solid #9baec8;box-sizing:border-box;display:block;font-family:inherit;margin-bottom:10px;padding:7px 0;width:100%}.setting-text:focus,.setting-text:active{color:#000;border-bottom-color:#2b90d9}@media screen and (max-width: 600px){.auto-columns .setting-text,.single-column .setting-text{font-size:16px}}.setting-text.light{color:#000;border-bottom:2px solid #839db4}.setting-text.light:focus,.setting-text.light:active{color:#000;border-bottom-color:#2b90d9}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#606984;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#2b90d9}.reduce-motion button.icon-button.disabled i.fa-retweet{color:#828ba4}.load-more{display:block;color:#444b5d;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#d3dce4}.load-gap{border-bottom:1px solid #c0cdd9}.missing-indicator{padding-top:68px}.scrollable>div>:first-child .notification__dismiss-overlay>.wrappy{border-top:1px solid #d9e1e8}.notification__dismiss-overlay{overflow:hidden;position:absolute;top:0;right:0;bottom:-1px;padding-left:15px;z-index:999;align-items:center;justify-content:flex-end;cursor:pointer;display:flex}.notification__dismiss-overlay .wrappy{width:4rem;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#c0cdd9;border-left:1px solid #99afc2;box-shadow:0 0 5px #000;border-bottom:1px solid #d9e1e8}.notification__dismiss-overlay .ckbox{border:2px solid #9baec8;border-radius:2px;width:30px;height:30px;font-size:20px;color:#282c37;text-shadow:0 0 5px #000;display:flex;justify-content:center;align-items:center}.notification__dismiss-overlay:focus{outline:0 !important}.notification__dismiss-overlay:focus .ckbox{box-shadow:0 0 1px 1px #2b90d9}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.loading-indicator{color:#444b5d;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #86a0b6;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#86a0b6}29%{background-color:#86a0b6}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:flex;left:4px;top:4px;width:auto;height:auto;align-items:center}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(255,255,255,.5);border-radius:8px;padding:8px 12px;color:#000;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(255,255,255,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(255,255,255,.5)}.setting-toggle{display:block;line-height:24px}.setting-toggle__label,.setting-radio__label,.setting-meta__label{color:#282c37;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.setting-radio{display:block;line-height:18px}.setting-radio__label{margin-bottom:0}.column-settings__row legend{color:#282c37;cursor:default;display:block;font-weight:500;margin-top:10px}.setting-radio__input{vertical-align:middle}.setting-meta__label{float:right}@keyframes heartbeat{from{transform:scale(1);transform-origin:center center;animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.pulse-loading{animation:heartbeat 1.5s ease-in-out infinite both}.upload-area{align-items:center;background:rgba(255,255,255,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#d9e1e8;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#282c37;font-size:18px;font-weight:500;border:2px dashed #3c5063;border-radius:4px}.dropdown--active .emoji-button img{opacity:1;filter:none}.loading-bar{background-color:#2b90d9;height:3px;position:absolute;top:0;left:0;z-index:9999}.icon-badge-wrapper{position:relative}.icon-badge{position:absolute;display:block;right:-0.25em;top:-0.25em;background-color:#2b90d9;border-radius:50%;font-size:75%;width:1em;height:1em}.conversation{display:flex;border-bottom:1px solid #c0cdd9;padding:5px;padding-bottom:0}.conversation:focus{background:#d3dce4;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative}.conversation__unread{display:inline-block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#282c37;padding-left:15px}.conversation__content__names{color:#282c37;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#000;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content .status__content{margin:0}.conversation--unread{background:#d3dce4}.conversation--unread:focus{background:#ccd7e0}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#000}.ui .flash-message{margin-top:10px;margin-left:auto;margin-right:auto;margin-bottom:0;min-width:75%}::-webkit-scrollbar-thumb{border-radius:0}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#282c37;max-width:400px}noscript div a{color:#2b90d9;text-decoration:underline}noscript div a:hover{text-decoration:none}noscript div a{word-break:break-word}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet,button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.status-direct button.icon-button.disabled i.fa-retweet,.status-direct button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.account{padding:10px;border-bottom:1px solid #c0cdd9;color:inherit;text-decoration:none}.account .account__display-name{flex:1 1 auto;display:block;color:#282c37;overflow:hidden;text-decoration:none;font-size:14px}.account.small{border:none;padding:0}.account.small>.account__avatar-wrapper{margin:0 8px 0 0}.account.small>.display-name{height:24px;line-height:24px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:8%;background-position:50%;background-clip:padding-box;position:relative;cursor:pointer}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:8%;background-position:50%;background-clip:padding-box;overflow:hidden;position:relative;cursor:default}.account__avatar-composite div{border-radius:8%;background-position:50%;background-clip:padding-box;float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#000;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}.account__avatar-overlay{position:relative;width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:8%;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:8%;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__header__wrapper{flex:0 0 auto;background:#ccd7e0}.account__disclaimer{padding:10px;color:#444b5d}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-left:1px solid #c0cdd9;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab:first-child{border-left:0}.account__action-bar__tab.active{border-bottom:4px solid #2b90d9}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#282c37}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#000}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account__action-bar__tab abbr{color:#2b90d9}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.notification__message{margin-left:42px;padding:8px 0 0 26px;cursor:default;color:#282c37;font-size:15px;position:relative}.notification__message .fa{color:#2b90d9}.notification__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account--panel{background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#c0cdd9;padding:15px}.column-settings__section{color:#282c37;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#d9e1e8;color:#282c37;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#1f232b}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#ccd7e0}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#444b5d;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#c0cdd9}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#b3c3d1;color:#1f232b}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#282c37}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#444b5d}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#3b4151}.column-settings__hashtags .column-select__indicator-separator{background-color:#c0cdd9}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#444b5d;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#282c37}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#444b5d;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#000}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#000;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#3d4455}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#000;margin-bottom:4px;display:block;vertical-align:top;background-color:#fff;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:none;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#e6ebf0;border-bottom:1px solid #c0cdd9;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#e6ebf0;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#282c37;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#282c37}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #c0cdd9}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #d9e1e8}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#dfe6ec;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #eff3f5}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9}.account__moved-note__message{position:relative;margin-left:58px;color:#444b5d;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.account__header__content{color:#282c37;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#e6ebf0}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#ccd7e0;padding:5px;border-bottom:1px solid #b3c3d1}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#f2f5f7;border:2px solid #ccd7e0}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #b3c3d1;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#000;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#000}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #b3c3d1}.account__header__bio .account__header__fields a{color:#217aba}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#282c37;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#282c37;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#000}.domain{padding:10px;border-bottom:1px solid #c0cdd9}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#000;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}@keyframes spring-flip-in{0%{transform:rotate(0deg)}30%{transform:rotate(-242.4deg)}60%{transform:rotate(-158.35deg)}90%{transform:rotate(-187.5deg)}100%{transform:rotate(-180deg)}}@keyframes spring-flip-out{0%{transform:rotate(-180deg)}30%{transform:rotate(62.4deg)}60%{transform:rotate(-21.635deg)}90%{transform:rotate(7.5deg)}100%{transform:rotate(0deg)}}.status__content--with-action{cursor:pointer}.status__content{position:relative;margin:10px 0;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:visible;padding-top:5px}.status__content:focus{outline:0}.status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.status__content pre,.status__content blockquote{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.status__content pre:last-child,.status__content blockquote:last-child{margin-bottom:0}.status__content .status__content__text,.status__content .e-content{overflow:hidden}.status__content .status__content__text>ul,.status__content .status__content__text>ol,.status__content .e-content>ul,.status__content .e-content>ol{margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h1,.status__content .e-content h2,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{margin-top:20px;margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .e-content h1,.status__content .e-content h2{font-weight:700;font-size:1.2em}.status__content .status__content__text h2,.status__content .e-content h2{font-size:1.1em}.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{font-weight:500}.status__content .status__content__text blockquote,.status__content .e-content blockquote{padding-left:10px;border-left:3px solid #282c37;color:#282c37;white-space:normal}.status__content .status__content__text blockquote p:last-child,.status__content .e-content blockquote p:last-child{margin-bottom:0}.status__content .status__content__text b,.status__content .status__content__text strong,.status__content .e-content b,.status__content .e-content strong{font-weight:700}.status__content .status__content__text em,.status__content .status__content__text i,.status__content .e-content em,.status__content .e-content i{font-style:italic}.status__content .status__content__text sub,.status__content .e-content sub{font-size:smaller;text-align:sub}.status__content .status__content__text sup,.status__content .e-content sup{font-size:smaller;vertical-align:super}.status__content .status__content__text ul,.status__content .status__content__text ol,.status__content .e-content ul,.status__content .e-content ol{margin-left:1em}.status__content .status__content__text ul p,.status__content .status__content__text ol p,.status__content .e-content ul p,.status__content .e-content ol p{margin:0}.status__content .status__content__text ul,.status__content .e-content ul{list-style-type:disc}.status__content .status__content__text ol,.status__content .e-content ol{list-style-type:decimal}.status__content a{color:#d8a070;text-decoration:none}.status__content a:hover{text-decoration:underline}.status__content a:hover .fa{color:#353a48}.status__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span{text-decoration:underline}.status__content a .fa{color:#444b5d}.status__content .status__content__spoiler{display:none}.status__content .status__content__spoiler.status__content__spoiler--visible{display:block}.status__content a.unhandled-link{color:#217aba}.status__content a.unhandled-link .link-origin-tag{color:#ca8f04;font-size:.8em}.status__content .status__content__spoiler-link{background:#7a96ae}.status__content .status__content__spoiler-link:hover{background:#708ea9;text-decoration:none}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:#7a96ae;border:none;color:#000;font-weight:500;font-size:11px;padding:0 5px;text-transform:uppercase;line-height:inherit;cursor:pointer;vertical-align:bottom}.status__content__spoiler-link:hover{background:#708ea9;text-decoration:none}.status__content__spoiler-link .status__content__spoiler-icon{display:inline-block;margin:0 0 0 5px;border-left:1px solid currentColor;padding:0 0 0 4px;font-size:16px;vertical-align:-2px}.notif-cleaning .status,.notif-cleaning .notification-follow,.notif-cleaning .notification-follow-request{padding-right:4.5rem}.status__wrapper--filtered{color:#444b5d;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #c0cdd9}.status__prepend-icon-wrapper{left:-26px;position:absolute}.notification-follow,.notification-follow-request{position:relative;border-bottom:1px solid #c0cdd9}.notification-follow .account,.notification-follow-request .account{border-bottom:0 none}.focusable:focus{outline:0;background:#ccd7e0}.focusable:focus.status.status-direct:not(.read){background:#b3c3d1}.focusable:focus.status.status-direct:not(.read).muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#c0cdd9}.status{padding:10px 14px;position:relative;height:auto;border-bottom:1px solid #c0cdd9;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:28px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#c0cdd9;border-bottom-color:#b3c3d1}.status.light .status__relative-time{color:#282c37}.status.light .status__display-name{color:#000}.status.light .display-name strong{color:#000}.status.light .display-name span{color:#282c37}.status.light .status__content{color:#000}.status.light .status__content a{color:#2b90d9}.status.light .status__content a.status__content__spoiler-link{color:#000;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#8199ba}.status.collapsed{background-position:center;background-size:cover;user-select:none}.status.collapsed.has-background::before{display:block;position:absolute;left:0;right:0;top:0;bottom:0;background-image:linear-gradient(to bottom, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.65) 24px, rgba(0, 0, 0, 0.8));pointer-events:none;content:\"\"}.status.collapsed .display-name:hover .display-name__html{text-decoration:none}.status.collapsed .status__content{height:20px;overflow:hidden;text-overflow:ellipsis;padding-top:0}.status.collapsed .status__content:after{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background:linear-gradient(rgba(217, 225, 232, 0), #d9e1e8);pointer-events:none}.status.collapsed .status__content a:hover{text-decoration:none}.status.collapsed:focus>.status__content:after{background:linear-gradient(rgba(204, 215, 224, 0), #ccd7e0)}.status.collapsed.status-direct:not(.read)>.status__content:after{background:linear-gradient(rgba(192, 205, 217, 0), #c0cdd9)}.status.collapsed .notification__message{margin-bottom:0}.status.collapsed .status__info .notification__message>span{white-space:nowrap}.status .notification__message{margin:-10px 0px 10px 0}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#444a5e}.status__relative-time{display:inline-block;flex-grow:1;color:#444b5d;font-size:14px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status__display-name{color:#444b5d;overflow:hidden}.status__info__account .status__display-name{display:block;max-width:100%}.status__info{display:flex;justify-content:space-between;font-size:15px}.status__info>span{text-overflow:ellipsis;overflow:hidden}.status__info .notification__message>span{word-wrap:break-word}.status__info__icons{display:flex;align-items:center;height:1em;color:#606984}.status__info__icons .status__media-icon,.status__info__icons .status__visibility-icon,.status__info__icons .status__reply-icon{padding-left:2px;padding-right:2px}.status__info__icons .status__collapse-button.active>.fa-angle-double-up{transform:rotate(-180deg)}.no-reduce-motion .status__collapse-button.activate>.fa-angle-double-up{animation:spring-flip-in 1s linear}.no-reduce-motion .status__collapse-button.deactivate>.fa-angle-double-up{animation:spring-flip-out 1s linear}.status__info__account{display:flex;align-items:center;justify-content:flex-start}.status-check-box{border-bottom:1px solid #282c37;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-top:-10px;margin-bottom:10px;margin-left:58px;color:#444b5d;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#444b5d}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#606984}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#ccd7e0;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#444b5d;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#000}.muted .emojione{opacity:.5}a.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#282c37;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#000}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{flex:none;margin:0 10px 0 0;height:48px;width:48px}.muted .status__content,.muted .status__content p,.muted .status__content a,.muted .status__content__text{color:#444b5d}.muted .status__display-name strong{color:#444b5d}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#3c5063;color:#000}.muted a.status__content__spoiler-link:hover{background:#7d98b0;text-decoration:none}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.status-card{display:flex;font-size:14px;border:1px solid #c0cdd9;border-radius:4px;color:#444b5d;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#282c37;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#000}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}.status-card__actions a .fa,.status-card__actions a:hover .fa{color:inherit}a.status-card{cursor:pointer}a.status-card:hover{background:#c0cdd9}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#282c37;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#282c37}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#c0cdd9;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#ccd7e0}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#ccd7e0}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.attachment-list{display:flex;font-size:14px;border:1px solid #c0cdd9;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#444b5d;padding:8px 18px;cursor:default;border-right:1px solid #c0cdd9;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#444b5d;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#444b5d}.status__wrapper--filtered__button{display:inline;color:#217aba;border:0;background:transparent;padding:0;font-size:inherit;line-height:inherit}.status__wrapper--filtered__button:hover,.status__wrapper--filtered__button:active{text-decoration:underline}.modal-container--preloader{background:#c0cdd9}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.onboarding-modal,.error-modal,.embed-modal{background:#282c37;color:#000;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.onboarding-modal__pager{height:80vh;width:80vw;max-width:520px;max-height:470px}.onboarding-modal__pager .react-swipeable-view-container>div{width:100%;height:100%;box-sizing:border-box;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;user-select:text}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}@media screen and (max-width: 550px){.onboarding-modal{width:100%;height:100%;border-radius:0}.onboarding-modal__pager{width:100%;height:auto;max-width:none;max-height:none;flex:1 1 auto}}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#393f4f;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#282c37;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#313543;background-color:#4a5266}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#000}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#000}.error-modal__footer{justify-content:center}.onboarding-modal__dots{flex:1 1 auto;display:flex;align-items:center;justify-content:center}.onboarding-modal__dot{width:14px;height:14px;border-radius:14px;background:#4a5266;margin:0 3px;cursor:pointer}.onboarding-modal__dot:hover{background:#4f576c}.onboarding-modal__dot.active{cursor:default;background:#5c657e}.onboarding-modal__page__wrapper{pointer-events:none;padding:25px;padding-bottom:0}.onboarding-modal__page__wrapper.onboarding-modal__page__wrapper--active{pointer-events:auto}.onboarding-modal__page{cursor:default;line-height:21px}.onboarding-modal__page h1{font-size:18px;font-weight:500;color:#000;margin-bottom:20px}.onboarding-modal__page a{color:#2b90d9}.onboarding-modal__page a:hover,.onboarding-modal__page a:focus,.onboarding-modal__page a:active{color:#2485cb}.onboarding-modal__page .navigation-bar a{color:inherit}.onboarding-modal__page p{font-size:16px;color:#282c37;margin-top:10px;margin-bottom:10px}.onboarding-modal__page p:last-child{margin-bottom:0}.onboarding-modal__page p strong{font-weight:500;background:#d9e1e8;color:#282c37;border-radius:4px;font-size:14px;padding:3px 6px}.onboarding-modal__page p strong:lang(ja){font-weight:700}.onboarding-modal__page p strong:lang(ko){font-weight:700}.onboarding-modal__page p strong:lang(zh-CN){font-weight:700}.onboarding-modal__page p strong:lang(zh-HK){font-weight:700}.onboarding-modal__page p strong:lang(zh-TW){font-weight:700}.onboarding-modal__page__wrapper-0{height:100%;padding:0}.onboarding-modal__page-one__lead{padding:65px;padding-top:45px;padding-bottom:0;margin-bottom:10px}.onboarding-modal__page-one__lead h1{font-size:26px;line-height:36px;margin-bottom:8px}.onboarding-modal__page-one__lead p{margin-bottom:0}.onboarding-modal__page-one__extra{padding-right:65px;padding-left:185px;text-align:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#000;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#d9e1e8;color:#282c37;font-weight:500;padding:10px;border-radius:4px}.onboarding-modal__page-two p,.onboarding-modal__page-three p,.onboarding-modal__page-four p,.onboarding-modal__page-five p{text-align:left}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{background:#f2f5f7;color:#282c37;margin-bottom:20px;border-radius:4px;padding:10px;text-align:center;font-size:14px;box-shadow:1px 2px 6px rgba(0,0,0,.3)}.onboarding-modal__page-two .figure .onboarding-modal__image,.onboarding-modal__page-three .figure .onboarding-modal__image,.onboarding-modal__page-four .figure .onboarding-modal__image,.onboarding-modal__page-five .figure .onboarding-modal__image{border-radius:4px;margin-bottom:10px}.onboarding-modal__page-two .figure.non-interactive,.onboarding-modal__page-three .figure.non-interactive,.onboarding-modal__page-four .figure.non-interactive,.onboarding-modal__page-five .figure.non-interactive{pointer-events:none;text-align:left}.onboarding-modal__page-four__columns .row{display:flex;margin-bottom:20px}.onboarding-modal__page-four__columns .row>div{flex:1 1 0;margin:0 10px}.onboarding-modal__page-four__columns .row>div:first-child{margin-left:0}.onboarding-modal__page-four__columns .row>div:last-child{margin-right:0}.onboarding-modal__page-four__columns .row>div p{text-align:center}.onboarding-modal__page-four__columns .row:last-child{margin-bottom:0}.onboarding-modal__page-four__columns .column-header{color:#000}@media screen and (max-width: 320px)and (max-height: 600px){.onboarding-modal__page p{font-size:14px;line-height:20px}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{font-size:12px;margin-bottom:10px}.onboarding-modal__page-four__columns .row{margin-bottom:10px}.onboarding-modal__page-four__columns .column-header{padding:5px;font-size:12px}}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.doodle-modal,.favourite-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#17191f;color:#000;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__relative-time,.doodle-modal .status__relative-time,.favourite-modal .status__relative-time,.confirmation-modal .status__relative-time,.report-modal .status__relative-time,.actions-modal .status__relative-time,.mute-modal .status__relative-time,.block-modal .status__relative-time{color:#444b5d;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.boost-modal .status__display-name,.doodle-modal .status__display-name,.favourite-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:flex}.boost-modal .status__avatar,.doodle-modal .status__avatar,.favourite-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:48px;width:48px}.boost-modal .status__content__spoiler-link,.doodle-modal .status__content__spoiler-link,.favourite-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#17191f}.actions-modal .status{background:#fff;border-bottom-color:#282c37;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#282c37}.boost-modal__container,.favourite-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status,.favourite-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.doodle-modal__action-bar,.favourite-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#282c37;padding:10px;line-height:36px}.boost-modal__action-bar>div,.doodle-modal__action-bar>div,.favourite-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#282c37;padding-right:10px}.boost-modal__action-bar .button,.doodle-modal__action-bar .button,.favourite-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header,.favourite-modal__status-header{font-size:15px}.boost-modal__status-time,.favourite-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #282c37}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#2b90d9}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #282c37;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #282c37;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #393f4f}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #282c37;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#000;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#000;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal strong{display:block;font-weight:500}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#000;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#2b90d9;color:#000}.actions-modal ul li:not(:empty) a>.react-toggle,.actions-modal ul li:not(:empty) a>.icon,.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#282c37;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#313543;background-color:transparent}.confirmation-modal__do_not_ask_again{padding-left:20px;padding-right:20px;padding-bottom:10px;font-size:14px}.confirmation-modal__do_not_ask_again label,.confirmation-modal__do_not_ask_again input{vertical-align:middle}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#000;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#d9e1e8;color:#000;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#ccd7e0}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#000;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.filtered-status-info{text-align:start}.filtered-status-info .spoiler__text{margin-top:20px}.filtered-status-info .account{border-bottom:0}.filtered-status-info .account__display-name strong{color:#000}.filtered-status-info .status__content__spoiler{display:none}.filtered-status-info .status__content__spoiler--visible{display:flex}.filtered-status-info ul{padding:10px;margin-left:12px;list-style:disc inside}.filtered-status-info .filtered-status-edit-link{color:#606984;text-decoration:none}.filtered-status-info .filtered-status-edit-link:hover{text-decoration:underline}.composer{padding:10px}.character-counter{cursor:default;font-family:sans-serif,sans-serif;font-size:14px;font-weight:600;color:#282c37}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .composer--spoiler{transition:height .4s ease,opacity .4s ease}.composer--spoiler{height:0;transform-origin:bottom;opacity:0}.composer--spoiler.composer--spoiler--visible{height:36px;margin-bottom:11px;opacity:1}.composer--spoiler input{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px;padding:10px;width:100%;outline:0;color:#000;background:#fff;font-size:14px;font-family:inherit;resize:vertical}.composer--spoiler input::placeholder{color:#444b5d}.composer--spoiler input:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .composer--spoiler input{font-size:16px}}.single-column .composer--spoiler input{font-size:16px}.composer--warning{color:#000;margin-bottom:15px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.composer--warning a{color:#282c37;font-weight:500;text-decoration:underline}.composer--warning a:active,.composer--warning a:focus,.composer--warning a:hover{text-decoration:none}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#2b90d9}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-left:5px;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#2b90d9;background:#2b90d9}.composer--reply{margin:0 0 10px;border-radius:4px;padding:10px;background:#9baec8;min-height:23px;overflow-y:auto;flex:0 2 auto}.composer--reply>header{margin-bottom:5px;overflow:hidden}.composer--reply>header>.account.small{color:#000}.composer--reply>header>.cancel{float:right;line-height:24px}.composer--reply>.content{position:relative;margin:10px 0;padding:0 12px;font-size:14px;line-height:20px;color:#000;word-wrap:break-word;font-weight:400;overflow:visible;white-space:pre-wrap;padding-top:5px;overflow:hidden}.composer--reply>.content p,.composer--reply>.content pre,.composer--reply>.content blockquote{margin-bottom:20px;white-space:pre-wrap}.composer--reply>.content p:last-child,.composer--reply>.content pre:last-child,.composer--reply>.content blockquote:last-child{margin-bottom:0}.composer--reply>.content h1,.composer--reply>.content h2,.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{margin-top:20px;margin-bottom:20px}.composer--reply>.content h1,.composer--reply>.content h2{font-weight:700;font-size:18px}.composer--reply>.content h2{font-size:16px}.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{font-weight:500}.composer--reply>.content blockquote{padding-left:10px;border-left:3px solid #000;color:#000;white-space:normal}.composer--reply>.content blockquote p:last-child{margin-bottom:0}.composer--reply>.content b,.composer--reply>.content strong{font-weight:700}.composer--reply>.content em,.composer--reply>.content i{font-style:italic}.composer--reply>.content sub{font-size:smaller;text-align:sub}.composer--reply>.content ul,.composer--reply>.content ol{margin-left:1em}.composer--reply>.content ul p,.composer--reply>.content ol p{margin:0}.composer--reply>.content ul{list-style-type:disc}.composer--reply>.content ol{list-style-type:decimal}.composer--reply>.content a{color:#282c37;text-decoration:none}.composer--reply>.content a:hover{text-decoration:underline}.composer--reply>.content a.mention:hover{text-decoration:none}.composer--reply>.content a.mention:hover span{text-decoration:underline}.composer--reply .emojione{width:20px;height:20px;margin:-5px 0 0}.emoji-picker-dropdown{position:absolute;right:5px;top:5px}.emoji-picker-dropdown ::-webkit-scrollbar-track:hover,.emoji-picker-dropdown ::-webkit-scrollbar-track:active{background-color:rgba(255,255,255,.3)}.compose-form__autosuggest-wrapper,.autosuggest-input{position:relative;width:100%}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.autosuggest-input label .autosuggest-textarea__textarea{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px 4px 0 0;padding:10px 32px 0 10px;width:100%;min-height:100px;outline:0;color:#000;background:#fff;font-size:14px;font-family:inherit;resize:none;scrollbar-color:initial}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::placeholder,.autosuggest-input label .autosuggest-textarea__textarea::placeholder{color:#444b5d}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::-webkit-scrollbar,.autosuggest-input label .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:disabled,.autosuggest-input label .autosuggest-textarea__textarea:disabled{background:#282c37}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:focus,.autosuggest-input label .autosuggest-textarea__textarea:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}}.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}@media screen and (max-width: 600px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.composer--textarea--icons{display:block;position:absolute;top:29px;right:5px;bottom:5px;overflow:hidden}.composer--textarea--icons>.textarea_icon{display:block;margin:2px 0 0 2px;width:24px;height:24px;color:#282c37;font-size:18px;line-height:24px;text-align:center;opacity:.8}.autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.autosuggest-textarea__suggestions{display:block;position:absolute;box-sizing:border-box;top:100%;border-radius:0 0 4px 4px;padding:6px;width:100%;color:#000;background:#282c37;box-shadow:4px 4px 6px rgba(0,0,0,.4);font-size:14px;z-index:99;display:none}.autosuggest-textarea__suggestions--visible{display:block}.autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.autosuggest-textarea__suggestions__item:hover,.autosuggest-textarea__suggestions__item:focus,.autosuggest-textarea__suggestions__item:active,.autosuggest-textarea__suggestions__item.selected{background:#3d4455}.autosuggest-textarea__suggestions__item>.account,.autosuggest-textarea__suggestions__item>.emoji,.autosuggest-textarea__suggestions__item>.autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.autosuggest-textarea__suggestions__item .autosuggest-hashtag{justify-content:space-between}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item .autosuggest-hashtag strong{font-weight:500}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item>.account.small .display-name>span{color:#282c37}.composer--upload_form{overflow:hidden}.composer--upload_form>.content{display:flex;flex-direction:row;flex-wrap:wrap;font-family:inherit;padding:5px;overflow:hidden}.composer--upload_form--item{flex:1 1 0;margin:5px;min-width:40%}.composer--upload_form--item>div{position:relative;border-radius:4px;height:140px;width:100%;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;overflow:hidden}.composer--upload_form--item>div textarea{display:block;position:absolute;box-sizing:border-box;bottom:0;left:0;margin:0;border:0;padding:10px;width:100%;color:#282c37;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);font-size:14px;font-family:inherit;font-weight:500;opacity:0;z-index:2;transition:opacity .1s ease}.composer--upload_form--item>div textarea:focus{color:#fff}.composer--upload_form--item>div textarea::placeholder{opacity:.54;color:#282c37}.composer--upload_form--item>div>.close{mix-blend-mode:difference}.composer--upload_form--item.active>div textarea{opacity:1}.composer--upload_form--actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.composer--upload_form--actions .icon-button{flex:0 1 auto;color:#282c37;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.composer--upload_form--actions .icon-button:hover,.composer--upload_form--actions .icon-button:focus,.composer--upload_form--actions .icon-button:active{color:#1f232b}.composer--upload_form--actions.active{opacity:1}.composer--upload_form--progress{display:flex;padding:10px;color:#282c37;overflow:hidden}.composer--upload_form--progress>.fa{font-size:34px;margin-right:10px}.composer--upload_form--progress>.message{flex:1 1 auto}.composer--upload_form--progress>.message>span{display:block;font-size:12px;font-weight:500;text-transform:uppercase}.composer--upload_form--progress>.message>.backdrop{position:relative;margin-top:5px;border-radius:6px;width:100%;height:6px;background:#3c5063}.composer--upload_form--progress>.message>.backdrop>.tracker{position:absolute;top:0;left:0;height:6px;border-radius:6px;background:#2b90d9}.compose-form__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.composer--options-wrapper{padding:10px;background:#fff;border-radius:0 0 4px 4px;height:27px;display:flex;justify-content:space-between;flex:0 0 auto}.composer--options{display:flex;flex:0 0 auto}.composer--options>*{display:inline-block;box-sizing:content-box;padding:0 3px;height:27px;line-height:27px;vertical-align:bottom}.composer--options>hr{display:inline-block;margin:0 3px;border-width:0 0 0 1px;border-style:none none none solid;border-color:transparent transparent transparent #fff;padding:0;width:0;height:27px;background:transparent}.compose--counter-wrapper{align-self:center;margin-right:4px}.composer--options--dropdown.open>.value{border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1);color:#000;background:#2b90d9;transition:none}.composer--options--dropdown.open.top>.value{border-radius:0 0 4px 4px;box-shadow:0 4px 4px rgba(0,0,0,.1)}.composer--options--dropdown--content{position:absolute;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);background:#fff;overflow:hidden;transform-origin:50% 0}.composer--options--dropdown--content--item{display:flex;align-items:center;padding:10px;color:#000;cursor:pointer}.composer--options--dropdown--content--item>.content{flex:1 1 auto;color:#282c37}.composer--options--dropdown--content--item>.content:not(:first-child){margin-left:10px}.composer--options--dropdown--content--item>.content strong{display:block;color:#000;font-weight:500}.composer--options--dropdown--content--item:hover,.composer--options--dropdown--content--item.active{background:#2b90d9;color:#000}.composer--options--dropdown--content--item:hover>.content,.composer--options--dropdown--content--item.active>.content{color:#000}.composer--options--dropdown--content--item:hover>.content strong,.composer--options--dropdown--content--item.active>.content strong{color:#000}.composer--options--dropdown--content--item.active:hover{background:#2485cb}.composer--publisher{padding-top:10px;text-align:right;white-space:nowrap;overflow:hidden;justify-content:flex-end;flex:0 0 auto}.composer--publisher>.primary{display:inline-block;margin:0;padding:0 10px;text-align:center}.composer--publisher>.side_arm{display:inline-block;margin:0 2px;padding:0;width:36px;text-align:center}.composer--publisher.over>.count{color:#ff5050}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#f2f5f7;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#d9e1e8}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.column{overflow:hidden}.column-back-button{box-sizing:border-box;width:100%;background:#ccd7e0;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;border:0;text-align:unset;padding:15px;margin:0;z-index:3}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#ccd7e0;border:0;font-family:inherit;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.column-link{background:#c0cdd9;color:#000;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#b6c5d3}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#282c37}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#000}.column-link--transparent.active{color:#2b90d9}.column-link__icon{display:inline-block;margin-right:5px}.column-subheading{background:#d9e1e8;color:#444b5d;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.column-header__wrapper{position:relative;flex:0 0 auto}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;top:35px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(43, 144, 217, 0.23) 0%, rgba(43, 144, 217, 0) 60%)}.column-header{display:flex;font-size:16px;background:#ccd7e0;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden}.column-header>button{margin:0;border:none;padding:15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#2b90d9}.column-header.active{box-shadow:0 1px 0 rgba(43,144,217,.3)}.column-header.active .column-header__icon{color:#2b90d9;text-shadow:0 0 10px rgba(43,144,217,.4)}.column-header:focus,.column-header:active{outline:0}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.wide .columns-area:not(.columns-area--mobile) .column{flex:auto;min-width:330px;max-width:400px}.column>.scrollable{background:#d9e1e8}.column-header__buttons{height:48px;display:flex;margin-left:0}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button,.column-header__notif-cleaning-buttons button{background:#ccd7e0;border:0;color:#282c37;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover,.column-header__notif-cleaning-buttons button:hover{color:#191b22}.column-header__button.active,.column-header__notif-cleaning-buttons button.active{color:#000;background:#c0cdd9}.column-header__button.active:hover,.column-header__notif-cleaning-buttons button.active:hover{color:#000;background:#c0cdd9}.column-header__button:focus,.column-header__notif-cleaning-buttons button:focus{text-shadow:0 0 4px #419bdd}.column-header__notif-cleaning-buttons{display:flex;align-items:stretch;justify-content:space-around}.column-header__notif-cleaning-buttons button{background:transparent;text-align:center;padding:10px 0;white-space:pre-wrap}.column-header__notif-cleaning-buttons b{font-weight:bold}.column-header__collapsible-inner.nopad-drawer{padding:0}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#282c37;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #b3c3d1;margin:10px 0}.column-header__collapsible.ncd{transition:none}.column-header__collapsible.ncd.collapsed{max-height:0;opacity:.7}.column-header__collapsible-inner{background:#c0cdd9;padding:15px}.column-header__setting-btn:hover{color:#282c37;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.column-header__title{display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header__icon{display:inline-block;margin-right:5px}.empty-column-indicator,.error-column{color:#444b5d;background:#d9e1e8;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column{contain:strict}}.empty-column-indicator>span,.error-column>span{max-width:400px}.empty-column-indicator a,.error-column a{color:#2b90d9;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover{text-decoration:underline}.error-column{flex-direction:column}.single-column.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}@media screen and (max-width: 415px){.auto-columns.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}}@media screen and (max-width: 415px){.auto-columns.navbar-under .react-swipeable-view-container .columns-area,.single-column.navbar-under .react-swipeable-view-container .columns-area{height:100% !important}}.column-inline-form{padding:7px 15px;padding-right:5px;display:flex;justify-content:flex-start;align-items:center;background:#ccd7e0}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%;margin-bottom:6px}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 5px}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#444b5d;background:#d9e1e8;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#444b5d}.regeneration-indicator__label span{font-size:15px;font-weight:400}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#fff;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#ccd7e0;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#f2f5f7;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#000;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#d9e1e8;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #c0cdd9;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.filter-form{background:#d9e1e8}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#217aba;background:#217aba}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#d9e1e8;color:#282c37;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#1f232b}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#ccd7e0}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:color,transform,opacity;font-size:18px;width:18px;height:18px;color:#282c37;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(0deg)}.search__icon .fa-search.active{pointer-events:auto;opacity:.3}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#606984;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#51596f}.search-results__header{color:#444b5d;background:#d3dce4;border-bottom:1px solid #e6ebf0;padding:15px 10px;font-size:14px;font-weight:500}.search-results__info{padding:20px;color:#282c37;text-align:center}.trends__header{color:#444b5d;background:#d3dce4;border-bottom:1px solid #e6ebf0;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #c0cdd9}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#444b5d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#282c37;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#282c37}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(43,144,217,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#2380c3 !important}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(40,44,55,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.emoji-button{display:block;font-size:24px;line-height:24px;margin-left:2px;width:24px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px;margin-top:2px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.doodle-modal{width:unset}.doodle-modal__container{background:#d9e1e8;text-align:center;line-height:0}.doodle-modal__container canvas{border:5px solid #d9e1e8}.doodle-modal__action-bar .filler{flex-grow:1;margin:0;padding:0}.doodle-modal__action-bar .doodle-toolbar{line-height:1;display:flex;flex-direction:column;flex-grow:0;justify-content:space-around}.doodle-modal__action-bar .doodle-toolbar.with-inputs label{display:inline-block;width:70px;text-align:right;margin-right:2px}.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=number],.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=text]{width:40px}.doodle-modal__action-bar .doodle-toolbar.with-inputs span.val{display:inline-block;text-align:left;width:50px}.doodle-modal__action-bar .doodle-palette{padding-right:0 !important;border:1px solid #000;line-height:.2rem;flex-grow:0;background:#fff}.doodle-modal__action-bar .doodle-palette button{appearance:none;width:1rem;height:1rem;margin:0;padding:0;text-align:center;color:#000;text-shadow:0 0 1px #fff;cursor:pointer;box-shadow:inset 0 0 1px rgba(255,255,255,.5);border:1px solid #000;outline-offset:-1px}.doodle-modal__action-bar .doodle-palette button.foreground{outline:1px dashed #fff}.doodle-modal__action-bar .doodle-palette button.background{outline:1px dashed red}.doodle-modal__action-bar .doodle-palette button.foreground.background{outline:1px dashed red;border-color:#fff}.drawer{width:300px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden;padding:10px 5px;flex:none}.drawer:first-child{padding-left:10px}.drawer:last-child{padding-right:10px}@media screen and (max-width: 630px){.auto-columns .drawer{flex:auto}}.single-column .drawer{flex:auto}@media screen and (max-width: 630px){.auto-columns .drawer,.auto-columns .drawer:first-child,.auto-columns .drawer:last-child,.single-column .drawer,.single-column .drawer:first-child,.single-column .drawer:last-child{padding:0}}.wide .drawer{min-width:300px;max-width:400px;flex:1 1 200px}@media screen and (max-width: 630px){:root .auto-columns .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}}:root .single-column .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}.react-swipeable-view-container .drawer{height:100%}.drawer--header{display:flex;flex-direction:row;margin-bottom:10px;flex:none;background:#c0cdd9;font-size:16px}.drawer--header>*{display:block;box-sizing:border-box;border-bottom:2px solid transparent;padding:15px 5px 13px;height:48px;flex:1 1 auto;color:#282c37;text-align:center;text-decoration:none;cursor:pointer}.drawer--header a{transition:background 100ms ease-in}.drawer--header a:focus,.drawer--header a:hover{outline:none;background:#cfd9e2;transition:background 200ms ease-out}.search{position:relative;margin-bottom:10px;flex:none}@media screen and (max-width: 415px){.auto-columns .search,.single-column .search{margin-bottom:0}}@media screen and (max-width: 630px){.auto-columns .search{font-size:16px}}.single-column .search{font-size:16px}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#444b5d;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#444b5d;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#000}.drawer--account{padding:10px;color:#282c37;display:flex;align-items:center}.drawer--account a{color:inherit;text-decoration:none}.drawer--account .acct{display:block;color:#282c37;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;overflow:hidden}.drawer--results{background:#d9e1e8;overflow-x:hidden;overflow-y:auto}.drawer--results>header{color:#444b5d;background:#d3dce4;padding:15px;font-weight:500;font-size:16px;cursor:default}.drawer--results>header .fa{display:inline-block;margin-right:5px}.drawer--results>section{margin-bottom:5px}.drawer--results>section h5{background:#e6ebf0;border-bottom:1px solid #c0cdd9;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#444b5d}.drawer--results>section h5 .fa{display:inline-block;margin-right:5px}.drawer--results>section .account:last-child,.drawer--results>section>div:last-child .status{border-bottom:0}.drawer--results>section>.hashtag{display:block;padding:10px;color:#282c37;text-decoration:none}.drawer--results>section>.hashtag:hover,.drawer--results>section>.hashtag:active,.drawer--results>section>.hashtag:focus{color:#1f232b;text-decoration:underline}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#b0c0cf;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%}.drawer__inner.darker{background:#d9e1e8}.drawer__inner__mastodon{background:#b0c0cf url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:100%;height:100%;pointer-events:none;user-drag:none;user-select:none}.drawer__inner__mastodon>.mastodon{display:block;width:100%;height:100%;border:none;cursor:inherit}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#b0c0cf;font-size:13px;text-align:left}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(255,255,255,.5)}.video-error-cover{align-items:center;background:#fff;color:#000;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#fff;color:#282c37;border:0;width:100%;height:100%}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{color:#17191f}.status__content>.media-spoiler{margin-top:15px}.media-spoiler.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:500}.media-gallery__gifv__label{display:block;position:absolute;color:#000;background:rgba(255,255,255,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv.autoplay .media-gallery__gifv__label{display:none}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{height:100%;display:flex;flex-direction:column}.media-gallery__audio span{text-align:center;color:#282c37;display:flex;height:100%;align-items:center}.media-gallery__audio span p{width:100%}.media-gallery__audio audio{width:100%}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%;height:110px}.media-gallery.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-gallery__item{border:none;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.full-width .media-gallery__item{border-radius:0}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item.letterbox{background:#000}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#282c37;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%;object-fit:contain}.media-gallery__item-thumbnail:not(.letterbox),.media-gallery__item-thumbnail img:not(.letterbox){height:100%;object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#fff}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%;display:flex;justify-content:center}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;width:100%;position:relative;z-index:1;object-fit:contain;user-select:none}.media-gallery__item-gifv-thumbnail:not(.letterbox){height:100%;object-fit:cover}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(255,255,255,.5);box-sizing:border-box;border:0;color:#000;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#282c37}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#2b90d9}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#f2f5f7;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #ccd7e0;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(33,122,186,.5)}.audio-player__wave-placeholder{background-color:#a6b9c9}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#f2f5f7;border-top:1px solid #ccd7e0;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.detailed-status .video-player{width:100%;height:100%}.video-player.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.video-player video{max-width:100vw;max-height:80vh;z-index:1;position:relative}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#282c37;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#191b22}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons-bar .video-player__download__icon .fa,.video-player__buttons-bar .video-player__download__icon:active .fa,.video-player__buttons-bar .video-player__download__icon:hover .fa,.video-player__buttons-bar .video-player__download__icon:focus .fa{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#217aba}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#217aba;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#217aba}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#217aba;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.sensitive-info{display:flex;flex-direction:row;align-items:center;position:absolute;top:4px;left:4px;z-index:100}.sensitive-marker{margin:0 3px;border-radius:2px;padding:2px 6px;color:rgba(0,0,0,.8);background:rgba(255,255,255,.5);font-size:12px;line-height:18px;text-transform:uppercase;opacity:.9;transition:opacity .1s ease}.media-gallery:hover .sensitive-marker{opacity:1}.list-editor{background:#d9e1e8;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#b0c0cf;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#d9e1e8;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#b0c0cf}.list-adder__lists{background:#b0c0cf;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #c0cdd9}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.emoji-mart{font-size:13px;display:inline-block;color:#000}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #393f4f}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#282c37}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#282c37;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#313543}.emoji-mart-anchor-selected{color:#2b90d9}.emoji-mart-anchor-selected:hover{color:#3c99dc}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:0}.emoji-mart-anchor-bar{position:absolute;bottom:-3px;left:0;width:100%;height:3px;background-color:#3897db}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(255,255,255,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(40,44,55,.3);color:#000;border:1px solid #282c37;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(40,44,55,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#444b5d}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.glitch.local-settings{position:relative;display:flex;flex-direction:row;background:#282c37;color:#000;border-radius:8px;height:80vh;width:80vw;max-width:740px;max-height:450px;overflow:hidden}.glitch.local-settings label,.glitch.local-settings legend{display:block;font-size:14px}.glitch.local-settings .boolean label,.glitch.local-settings .radio_buttons label{position:relative;padding-left:28px;padding-top:3px}.glitch.local-settings .boolean label input,.glitch.local-settings .radio_buttons label input{position:absolute;left:0;top:0}.glitch.local-settings span.hint{display:block;color:#282c37}.glitch.local-settings h1{font-size:18px;font-weight:500;line-height:24px;margin-bottom:20px}.glitch.local-settings h2{font-size:15px;font-weight:500;line-height:20px;margin-top:20px;margin-bottom:10px}.glitch.local-settings__navigation__item{display:block;padding:15px 20px;color:inherit;background:#17191f;border-bottom:1px #282c37 solid;cursor:pointer;text-decoration:none;outline:none;transition:background .3s}.glitch.local-settings__navigation__item .text-icon-button{color:inherit;transition:unset}.glitch.local-settings__navigation__item:hover{background:#282c37}.glitch.local-settings__navigation__item.active{background:#2b90d9;color:#000}.glitch.local-settings__navigation__item.close,.glitch.local-settings__navigation__item.close:hover{background:#df405a;color:#000}.glitch.local-settings__navigation{background:#17191f;width:212px;font-size:15px;line-height:20px;overflow-y:auto}.glitch.local-settings__page{display:block;flex:auto;padding:15px 20px 15px 20px;width:360px;overflow-y:auto}.glitch.local-settings__page__item{margin-bottom:2px}.glitch.local-settings__page__item.string,.glitch.local-settings__page__item.radio_buttons{margin-top:10px;margin-bottom:10px}@media screen and (max-width: 630px){.glitch.local-settings__navigation{width:40px;flex-shrink:0}.glitch.local-settings__navigation__item{padding:10px}.glitch.local-settings__navigation__item span:last-of-type{display:none}}.error-boundary{color:#000;font-size:15px;line-height:20px}.error-boundary h1{font-size:26px;line-height:36px;font-weight:400;margin-bottom:8px}.error-boundary a{color:#000;text-decoration:underline}.error-boundary ul{list-style:disc;margin-left:0;padding-left:1em}.error-boundary textarea.web_app_crash-stacktrace{width:100%;resize:none;white-space:pre;font-family:monospace,monospace}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.compose-panel .search__icon .fa{top:15px}.compose-panel .drawer--account{flex:0 1 48px}.compose-panel .flex-spacer{background:transparent}.compose-panel .composer{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #ccd7e0;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px;min-height:50px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{padding-top:15px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#3897db;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#227dbe}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.search{margin-bottom:10px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.poll{margin-top:16px;font-size:14px}.poll ul,.e-content .poll ul{margin:0;list-style:none}.poll li{margin-bottom:10px;position:relative}.poll__chart{position:absolute;top:0;left:0;height:100%;display:inline-block;border-radius:4px;background:#c9d3e1}.poll__chart.leading{background:#2b90d9}.poll__text{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__text input[type=radio],.poll__text input[type=checkbox]{display:none}.poll__text .autossugest-input{flex:1 1 auto}.poll__text input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#000;display:block;outline:0;font-family:inherit;background:#fff;border:1px solid #fff;border-radius:4px;padding:6px 10px}.poll__text input[type=text]:focus{border-color:#2b90d9}.poll__text.selectable{cursor:pointer}.poll__text.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-width:4px;background:none}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:52px;font-weight:700;padding:0 10px;padding-left:8px;text-align:right;margin-top:auto;margin-bottom:auto;flex:0 0 52px}.poll__vote__mark{float:left;line-height:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#444b5d}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#444b5d;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(68,75,93,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #fff}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #fff;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{width:100%;flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#2b90d9}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#606984;border-color:#606984;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__text{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#000;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #fff;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#fff}.muted .poll{color:#444b5d}.muted .poll__chart{background:rgba(201,211,225,.2)}.muted .poll__chart.leading{background:rgba(43,144,217,.2)}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:sans-serif,sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#282c37}.rich-formatting a{color:#2b90d9;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#282c37}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#282c37}.rich-formatting em{font-style:italic;color:#282c37}.rich-formatting code{font-size:.85em;background:#f2f5f7;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:sans-serif,sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#282c37}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #ccd7e0;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #ccd7e0;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#282c37}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#444b5d}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#e6ebf0;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:sans-serif,sans-serif;font-size:16px;line-height:28px;color:#000;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#282c37}.information-board__section strong{font-family:sans-serif,sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#f2f5f7;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#282c37;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #ccd7e0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#3d4455}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;width:80px;height:80px;background-size:80px 80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px;border-radius:8%;background-position:50%;background-clip:padding-box}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#000;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#282c37}.landing-page p,.landing-page li{font-family:sans-serif,sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#282c37}.landing-page p a,.landing-page li a{color:#2b90d9;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#131419}.landing-page h1{font-family:sans-serif,sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h1 small{font-family:sans-serif,sans-serif;display:block;font-size:18px;font-weight:400;color:#131419}.landing-page h2{font-family:sans-serif,sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h3{font-family:sans-serif,sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h4{font-family:sans-serif,sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h5{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h6{font-family:sans-serif,sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(60,80,99,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#d9e1e8;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#131419}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px;width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#d9e1e8;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#282c37}.landing-page__short-description h1{font-weight:500;color:#000;margin-bottom:0}.landing-page__short-description h1 small{color:#282c37}.landing-page__short-description h1 small span{color:#282c37}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#000;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#282c37}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#d9e1e8;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:sans-serif,sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#282c37}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#282c37}.landing .simple_form p.lead{color:#282c37;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #c0cdd9}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#444b5d}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #d9e1e8;text-align:left;background:#e6ebf0}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #d9e1e8;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#d9e1e8}.table a{color:#2b90d9;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#d9e1e8;border-top:1px solid #f2f5f7;border-bottom:1px solid #f2f5f7}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #f2f5f7}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #f2f5f7}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:monospace,monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#282c37;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#000}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #f2f5f7;background:#d9e1e8;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #f2f5f7;border-top:0;background:#d9e1e8}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #f2f5f7;border-top:0;background:#e6ebf0}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #f2f5f7}}.batch-table__row:hover{background:#dfe6ec}.batch-table__row:nth-child(even){background:#d9e1e8}.batch-table__row:nth-child(even):hover{background:#d3dce4}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#282c37;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #f2f5f7;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #f2f5f7}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#d9e1e8;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#c0cdd9;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#000;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#282c37;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#b3c3d1}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#282c37;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#000;background-color:#e9eef2;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#dfe6ec;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#e6ebf0;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#000;background-color:#2b90d9;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#2482c7}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #c0cdd9;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#282c37;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#282c37;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#282c37;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #c0cdd9}.admin-wrapper .content h6{font-size:16px;color:#282c37;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#000;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#000;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:none}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#282c37;margin-bottom:20px}.admin-wrapper .content>p strong{color:#000;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(60,80,99,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #ccd7e0;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#2b90d9}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#282c37}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#2b90d9}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#444b5d;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset a{display:inline-block;color:#282c37;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #d9e1e8}.filters .filter-subset a:hover{color:#000;border-bottom:2px solid #c9d4de}.filters .filter-subset a.selected{color:#2b90d9;border-bottom:2px solid #2b90d9}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#282c37}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#2b90d9;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{margin-bottom:20px;line-height:20px}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;padding:10px;background:#d9e1e8;color:#282c37;border-radius:4px 4px 0 0;font-size:14px;position:relative}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#444b5d}.log-entry__extras{background:#c6d2dc;border-radius:0 0 4px 4px;padding:10px;color:#282c37;font-family:monospace,monospace;font-size:12px;word-wrap:break-word;min-height:20px}.log-entry__icon{font-size:28px;margin-right:10px;color:#444b5d}.log-entry__icon__overlay{position:absolute;top:10px;right:10px;width:10px;height:10px;border-radius:50%}.log-entry__icon__overlay.positive{background:#79bd9a}.log-entry__icon__overlay.negative{background:#c1203b}.log-entry__icon__overlay.neutral{background:#2b90d9}.log-entry a,.log-entry .username,.log-entry .target{color:#282c37;text-decoration:none;font-weight:500}.log-entry .diff-old{color:#c1203b}.log-entry .diff-neutral{color:#282c37}.log-entry .diff-new{color:#79bd9a}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#282c37}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#c1203b}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #2b90d9}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#c1203b}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#282c37}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#444b5d}.report-card{background:#d9e1e8;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#282c37;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#17191f}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #e6ebf0}.report-card__summary__item:hover{background:#d3dce4}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#282c37}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#444b5d;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#282c37}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#c0cdd9;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#217aba}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#000}.center-text{text-align:center}.emojione[title=\":wind_blowing_face:\"],.emojione[title=\":white_small_square:\"],.emojione[title=\":white_medium_square:\"],.emojione[title=\":white_medium_small_square:\"],.emojione[title=\":white_large_square:\"],.emojione[title=\":white_circle:\"],.emojione[title=\":waxing_crescent_moon:\"],.emojione[title=\":waving_white_flag:\"],.emojione[title=\":waning_gibbous_moon:\"],.emojione[title=\":waning_crescent_moon:\"],.emojione[title=\":volleyball:\"],.emojione[title=\":thought_balloon:\"],.emojione[title=\":speech_balloon:\"],.emojione[title=\":speaker:\"],.emojione[title=\":sound:\"],.emojione[title=\":snow_cloud:\"],.emojione[title=\":skull_and_crossbones:\"],.emojione[title=\":skull:\"],.emojione[title=\":sheep:\"],.emojione[title=\":rooster:\"],.emojione[title=\":rice_ball:\"],.emojione[title=\":rice:\"],.emojione[title=\":ram:\"],.emojione[title=\":rain_cloud:\"],.emojione[title=\":page_with_curl:\"],.emojione[title=\":mute:\"],.emojione[title=\":moon:\"],.emojione[title=\":loud_sound:\"],.emojione[title=\":lightning:\"],.emojione[title=\":last_quarter_moon_with_face:\"],.emojione[title=\":last_quarter_moon:\"],.emojione[title=\":ice_skate:\"],.emojione[title=\":grey_question:\"],.emojione[title=\":grey_exclamation:\"],.emojione[title=\":goat:\"],.emojione[title=\":ghost:\"],.emojione[title=\":full_moon_with_face:\"],.emojione[title=\":full_moon:\"],.emojione[title=\":fish_cake:\"],.emojione[title=\":first_quarter_moon_with_face:\"],.emojione[title=\":first_quarter_moon:\"],.emojione[title=\":eyes:\"],.emojione[title=\":dove_of_peace:\"],.emojione[title=\":dash:\"],.emojione[title=\":crescent_moon:\"],.emojione[title=\":cloud:\"],.emojione[title=\":chicken:\"],.emojione[title=\":chains:\"],.emojione[title=\":baseball:\"],.emojione[title=\":alien:\"]{filter:drop-shadow(1px 1px 0 #000000) drop-shadow(-1px 1px 0 #000000) drop-shadow(1px -1px 0 #000000) drop-shadow(-1px -1px 0 #000000)}.hicolor-privacy-icons .status__visibility-icon.fa-globe,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-globe{color:#1976d2}.hicolor-privacy-icons .status__visibility-icon.fa-unlock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-unlock{color:#388e3c}.hicolor-privacy-icons .status__visibility-icon.fa-lock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-lock{color:#ffa000}.hicolor-privacy-icons .status__visibility-icon.fa-envelope,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-envelope{color:#d32f2f}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .composer--publisher{text-align:left}body.rtl .boost-modal__status-time,body.rtl .favourite-modal__status-time{float:left}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .setting-meta__label{float:left}body.rtl .status__avatar{margin-left:10px;margin-right:0;left:auto;right:10px}body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:58px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left;text-align:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(249, 250, 251, 0), #f9fafb)}body.rtl .simple_form select{background:#f9fafb url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#ccd7e0;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#c0cdd9}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#000;font-family:sans-serif,sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#282c37;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#282c37;font-weight:500;text-decoration:none}.glitch.local-settings{background:#d9e1e8}.glitch.local-settings__navigation{background:#f2f5f7}.glitch.local-settings__navigation__item{background:#f2f5f7}.glitch.local-settings__navigation__item:hover{background:#d9e1e8}.notification__dismiss-overlay .wrappy{box-shadow:unset}.notification__dismiss-overlay .ckbox{text-shadow:unset}.status.status-direct:not(.read){background:#f2f5f7;border-bottom-color:#fff}.status.status-direct:not(.read).collapsed>.status__content:after{background:linear-gradient(rgba(242, 245, 247, 0), #f2f5f7)}.focusable:focus.status.status-direct:not(.read){background:#e6ebf0}.focusable:focus.status.status-direct:not(.read).collapsed>.status__content:after{background:linear-gradient(rgba(230, 235, 240, 0), #e6ebf0)}.column>.scrollable{background:#fff}.status.collapsed .status__content:after{background:linear-gradient(rgba(255, 255, 255, 0), white)}.drawer__inner{background:#d9e1e8}.drawer__inner__mastodon{background:#d9e1e8 url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto !important}.drawer__inner__mastodon .mastodon{filter:contrast(75%) brightness(75%) !important}.status__content .status__content__spoiler-link{background:#7a96ae}.status__content .status__content__spoiler-link:hover{background:#6a89a5;text-decoration:none}.media-spoiler,.video-player__spoiler,.account-gallery__item a{background:#d9e1e8}.dropdown-menu{background:#d9e1e8}.dropdown-menu__arrow.left{border-left-color:#d9e1e8}.dropdown-menu__arrow.top{border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{border-right-color:#d9e1e8}.dropdown-menu__item a{background:#d9e1e8;color:#282c37}.composer .composer--spoiler input,.composer .compose-form__autosuggest-wrapper textarea{color:#0f151a}.composer .composer--spoiler input:disabled,.composer .compose-form__autosuggest-wrapper textarea:disabled{background:#e6e6e6}.composer .composer--spoiler input::placeholder,.composer .compose-form__autosuggest-wrapper textarea::placeholder{color:#232f39}.composer .composer--options-wrapper{background:#b9c8d5}.composer .composer--options>hr{display:none}.composer .composer--options--dropdown--content--item{color:#9baec8}.composer .composer--options--dropdown--content--item strong{color:#9baec8}.composer--upload_form--actions .icon-button{color:#ededed}.composer--upload_form--actions .icon-button:active,.composer--upload_form--actions .icon-button:focus,.composer--upload_form--actions .icon-button:hover{color:#fff}.composer--upload_form--item>div input{color:#ededed}.composer--upload_form--item>div input::placeholder{color:#e6e6e6}.dropdown-menu__separator{border-bottom-color:#b3c3d1}.status__content a,.reply-indicator__content a{color:#2b90d9}.emoji-mart-bar{border-color:#e6ebf0}.emoji-mart-bar:first-child{background:#b9c8d5}.emoji-mart-search input{background:rgba(217,225,232,.3);border-color:#d9e1e8}.autosuggest-textarea__suggestions{background:#b9c8d5}.autosuggest-textarea__suggestions__item:hover,.autosuggest-textarea__suggestions__item:focus,.autosuggest-textarea__suggestions__item:active,.autosuggest-textarea__suggestions__item.selected{background:#e6ebf0}.react-toggle-track{background:#282c37}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background:#131419}.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background:#56a7e1}.actions-modal,.boost-modal,.doodle-modal,.confirmation-modal,.mute-modal,.block-modal,.report-modal,.embed-modal,.error-modal,.onboarding-modal,.report-modal__comment .setting-text__wrapper,.report-modal__comment .setting-text{background:#fff;border:1px solid #c0cdd9}.report-modal__comment{border-right-color:#c0cdd9}.report-modal__container{border-top-color:#c0cdd9}.boost-modal__action-bar,.doodle-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar,.onboarding-modal__paginator,.error-modal__footer{background:#ecf0f4}.boost-modal__action-bar .onboarding-modal__nav:hover,.doodle-modal__action-bar .onboarding-modal__nav:hover,.boost-modal__action-bar .onboarding-modal__nav:focus,.doodle-modal__action-bar .onboarding-modal__nav:focus,.boost-modal__action-bar .onboarding-modal__nav:active,.doodle-modal__action-bar .onboarding-modal__nav:active,.boost-modal__action-bar .error-modal__nav:hover,.doodle-modal__action-bar .error-modal__nav:hover,.boost-modal__action-bar .error-modal__nav:focus,.doodle-modal__action-bar .error-modal__nav:focus,.boost-modal__action-bar .error-modal__nav:active,.doodle-modal__action-bar .error-modal__nav:active,.confirmation-modal__action-bar .onboarding-modal__nav:hover,.confirmation-modal__action-bar .onboarding-modal__nav:focus,.confirmation-modal__action-bar .onboarding-modal__nav:active,.confirmation-modal__action-bar .error-modal__nav:hover,.confirmation-modal__action-bar .error-modal__nav:focus,.confirmation-modal__action-bar .error-modal__nav:active,.mute-modal__action-bar .onboarding-modal__nav:hover,.mute-modal__action-bar .onboarding-modal__nav:focus,.mute-modal__action-bar .onboarding-modal__nav:active,.mute-modal__action-bar .error-modal__nav:hover,.mute-modal__action-bar .error-modal__nav:focus,.mute-modal__action-bar .error-modal__nav:active,.block-modal__action-bar .onboarding-modal__nav:hover,.block-modal__action-bar .onboarding-modal__nav:focus,.block-modal__action-bar .onboarding-modal__nav:active,.block-modal__action-bar .error-modal__nav:hover,.block-modal__action-bar .error-modal__nav:focus,.block-modal__action-bar .error-modal__nav:active,.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{background-color:#fff}.empty-column-indicator,.error-column{color:#364959}.activity-stream-tabs{background:#fff}.activity-stream-tabs a.active{color:#9baec8}.activity-stream .entry{background:#fff}.activity-stream .status.light .status__content{color:#000}.activity-stream .status.light .display-name strong{color:#000}.accounts-grid .account-grid-card .controls .icon-button{color:#282c37}.accounts-grid .account-grid-card .name a{color:#000}.accounts-grid .account-grid-card .username{color:#282c37}.accounts-grid .account-grid-card .account__header__content{color:#000}.button.logo-button{color:#fff}.button.logo-button svg{fill:#fff}.public-layout .header,.public-layout .public-account-header,.public-layout .public-account-bio{box-shadow:none}.public-layout .header{background:#b3c3d1}.public-layout .public-account-header__image{background:#b3c3d1}.public-layout .public-account-header__image::after{box-shadow:none}.public-layout .public-account-header__tabs__name h1,.public-layout .public-account-header__tabs__name h1 small{color:#fff}.account__section-headline a.active::after{border-color:transparent transparent #fff}.hero-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.moved-account-widget,.memoriam-widget,.activity-stream,.nothing-here,.directory__tag>a,.directory__tag>div{box-shadow:none}.audio-player .video-player__controls button,.audio-player .video-player__time-sep,.audio-player .video-player__time-current,.audio-player .video-player__time-total{color:#000}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Dependent colors\n$black: #000000;\n$white: #ffffff;\n\n$classic-base-color: #282c37;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #2b90d9;\n\n$ui-base-color: $classic-secondary-color !default;\n$ui-base-lighter-color: darken($ui-base-color, 57%);\n$ui-highlight-color: $classic-highlight-color !default;\n$ui-primary-color: $classic-primary-color !default;\n$ui-secondary-color: $classic-base-color !default;\n\n$primary-text-color: $black !default;\n$darker-text-color: $classic-base-color !default;\n$dark-text-color: #444b5d;\n$action-button-color: #606984;\n\n$success-green: lighten(#3c754d, 8%);\n\n$base-overlay-background: $white !default;\n\n$inverted-text-color: $black !default;\n$lighter-text-color: $classic-base-color !default;\n$light-text-color: #444b5d;\n\n$account-background-color: $white !default;\n\n//Invert darkened and lightened colors\n@function darken($color, $amount) {\n @return hsl(hue($color), saturation($color), lightness($color) + $amount);\n}\n\n@function lighten($color, $amount) {\n @return hsl(hue($color), saturation($color), lightness($color) - $amount);\n}\n\n$emojis-requiring-outlines: 'alien' 'baseball' 'chains' 'chicken' 'cloud' 'crescent_moon' 'dash' 'dove_of_peace' 'eyes' 'first_quarter_moon' 'first_quarter_moon_with_face' 'fish_cake' 'full_moon' 'full_moon_with_face' 'ghost' 'goat' 'grey_exclamation' 'grey_question' 'ice_skate' 'last_quarter_moon' 'last_quarter_moon_with_face' 'lightning' 'loud_sound' 'moon' 'mute' 'page_with_curl' 'rain_cloud' 'ram' 'rice' 'rice_ball' 'rooster' 'sheep' 'skull' 'skull_and_crossbones' 'snow_cloud' 'sound' 'speaker' 'speech_balloon' 'thought_balloon' 'volleyball' 'waning_crescent_moon' 'waning_gibbous_moon' 'waving_white_flag' 'waxing_crescent_moon' 'white_circle' 'white_large_square' 'white_medium_small_square' 'white_medium_square' 'white_small_square' 'wind_blowing_face';\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n @return '%23' + unquote($color)\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n @include avatar-size(40px);\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1/3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1/3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n @include avatar-size(120px);\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n @include avatar-radius();\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n","@mixin avatar-radius() {\n border-radius: $ui-avatar-border-size;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size:48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin single-column($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .single-column #{$parent} {\n @content;\n }\n}\n\n@mixin limited-single-column($media, $parent: '&') {\n .auto-columns #{$parent}, .single-column #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n}\n\n@mixin multi-columns($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .multi-columns #{$parent} {\n @content;\n }\n}\n\n@mixin fullwidth-gallery {\n &.full-width {\n margin-left: -14px;\n margin-right: -14px;\n width: inherit;\n max-width: none;\n height: 250px;\n border-radius: 0px;\n }\n}\n\n@mixin search-input() {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: none;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout() {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a; // Padua\n$error-red: #df405a; // Cerise\n$warning-red: #ff5050; // Sunset Orange\n$gold-star: #ca8f04; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: sans-serif !default;\n$font-display: sans-serif !default;\n$font-monospace: monospace !default;\n\n// Avatar border size (8% default, 100% for rounded avatars)\n$ui-avatar-border-size: 8%;\n\n// More variables\n$dismiss-overlay-width: 4rem;\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n padding: 8px 0;\n padding-bottom: 2px;\n margin: initial;\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n position: absolute;\n margin: initial;\n float: initial;\n width: auto;\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n\n// Styling from upstream's WebUI, as public pages use the same layout\n.embed,\n.public-layout {\n .status {\n .status__info {\n font-size: 15px;\n display: initial;\n }\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding: 6px 0;\n padding-right: 25px;\n margin: initial;\n\n .display-name strong {\n display: inline;\n }\n }\n\n .status__avatar {\n height: 48px;\n position: absolute;\n width: 48px;\n margin: initial;\n }\n }\n}\n\n.rtl {\n .embed,\n .public-layout {\n .status {\n padding-left: 10px;\n padding-right: 68px;\n\n .status__info .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .status__relative-time {\n float: left;\n }\n }\n }\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: darken($ui-highlight-color, 3%);\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n transition-property: background-color;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 7%);\n transition: all 200ms ease-out;\n transition-property: background-color;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n color: $darker-text-color;\n text-transform: none;\n background: transparent;\n padding: 3px 15px;\n border-radius: 4px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n transform-origin: 50% 0;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: 0;\n position: absolute;\n\n .fa.star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n a {\n color: inherit;\n text-decoration: inherit;\n }\n\n strong {\n height: 18px;\n font-size: 16px;\n font-weight: 500;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n span {\n display: block;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n > a:hover {\n strong {\n text-decoration: underline;\n }\n }\n\n &.inline {\n padding: 0;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n strong {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n\n span {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n }\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n ul {\n list-style: none;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.static-content {\n padding: 10px;\n padding-top: 20px;\n color: $dark-text-color;\n\n h1 {\n font-size: 16px;\n font-weight: 500;\n margin-bottom: 40px;\n text-align: center;\n }\n\n p {\n font-size: 13px;\n margin-bottom: 20px;\n }\n}\n\n.column,\n.drawer {\n flex: 1 1 100%;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @include multi-columns('screen and (min-width: 631px)') {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $ui-highlight-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n\n span.icon {\n margin-left: 0;\n display: inline;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.getting-started__wrapper,\n.getting_started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.getting-started__wrapper {\n position: relative;\n overflow-y: auto;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n background: $ui-base-color;\n flex: 1 0 auto;\n\n p {\n color: $secondary-text-color;\n }\n\n a {\n color: $dark-text-color;\n }\n\n &__panel {\n height: min-content;\n }\n\n &__panel,\n &__footer {\n padding: 10px;\n padding-top: 20px;\n flex: 0 1 auto;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n color: $darker-text-color;\n background: transparent;\n border: none;\n border-bottom: 2px solid $ui-primary-color;\n box-sizing: border-box;\n display: block;\n font-family: inherit;\n margin-bottom: 10px;\n padding: 7px 0;\n width: 100%;\n\n &:focus,\n &:active {\n color: $primary-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n font-size: 16px;\n }\n\n &.light {\n color: $inverted-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 27%);\n\n &:focus,\n &:active {\n color: $inverted-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.reduce-motion button.icon-button.disabled i.fa-retweet {\n color: darken($action-button-color, 13%);\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.missing-indicator {\n padding-top: 20px + 48px;\n}\n\n.scrollable > div > :first-child .notification__dismiss-overlay > .wrappy {\n border-top: 1px solid $ui-base-color;\n}\n\n.notification__dismiss-overlay {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: -1px;\n padding-left: 15px; // space for the box shadow to be visible\n\n z-index: 999;\n align-items: center;\n justify-content: flex-end;\n cursor: pointer;\n\n display: flex;\n\n .wrappy {\n width: $dismiss-overlay-width;\n align-self: stretch;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: lighten($ui-base-color, 8%);\n border-left: 1px solid lighten($ui-base-color, 20%);\n box-shadow: 0 0 5px black;\n border-bottom: 1px solid $ui-base-color;\n }\n\n .ckbox {\n border: 2px solid $ui-primary-color;\n border-radius: 2px;\n width: 30px;\n height: 30px;\n font-size: 20px;\n color: $darker-text-color;\n text-shadow: 0 0 5px black;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n &:focus {\n outline: 0 !important;\n\n .ckbox {\n box-shadow: 0 0 1px 1px $ui-highlight-color;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: flex;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n align-items: center;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label,\n.setting-radio__label,\n.setting-meta__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.setting-radio {\n display: block;\n line-height: 18px;\n}\n\n.setting-radio__label {\n margin-bottom: 0;\n}\n\n.column-settings__row legend {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-top: 10px;\n}\n\n.setting-radio__input {\n vertical-align: middle;\n}\n\n.setting-meta__label {\n float: right;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n transform-origin: center center;\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.pulse-loading {\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.loading-bar {\n background-color: $ui-highlight-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.icon-badge-wrapper {\n position: relative;\n}\n\n.icon-badge {\n position: absolute;\n display: block;\n right: -.25em;\n top: -.25em;\n background-color: $ui-highlight-color;\n border-radius: 50%;\n font-size: 75%;\n width: 1em;\n height: 1em;\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n .status__content {\n margin: 0;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.ui .flash-message {\n margin-top: 10px;\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 0;\n min-width: 75%;\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@import 'boost';\n@import 'accounts';\n@import 'domains';\n@import 'status';\n@import 'modal';\n@import 'composer';\n@import 'columns';\n@import 'regeneration_indicator';\n@import 'directory';\n@import 'search';\n@import 'emoji';\n@import 'doodle';\n@import 'drawer';\n@import 'media';\n@import 'sensitive';\n@import 'lists';\n@import 'emoji_picker';\n@import 'local_settings';\n@import 'error_boundary';\n@import 'single_column';\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant\nbutton.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant for use with DMs\n.status-direct button.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n",".account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n color: inherit;\n text-decoration: none;\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n\n &.small {\n border: none;\n padding: 0;\n\n & > .account__avatar-wrapper { margin: 0 8px 0 0 }\n\n & > .display-name {\n height: 24px;\n line-height: 24px;\n }\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius();\n position: relative;\n cursor: pointer;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n overflow: hidden;\n position: relative;\n cursor: default;\n\n & div {\n @include avatar-radius;\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\n.account__avatar-overlay {\n position: relative;\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius();\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius();\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__header__wrapper {\n flex: 0 0 auto;\n background: lighten($ui-base-color, 4%);\n}\n\n.account__disclaimer {\n padding: 10px;\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-left: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &:first-child {\n border-left: 0;\n }\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n abbr {\n color: $highlight-text-color;\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.notification__message {\n margin-left: 42px;\n padding: 8px 0 0 26px;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input();\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout();\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n",".domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n","@keyframes spring-flip-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-242.4deg);\n }\n\n 60% {\n transform: rotate(-158.35deg);\n }\n\n 90% {\n transform: rotate(-187.5deg);\n }\n\n 100% {\n transform: rotate(-180deg);\n }\n}\n\n@keyframes spring-flip-out {\n 0% {\n transform: rotate(-180deg);\n }\n\n 30% {\n transform: rotate(62.4deg);\n }\n\n 60% {\n transform: rotate(-21.635deg);\n }\n\n 90% {\n transform: rotate(7.5deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content {\n position: relative;\n margin: 10px 0;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n padding-top: 5px;\n\n &:focus {\n outline: 0;\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .status__content__text,\n .e-content {\n overflow: hidden;\n\n & > ul,\n & > ol {\n margin-bottom: 20px;\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 1.2em;\n }\n\n h2 {\n font-size: 1.1em;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $darker-text-color;\n color: $darker-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n sup {\n font-size: smaller;\n vertical-align: super;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n .status__content__spoiler {\n display: none;\n\n &.status__content__spoiler--visible {\n display: block;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n\n .link-origin-tag {\n color: $gold-star;\n font-size: 0.8em;\n }\n }\n\n .status__content__spoiler-link {\n background: lighten($ui-base-color, 30%);\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: lighten($ui-base-color, 30%);\n border: none;\n color: $inverted-text-color;\n font-weight: 500;\n font-size: 11px;\n padding: 0 5px;\n text-transform: uppercase;\n line-height: inherit;\n cursor: pointer;\n vertical-align: bottom;\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n\n .status__content__spoiler-icon {\n display: inline-block;\n margin: 0 0 0 5px;\n border-left: 1px solid currentColor;\n padding: 0 0 0 4px;\n font-size: 16px;\n vertical-align: -2px;\n }\n}\n\n.notif-cleaning {\n .status,\n .notification-follow,\n .notification-follow-request {\n padding-right: ($dismiss-overlay-width + 0.5rem);\n }\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.notification-follow,\n.notification-follow-request {\n position: relative;\n\n // same like Status\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .account {\n border-bottom: 0 none;\n }\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n &.status.status-direct:not(.read) {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 10px 14px;\n position: relative;\n height: auto;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 28px; // 12px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $lighter-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n strong {\n color: $inverted-text-color;\n }\n\n span {\n color: $lighter-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n\n &.collapsed {\n background-position: center;\n background-size: cover;\n user-select: none;\n\n &.has-background::before {\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-image: linear-gradient(to bottom, rgba($base-shadow-color, .75), rgba($base-shadow-color, .65) 24px, rgba($base-shadow-color, .8));\n pointer-events: none;\n content: \"\";\n }\n\n .display-name:hover .display-name__html {\n text-decoration: none;\n }\n\n .status__content {\n height: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 0;\n\n &:after {\n content: \"\";\n position: absolute;\n top: 0; bottom: 0;\n left: 0; right: 0;\n background: linear-gradient(rgba($ui-base-color, 0), rgba($ui-base-color, 1));\n pointer-events: none;\n }\n \n a:hover {\n text-decoration: none;\n }\n }\n &:focus > .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 4%), 0), rgba(lighten($ui-base-color, 4%), 1));\n }\n &.status-direct:not(.read)> .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 8%), 0), rgba(lighten($ui-base-color, 8%), 1));\n }\n\n .notification__message {\n margin-bottom: 0;\n }\n\n .status__info .notification__message > span {\n white-space: nowrap;\n }\n }\n\n .notification__message {\n margin: -10px 0px 10px 0;\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time {\n display: inline-block;\n flex-grow: 1;\n color: $dark-text-color;\n font-size: 14px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status__display-name {\n color: $dark-text-color;\n overflow: hidden;\n}\n\n.status__info__account .status__display-name {\n display: block;\n max-width: 100%;\n}\n\n.status__info {\n display: flex;\n justify-content: space-between;\n font-size: 15px;\n\n > span {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .notification__message > span {\n word-wrap: break-word;\n }\n}\n\n.status__info__icons {\n display: flex;\n align-items: center;\n height: 1em;\n color: $action-button-color;\n\n .status__media-icon,\n .status__visibility-icon,\n .status__reply-icon {\n padding-left: 2px;\n padding-right: 2px;\n }\n\n .status__collapse-button.active > .fa-angle-double-up {\n transform: rotate(-180deg);\n }\n}\n\n.no-reduce-motion .status__collapse-button {\n &.activate {\n & > .fa-angle-double-up {\n animation: spring-flip-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-angle-double-up {\n animation: spring-flip-out 1s linear;\n }\n }\n}\n\n.status__info__account {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-top: -10px;\n margin-bottom: 10px;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\na.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\n.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n flex: none;\n margin: 0 10px 0 0;\n height: 48px;\n width: 48px;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a,\n .status__content__text {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-color, 29%);\n text-decoration: none;\n }\n }\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n\n a .fa, a:hover .fa {\n color: inherit;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n.status__wrapper--filtered__button {\n display: inline;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n font-size: inherit;\n line-height: inherit;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n",".modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.onboarding-modal__pager {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 470px;\n\n .react-swipeable-view-container > div {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n user-select: text;\n }\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n@media screen and (max-width: 550px) {\n .onboarding-modal {\n width: 100%;\n height: 100%;\n border-radius: 0;\n }\n\n .onboarding-modal__pager {\n width: 100%;\n height: auto;\n max-width: none;\n max-height: none;\n flex: 1 1 auto;\n }\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.onboarding-modal__dots {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.onboarding-modal__dot {\n width: 14px;\n height: 14px;\n border-radius: 14px;\n background: darken($ui-secondary-color, 16%);\n margin: 0 3px;\n cursor: pointer;\n\n &:hover {\n background: darken($ui-secondary-color, 18%);\n }\n\n &.active {\n cursor: default;\n background: darken($ui-secondary-color, 24%);\n }\n}\n\n.onboarding-modal__page__wrapper {\n pointer-events: none;\n padding: 25px;\n padding-bottom: 0;\n\n &.onboarding-modal__page__wrapper--active {\n pointer-events: auto;\n }\n}\n\n.onboarding-modal__page {\n cursor: default;\n line-height: 21px;\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 20px;\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 4%);\n }\n }\n\n .navigation-bar a {\n color: inherit;\n }\n\n p {\n font-size: 16px;\n color: $lighter-text-color;\n margin-top: 10px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n background: $ui-base-color;\n color: $secondary-text-color;\n border-radius: 4px;\n font-size: 14px;\n padding: 3px 6px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.onboarding-modal__page__wrapper-0 {\n height: 100%;\n padding: 0;\n}\n\n.onboarding-modal__page-one {\n &__lead {\n padding: 65px;\n padding-top: 45px;\n padding-bottom: 0;\n margin-bottom: 10px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n margin-bottom: 8px;\n }\n\n p {\n margin-bottom: 0;\n }\n }\n\n &__extra {\n padding-right: 65px;\n padding-left: 185px;\n text-align: center;\n }\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboarding-modal__page-two,\n.onboarding-modal__page-three,\n.onboarding-modal__page-four,\n.onboarding-modal__page-five {\n p {\n text-align: left;\n }\n\n .figure {\n background: darken($ui-base-color, 8%);\n color: $secondary-text-color;\n margin-bottom: 20px;\n border-radius: 4px;\n padding: 10px;\n text-align: center;\n font-size: 14px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);\n\n .onboarding-modal__image {\n border-radius: 4px;\n margin-bottom: 10px;\n }\n\n &.non-interactive {\n pointer-events: none;\n text-align: left;\n }\n }\n}\n\n.onboarding-modal__page-four__columns {\n .row {\n display: flex;\n margin-bottom: 20px;\n\n & > div {\n flex: 1 1 0;\n margin: 0 10px;\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n\n p {\n text-align: center;\n }\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .column-header {\n color: $primary-text-color;\n }\n}\n\n@media screen and (max-width: 320px) and (max-height: 600px) {\n .onboarding-modal__page p {\n font-size: 14px;\n line-height: 20px;\n }\n\n .onboarding-modal__page-two .figure,\n .onboarding-modal__page-three .figure,\n .onboarding-modal__page-four .figure,\n .onboarding-modal__page-five .figure {\n font-size: 12px;\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .row {\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .column-header {\n padding: 5px;\n font-size: 12px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.favourite-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__display-name {\n display: flex;\n }\n\n .status__avatar {\n height: 48px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container,\n.favourite-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.favourite-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header,\n.favourite-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time,\n.favourite-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n strong {\n display: block;\n font-weight: 500;\n }\n\n max-height: 80vh;\n max-width: 80vw;\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n & > .react-toggle,\n & > .icon,\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__do_not_ask_again {\n padding-left: 20px;\n padding-right: 20px;\n padding-bottom: 10px;\n\n font-size: 14px;\n\n label, input {\n vertical-align: middle;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: 'mastodon-font-monospace', monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.filtered-status-info {\n text-align: start;\n\n .spoiler__text {\n margin-top: 20px;\n }\n\n .account {\n border-bottom: 0;\n }\n\n .account__display-name strong {\n color: $inverted-text-color;\n }\n\n .status__content__spoiler {\n display: none;\n\n &--visible {\n display: flex;\n }\n }\n\n ul {\n padding: 10px;\n margin-left: 12px;\n list-style: disc inside;\n }\n\n .filtered-status-edit-link {\n color: $action-button-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline\n }\n }\n}\n",".composer {\n padding: 10px;\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .composer--spoiler {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.composer--spoiler {\n height: 0;\n transform-origin: bottom;\n opacity: 0.0;\n\n &.composer--spoiler--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1.0;\n }\n\n input {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px;\n padding: 10px;\n width: 100%;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n }\n}\n\n.composer--warning {\n color: $inverted-text-color;\n margin-bottom: 15px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:active,\n &:focus,\n &:hover { text-decoration: none }\n }\n}\n\n.compose-form__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-left: 5px;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n}\n\n.composer--reply {\n margin: 0 0 10px;\n border-radius: 4px;\n padding: 10px;\n background: $ui-primary-color;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n\n & > header {\n margin-bottom: 5px;\n overflow: hidden;\n\n & > .account.small { color: $inverted-text-color; }\n\n & > .cancel {\n float: right;\n line-height: 24px;\n }\n }\n\n & > .content {\n position: relative;\n margin: 10px 0;\n padding: 0 12px;\n font-size: 14px;\n line-height: 20px;\n color: $inverted-text-color;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n white-space: pre-wrap;\n padding-top: 5px;\n overflow: hidden;\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 18px;\n }\n\n h2 {\n font-size: 16px;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $inverted-text-color;\n color: $inverted-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n\n a {\n color: $lighter-text-color;\n text-decoration: none;\n\n &:hover { text-decoration: underline }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span { text-decoration: underline }\n }\n }\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -5px 0 0;\n }\n}\n\n.emoji-picker-dropdown {\n position: absolute;\n right: 5px;\n top: 5px;\n\n ::-webkit-scrollbar-track:hover,\n ::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.compose-form__autosuggest-wrapper,\n.autosuggest-input {\n position: relative;\n width: 100%;\n\n label {\n .autosuggest-textarea__textarea {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px 4px 0 0;\n padding: 10px 32px 0 10px;\n width: 100%;\n min-height: 100px;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: none;\n scrollbar-color: initial;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n &:disabled { background: $ui-secondary-color }\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n }\n}\n\n.composer--textarea--icons {\n display: block;\n position: absolute;\n top: 29px;\n right: 5px;\n bottom: 5px;\n overflow: hidden;\n\n & > .textarea_icon {\n display: block;\n margin: 2px 0 0 2px;\n width: 24px;\n height: 24px;\n color: $lighter-text-color;\n font-size: 18px;\n line-height: 24px;\n text-align: center;\n opacity: .8;\n }\n}\n\n.autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n}\n\n.autosuggest-textarea__suggestions {\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: 100%;\n border-radius: 0 0 4px 4px;\n padding: 6px;\n width: 100%;\n color: $inverted-text-color;\n background: $ui-secondary-color;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n font-size: 14px;\n z-index: 99;\n display: none;\n}\n\n.autosuggest-textarea__suggestions--visible {\n display: block;\n}\n\n.autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected { background: darken($ui-secondary-color, 10%) }\n\n > .account,\n > .emoji,\n > .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n & > .account.small {\n .display-name {\n & > span { color: $lighter-text-color }\n }\n }\n}\n\n.composer--upload_form {\n overflow: hidden;\n\n & > .content {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n font-family: inherit;\n padding: 5px;\n overflow: hidden;\n }\n}\n\n.composer--upload_form--item {\n flex: 1 1 0;\n margin: 5px;\n min-width: 40%;\n\n & > div {\n position: relative;\n border-radius: 4px;\n height: 140px;\n width: 100%;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n overflow: hidden;\n\n textarea {\n display: block;\n position: absolute;\n box-sizing: border-box;\n bottom: 0;\n left: 0;\n margin: 0;\n border: 0;\n padding: 10px;\n width: 100%;\n color: $secondary-text-color;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n font-size: 14px;\n font-family: inherit;\n font-weight: 500;\n opacity: 0;\n z-index: 2;\n transition: opacity .1s ease;\n\n &:focus { color: $white }\n\n &::placeholder {\n opacity: 0.54;\n color: $secondary-text-color;\n }\n }\n\n & > .close { mix-blend-mode: difference }\n }\n\n &.active {\n & > div {\n textarea { opacity: 1 }\n }\n }\n}\n\n.composer--upload_form--actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $ui-secondary-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($ui-secondary-color, 4%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n}\n\n.composer--upload_form--progress {\n display: flex;\n padding: 10px;\n color: $darker-text-color;\n overflow: hidden;\n\n & > .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n & > .message {\n flex: 1 1 auto;\n\n & > span {\n display: block;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n }\n\n & > .backdrop {\n position: relative;\n margin-top: 5px;\n border-radius: 6px;\n width: 100%;\n height: 6px;\n background: $ui-base-lighter-color;\n\n & > .tracker {\n position: absolute;\n top: 0;\n left: 0;\n height: 6px;\n border-radius: 6px;\n background: $ui-highlight-color;\n }\n }\n }\n}\n\n.compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n}\n\n.composer--options-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n height: 27px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n}\n\n.composer--options {\n display: flex;\n flex: 0 0 auto;\n\n & > * {\n display: inline-block;\n box-sizing: content-box;\n padding: 0 3px;\n height: 27px;\n line-height: 27px;\n vertical-align: bottom;\n }\n\n & > hr {\n display: inline-block;\n margin: 0 3px;\n border-width: 0 0 0 1px;\n border-style: none none none solid;\n border-color: transparent transparent transparent darken($simple-background-color, 24%);\n padding: 0;\n width: 0;\n height: 27px;\n background: transparent;\n }\n}\n\n.compose--counter-wrapper {\n align-self: center;\n margin-right: 4px;\n}\n\n.composer--options--dropdown {\n &.open {\n & > .value {\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n color: $primary-text-color;\n background: $ui-highlight-color;\n transition: none;\n }\n &.top {\n & > .value {\n border-radius: 0 0 4px 4px;\n box-shadow: 0 4px 4px rgba($base-shadow-color, 0.1);\n }\n }\n }\n}\n\n.composer--options--dropdown--content {\n position: absolute;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n background: $simple-background-color;\n overflow: hidden;\n transform-origin: 50% 0;\n}\n\n.composer--options--dropdown--content--item {\n display: flex;\n align-items: center;\n padding: 10px;\n color: $inverted-text-color;\n cursor: pointer;\n\n & > .content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n &:not(:first-child) { margin-left: 10px }\n\n strong {\n display: block;\n color: $inverted-text-color;\n font-weight: 500;\n }\n }\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n\n & > .content {\n color: $primary-text-color;\n\n strong { color: $primary-text-color }\n }\n }\n\n &.active:hover { background: lighten($ui-highlight-color, 4%) }\n}\n\n.composer--publisher {\n padding-top: 10px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n justify-content: flex-end;\n flex: 0 0 auto;\n\n & > .primary {\n display: inline-block;\n margin: 0;\n padding: 0 10px;\n text-align: center;\n }\n\n & > .side_arm {\n display: inline-block;\n margin: 0 2px;\n padding: 0;\n width: 36px;\n text-align: center;\n }\n\n &.over {\n & > .count { color: $warning-red }\n }\n}\n",".column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.column {\n overflow: hidden;\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n\n &.active {\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n top: 35px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n\n & > button {\n margin: 0;\n border: none;\n padding: 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n box-shadow: 0 1px 0 rgba($ui-highlight-color, 0.3);\n\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($ui-highlight-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n\n .wide .columns-area:not(.columns-area--mobile) & {\n flex: auto;\n min-width: 330px;\n max-width: 400px;\n }\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n margin-left: 0;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n\n // glitch - added focus ring for keyboard navigation\n &:focus {\n text-shadow: 0 0 4px darken($ui-highlight-color, 5%);\n }\n}\n\n.column-header__notif-cleaning-buttons {\n display: flex;\n align-items: stretch;\n justify-content: space-around;\n\n button {\n @extend .column-header__button;\n background: transparent;\n text-align: center;\n padding: 10px 0;\n white-space: pre-wrap;\n }\n\n b {\n font-weight: bold;\n }\n}\n\n// The notifs drawer with no padding to have more space for the buttons\n.column-header__collapsible-inner.nopad-drawer {\n padding: 0;\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n\n // notif cleaning drawer\n &.ncd {\n transition: none;\n &.collapsed {\n max-height: 0;\n opacity: 0.7;\n }\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.column-header__title {\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.empty-column-indicator,\n.error-column {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.error-column {\n flex-direction: column;\n}\n\n// more fixes for the navbar-under mode\n@mixin fix-margins-for-navbar-under {\n .tabs-bar {\n margin-top: 0 !important;\n margin-bottom: -6px !important;\n }\n}\n\n.single-column.navbar-under {\n @include fix-margins-for-navbar-under;\n}\n\n.auto-columns.navbar-under {\n @media screen and (max-width: $no-gap-breakpoint) {\n @include fix-margins-for-navbar-under;\n }\n}\n\n.auto-columns.navbar-under .react-swipeable-view-container .columns-area,\n.single-column.navbar-under .react-swipeable-view-container .columns-area {\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 100% !important;\n }\n}\n\n.column-inline-form {\n padding: 7px 15px;\n padding-right: 5px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n margin-bottom: 6px;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 5px;\n }\n}\n",".regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n",".directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n",".search {\n position: relative;\n}\n\n.search__input {\n @include search-input();\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: color, transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(0deg);\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n padding: 15px 10px;\n font-size: 14px;\n font-weight: 500;\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n",null,".emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.emoji-button {\n display: block;\n font-size: 24px;\n line-height: 24px;\n margin-left: 2px;\n width: 24px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n margin-top: 2px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n","$doodleBg: #d9e1e8;\n.doodle-modal {\n @extend .boost-modal;\n width: unset;\n}\n\n.doodle-modal__container {\n background: $doodleBg;\n text-align: center;\n line-height: 0; // remove weird gap under canvas\n canvas {\n border: 5px solid $doodleBg;\n }\n}\n\n.doodle-modal__action-bar {\n @extend .boost-modal__action-bar;\n\n .filler {\n flex-grow: 1;\n margin: 0;\n padding: 0;\n }\n\n .doodle-toolbar {\n line-height: 1;\n\n display: flex;\n flex-direction: column;\n flex-grow: 0;\n justify-content: space-around;\n\n &.with-inputs {\n label {\n display: inline-block;\n width: 70px;\n text-align: right;\n margin-right: 2px;\n }\n\n input[type=\"number\"],input[type=\"text\"] {\n width: 40px;\n }\n span.val {\n display: inline-block;\n text-align: left;\n width: 50px;\n }\n }\n }\n\n .doodle-palette {\n padding-right: 0 !important;\n border: 1px solid black;\n line-height: .2rem;\n flex-grow: 0;\n background: white;\n\n button {\n appearance: none;\n width: 1rem;\n height: 1rem;\n margin: 0; padding: 0;\n text-align: center;\n color: black;\n text-shadow: 0 0 1px white;\n cursor: pointer;\n box-shadow: inset 0 0 1px rgba(white, .5);\n border: 1px solid black;\n outline-offset:-1px;\n\n &.foreground {\n outline: 1px dashed white;\n }\n\n &.background {\n outline: 1px dashed red;\n }\n\n &.foreground.background {\n outline: 1px dashed red;\n border-color: white;\n }\n }\n }\n}\n",".drawer {\n width: 300px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n padding: 10px 5px;\n flex: none;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n\n @include single-column('screen and (max-width: 630px)') { flex: auto }\n\n @include limited-single-column('screen and (max-width: 630px)') {\n &, &:first-child, &:last-child { padding: 0 }\n }\n\n .wide & {\n min-width: 300px;\n max-width: 400px;\n flex: 1 1 200px;\n }\n\n @include single-column('screen and (max-width: 630px)') {\n :root & { // Overrides `.wide` for single-column view\n flex: auto;\n width: 100%;\n min-width: 0;\n max-width: none;\n padding: 0;\n }\n }\n\n .react-swipeable-view-container & { height: 100% }\n}\n\n.drawer--header {\n display: flex;\n flex-direction: row;\n margin-bottom: 10px;\n flex: none;\n background: lighten($ui-base-color, 8%);\n font-size: 16px;\n\n & > * {\n display: block;\n box-sizing: border-box;\n border-bottom: 2px solid transparent;\n padding: 15px 5px 13px;\n height: 48px;\n flex: 1 1 auto;\n color: $darker-text-color;\n text-align: center;\n text-decoration: none;\n cursor: pointer;\n }\n\n a {\n transition: background 100ms ease-in;\n\n &:focus,\n &:hover {\n outline: none;\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.search {\n position: relative;\n margin-bottom: 10px;\n flex: none;\n\n @include limited-single-column('screen and (max-width: #{$no-gap-breakpoint})') { margin-bottom: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n}\n\n.search-popout {\n @include search-popout();\n}\n\n.drawer--account {\n padding: 10px;\n color: $darker-text-color;\n display: flex;\n align-items: center;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n .acct {\n display: block;\n color: $secondary-text-color;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n overflow: hidden;\n}\n\n.drawer--results {\n background: $ui-base-color;\n overflow-x: hidden;\n overflow-y: auto;\n\n & > header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n & > section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n\n & > .hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n }\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 100%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n > .mastodon {\n display: block;\n width: 100%;\n height: 100%;\n border: none;\n cursor: inherit;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n",".video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n width: 100%;\n height: 100%;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 8%);\n }\n\n .status__content > & {\n margin-top: 15px; // Add margin when used bare for NSFW video player\n }\n @include fullwidth-gallery;\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 500;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &.autoplay {\n .media-gallery__gifv__label {\n display: none;\n }\n }\n\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n span {\n text-align: center;\n color: $darker-text-color;\n display: flex;\n height: 100%;\n align-items: center;\n\n p {\n width: 100%;\n }\n }\n\n audio {\n width: 100%;\n }\n}\n\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n height: 110px;\n\n @include fullwidth-gallery;\n}\n\n.media-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n .full-width & {\n border-radius: 0;\n }\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n\n &.letterbox {\n background: $base-shadow-color;\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n object-fit: contain;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n width: 100%;\n position: relative;\n z-index: 1;\n object-fit: contain;\n user-select: none;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $white;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $ui-highlight-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n .detailed-status & {\n width: 100%;\n height: 100%;\n }\n\n @include fullwidth-gallery;\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n position: relative;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-shadow-color;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n\n .fa,\n &:active .fa,\n &:hover .fa,\n &:focus .fa {\n color: inherit;\n }\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n",".sensitive-info {\n display: flex;\n flex-direction: row;\n align-items: center;\n position: absolute;\n top: 4px;\n left: 4px;\n z-index: 100;\n}\n\n.sensitive-marker {\n margin: 0 3px;\n border-radius: 2px;\n padding: 2px 6px;\n color: rgba($primary-text-color, 0.8);\n background: rgba($base-overlay-background, 0.5);\n font-size: 12px;\n line-height: 18px;\n text-transform: uppercase;\n opacity: .9;\n transition: opacity .1s ease;\n\n .media-gallery:hover & { opacity: 1 }\n}\n",".list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n",".emoji-mart {\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: 0;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -3px;\n left: 0;\n width: 100%;\n height: 3px;\n background-color: darken($ui-highlight-color, 3%);\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n",".glitch.local-settings {\n position: relative;\n display: flex;\n flex-direction: row;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n height: 80vh;\n width: 80vw;\n max-width: 740px;\n max-height: 450px;\n overflow: hidden;\n\n label, legend {\n display: block;\n font-size: 14px;\n }\n\n .boolean label, .radio_buttons label {\n position: relative;\n padding-left: 28px;\n padding-top: 3px;\n\n input {\n position: absolute;\n left: 0;\n top: 0;\n }\n }\n\n span.hint {\n display: block;\n color: $lighter-text-color;\n }\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n line-height: 24px;\n margin-bottom: 20px;\n }\n\n h2 {\n font-size: 15px;\n font-weight: 500;\n line-height: 20px;\n margin-top: 20px;\n margin-bottom: 10px;\n }\n}\n\n.glitch.local-settings__navigation__item {\n display: block;\n padding: 15px 20px;\n color: inherit;\n background: lighten($ui-secondary-color, 8%);\n border-bottom: 1px $ui-secondary-color solid;\n cursor: pointer;\n text-decoration: none;\n outline: none;\n transition: background .3s;\n\n .text-icon-button {\n color: inherit;\n transition: unset;\n }\n\n &:hover {\n background: $ui-secondary-color;\n }\n\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n\n &.close, &.close:hover {\n background: $error-value-color;\n color: $primary-text-color;\n }\n}\n\n.glitch.local-settings__navigation {\n background: lighten($ui-secondary-color, 8%);\n width: 212px;\n font-size: 15px;\n line-height: 20px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page {\n display: block;\n flex: auto;\n padding: 15px 20px 15px 20px;\n width: 360px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page__item {\n margin-bottom: 2px;\n}\n\n.glitch.local-settings__page__item.string,\n.glitch.local-settings__page__item.radio_buttons {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n@media screen and (max-width: 630px) {\n .glitch.local-settings__navigation {\n width: 40px;\n flex-shrink: 0;\n }\n\n .glitch.local-settings__navigation__item {\n padding: 10px;\n\n span:last-of-type {\n display: none;\n }\n }\n}\n",".error-boundary {\n color: $primary-text-color;\n font-size: 15px;\n line-height: 20px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n font-weight: 400;\n margin-bottom: 8px;\n }\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n }\n\n ul {\n list-style: disc;\n margin-left: 0;\n padding-left: 1em;\n }\n\n textarea.web_app_crash-stacktrace {\n width: 100%;\n resize: none;\n white-space: pre;\n font-family: $font-monospace, monospace;\n }\n}\n",".compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .drawer--account {\n flex: 0 1 48px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .composer {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px;\n min-height: 48px + 2px;\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n padding-top: 15px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .search {\n margin-bottom: 10px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n ul,\n .e-content & ul {\n margin: 0;\n list-style: none;\n }\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n display: inline-block;\n border-radius: 4px;\n background: darken($ui-primary-color, 14%);\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__text {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n display: block;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-width: 4px;\n background: none;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 52px;\n font-weight: 700;\n padding: 0 10px;\n padding-left: 8px;\n text-align: right;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 52px;\n }\n\n &__vote__mark {\n float: left;\n line-height: 18px;\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n width: 100%;\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__text {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n @include avatar-size(80px);\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n @include avatar-radius();\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n @include avatar-size(44px);\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: none;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n margin-bottom: 20px;\n line-height: 20px;\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n padding: 10px;\n background: $ui-base-color;\n color: $darker-text-color;\n border-radius: 4px 4px 0 0;\n font-size: 14px;\n position: relative;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n &__extras {\n background: lighten($ui-base-color, 6%);\n border-radius: 0 0 4px 4px;\n padding: 10px;\n color: $darker-text-color;\n font-family: $font-monospace, monospace;\n font-size: 12px;\n word-wrap: break-word;\n min-height: 20px;\n }\n\n &__icon {\n font-size: 28px;\n margin-right: 10px;\n color: $dark-text-color;\n }\n\n &__icon__overlay {\n position: absolute;\n top: 10px;\n right: 10px;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n\n &.positive {\n background: $success-green;\n }\n\n &.negative {\n background: lighten($error-red, 12%);\n }\n\n &.neutral {\n background: $ui-highlight-color;\n }\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n\n .diff-old {\n color: lighten($error-red, 12%);\n }\n\n .diff-neutral {\n color: $secondary-text-color;\n }\n\n .diff-new {\n color: $success-green;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n","$emojis-requiring-outlines: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash' !default;\n\n%emoji-outline {\n filter: drop-shadow(1px 1px 0 $primary-text-color) drop-shadow(-1px 1px 0 $primary-text-color) drop-shadow(1px -1px 0 $primary-text-color) drop-shadow(-1px -1px 0 $primary-text-color);\n}\n\n.emojione {\n @each $emoji in $emojis-requiring-outlines {\n &[title=':#{$emoji}:'] {\n @extend %emoji-outline;\n }\n }\n}\n\n.hicolor-privacy-icons {\n .status__visibility-icon.fa-globe,\n .composer--options--dropdown--content--item .fa-globe {\n color: #1976D2;\n }\n\n .status__visibility-icon.fa-unlock,\n .composer--options--dropdown--content--item .fa-unlock {\n color: #388E3C;\n }\n\n .status__visibility-icon.fa-lock,\n .composer--options--dropdown--content--item .fa-lock {\n color: #FFA000;\n }\n\n .status__visibility-icon.fa-envelope,\n .composer--options--dropdown--content--item .fa-envelope {\n color: #D32F2F;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .composer--publisher {\n text-align: left;\n }\n\n .boost-modal__status-time,\n .favourite-modal__status-time {\n float: left;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .setting-meta__label {\n float: left;\n }\n\n .status__avatar {\n margin-left: 10px;\n margin-right: 0;\n\n // Those are used for public pages\n left: auto;\n right: 10px;\n }\n\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 58px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n text-align: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","// Notes!\n// Sass color functions, \"darken\" and \"lighten\" are automatically replaced.\n\n.glitch.local-settings {\n background: $ui-base-color;\n\n &__navigation {\n background: darken($ui-base-color, 8%);\n }\n\n &__navigation__item {\n background: darken($ui-base-color, 8%);\n\n &:hover {\n background: $ui-base-color;\n }\n }\n}\n\n.notification__dismiss-overlay {\n .wrappy {\n box-shadow: unset;\n }\n\n .ckbox {\n text-shadow: unset;\n }\n}\n\n.status.status-direct:not(.read) {\n background: darken($ui-base-color, 8%);\n border-bottom-color: darken($ui-base-color, 12%);\n\n &.collapsed> .status__content:after {\n background: linear-gradient(rgba(darken($ui-base-color, 8%), 0), rgba(darken($ui-base-color, 8%), 1));\n }\n}\n\n.focusable:focus.status.status-direct:not(.read) {\n background: darken($ui-base-color, 4%);\n\n &.collapsed> .status__content:after {\n background: linear-gradient(rgba(darken($ui-base-color, 4%), 0), rgba(darken($ui-base-color, 4%), 1));\n }\n}\n\n// Change columns' default background colors\n.column {\n > .scrollable {\n background: darken($ui-base-color, 13%);\n }\n}\n\n.status.collapsed .status__content:after {\n background: linear-gradient(rgba(darken($ui-base-color, 13%), 0), rgba(darken($ui-base-color, 13%), 1));\n}\n\n.drawer__inner {\n background: $ui-base-color;\n}\n\n.drawer__inner__mastodon {\n background: $ui-base-color url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto !important;\n\n .mastodon {\n filter: contrast(75%) brightness(75%) !important;\n }\n}\n\n// Change the default appearance of the content warning button\n.status__content {\n\n .status__content__spoiler-link {\n\n background: lighten($ui-base-color, 30%);\n\n &:hover {\n background: lighten($ui-base-color, 35%);\n text-decoration: none;\n }\n\n }\n\n}\n\n// Change the background colors of media and video spoilers\n.media-spoiler,\n.video-player__spoiler,\n.account-gallery__item a {\n background: $ui-base-color;\n}\n\n// Change the colors used in the dropdown menu\n.dropdown-menu {\n background: $ui-base-color;\n}\n\n.dropdown-menu__arrow {\n\n &.left {\n border-left-color: $ui-base-color;\n }\n\n &.top {\n border-top-color: $ui-base-color;\n }\n\n &.bottom {\n border-bottom-color: $ui-base-color;\n }\n\n &.right {\n border-right-color: $ui-base-color;\n }\n\n}\n\n.dropdown-menu__item {\n a {\n background: $ui-base-color;\n color: $ui-secondary-color;\n }\n}\n\n// Change the default color of several parts of the compose form\n.composer {\n\n .composer--spoiler input, .compose-form__autosuggest-wrapper textarea {\n color: lighten($ui-base-color, 80%);\n\n &:disabled { background: lighten($simple-background-color, 10%) }\n\n &::placeholder {\n color: lighten($ui-base-color, 70%);\n }\n }\n\n .composer--options-wrapper {\n background: lighten($ui-base-color, 10%);\n }\n\n .composer--options > hr {\n display: none;\n }\n\n .composer--options--dropdown--content--item {\n color: $ui-primary-color;\n \n strong {\n color: $ui-primary-color;\n }\n\n }\n\n}\n\n.composer--upload_form--actions .icon-button {\n color: lighten($white, 7%);\n\n &:active,\n &:focus,\n &:hover {\n color: $white;\n }\n}\n\n.composer--upload_form--item > div input {\n color: lighten($white, 7%);\n\n &::placeholder {\n color: lighten($white, 10%);\n }\n}\n\n.dropdown-menu__separator {\n border-bottom-color: lighten($ui-base-color, 12%);\n}\n\n.status__content,\n.reply-indicator__content {\n a {\n color: $highlight-text-color;\n }\n}\n\n.emoji-mart-bar {\n border-color: darken($ui-base-color, 4%);\n\n &:first-child {\n background: lighten($ui-base-color, 10%);\n }\n}\n\n.emoji-mart-search input {\n background: rgba($ui-base-color, 0.3);\n border-color: $ui-base-color;\n}\n\n.autosuggest-textarea__suggestions {\n background: lighten($ui-base-color, 10%)\n}\n\n.autosuggest-textarea__suggestions__item {\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: darken($ui-base-color, 4%);\n }\n}\n\n.react-toggle-track {\n background: $ui-secondary-color;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background: lighten($ui-secondary-color, 10%);\n}\n\n.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background: darken($ui-highlight-color, 10%);\n}\n\n// Change the background colors of modals\n.actions-modal,\n.boost-modal,\n.confirmation-modal,\n.mute-modal,\n.block-modal,\n.report-modal,\n.embed-modal,\n.error-modal,\n.onboarding-modal,\n.report-modal__comment .setting-text__wrapper,\n.report-modal__comment .setting-text {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n}\n\n.report-modal__comment {\n border-right-color: lighten($ui-base-color, 8%);\n}\n\n.report-modal__container {\n border-top-color: lighten($ui-base-color, 8%);\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar,\n.onboarding-modal__paginator,\n.error-modal__footer {\n background: darken($ui-base-color, 6%);\n\n .onboarding-modal__nav,\n .error-modal__nav {\n &:hover,\n &:focus,\n &:active {\n background-color: darken($ui-base-color, 12%);\n }\n }\n}\n\n// Change the default color used for the text in an empty column or on the error column\n.empty-column-indicator,\n.error-column {\n color: lighten($ui-base-color, 60%);\n}\n\n// Change the default colors used on some parts of the profile pages\n.activity-stream-tabs {\n\n background: $account-background-color;\n\n a {\n &.active {\n color: $ui-primary-color;\n }\n }\n\n}\n\n.activity-stream {\n\n .entry {\n background: $account-background-color;\n }\n\n .status.light {\n\n .status__content {\n color: $primary-text-color;\n }\n\n .display-name {\n strong {\n color: $primary-text-color;\n }\n }\n\n }\n\n}\n\n.accounts-grid {\n .account-grid-card {\n\n .controls {\n .icon-button {\n color: $ui-secondary-color;\n }\n }\n\n .name {\n a {\n color: $primary-text-color;\n }\n }\n\n .username {\n color: $ui-secondary-color;\n }\n\n .account__header__content {\n color: $primary-text-color;\n }\n\n }\n}\n\n.button.logo-button {\n color: $white;\n\n svg {\n fill: $white;\n }\n}\n\n.public-layout {\n .header,\n .public-account-header,\n .public-account-bio {\n box-shadow: none;\n }\n\n .header {\n background: lighten($ui-base-color, 12%);\n }\n\n .public-account-header {\n &__image {\n background: lighten($ui-base-color, 12%);\n\n &::after {\n box-shadow: none;\n }\n }\n\n &__tabs {\n &__name {\n h1,\n h1 small {\n color: $white;\n }\n }\n }\n }\n}\n\n.account__section-headline a.active::after {\n border-color: transparent transparent $white;\n}\n\n.hero-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.moved-account-widget,\n.memoriam-widget,\n.activity-stream,\n.nothing-here,\n.directory__tag > a,\n.directory__tag > div {\n box-shadow: none;\n}\n\n.audio-player .video-player__controls button,\n.audio-player .video-player__time-sep,\n.audio-player .video-player__time-current,\n.audio-player .video-player__time-total {\n color: $primary-text-color;\n}\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///common.scss","webpack:///./app/javascript/flavours/glitch/styles/reset.scss","webpack:///./app/javascript/flavours/glitch/styles/mastodon-light/variables.scss","webpack:///./app/javascript/flavours/glitch/styles/basics.scss","webpack:///./app/javascript/flavours/glitch/styles/containers.scss","webpack:///./app/javascript/flavours/glitch/styles/_mixins.scss","webpack:///./app/javascript/flavours/glitch/styles/variables.scss","webpack:///./app/javascript/flavours/glitch/styles/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/footer.scss","webpack:///./app/javascript/flavours/glitch/styles/compact_header.scss","webpack:///./app/javascript/flavours/glitch/styles/widgets.scss","webpack:///./app/javascript/flavours/glitch/styles/forms.scss","webpack:///./app/javascript/flavours/glitch/styles/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/statuses.scss","webpack:///./app/javascript/flavours/glitch/styles/components/index.scss","webpack:///./app/javascript/flavours/glitch/styles/components/boost.scss","webpack:///./app/javascript/flavours/glitch/styles/components/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/components/domains.scss","webpack:///./app/javascript/flavours/glitch/styles/components/status.scss","webpack:///./app/javascript/flavours/glitch/styles/components/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/components/composer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/columns.scss","webpack:///./app/javascript/flavours/glitch/styles/components/regeneration_indicator.scss","webpack:///./app/javascript/flavours/glitch/styles/components/directory.scss","webpack:///./app/javascript/flavours/glitch/styles/components/search.scss","webpack:///","webpack:///./app/javascript/flavours/glitch/styles/components/emoji.scss","webpack:///./app/javascript/flavours/glitch/styles/components/doodle.scss","webpack:///./app/javascript/flavours/glitch/styles/components/drawer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/media.scss","webpack:///./app/javascript/flavours/glitch/styles/components/sensitive.scss","webpack:///./app/javascript/flavours/glitch/styles/components/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/components/emoji_picker.scss","webpack:///./app/javascript/flavours/glitch/styles/components/local_settings.scss","webpack:///./app/javascript/flavours/glitch/styles/components/error_boundary.scss","webpack:///./app/javascript/flavours/glitch/styles/components/single_column.scss","webpack:///./app/javascript/flavours/glitch/styles/components/announcements.scss","webpack:///./app/javascript/flavours/glitch/styles/polls.scss","webpack:///./app/javascript/flavours/glitch/styles/about.scss","webpack:///./app/javascript/flavours/glitch/styles/tables.scss","webpack:///./app/javascript/flavours/glitch/styles/admin.scss","webpack:///./app/javascript/flavours/glitch/styles/accessibility.scss","webpack:///./app/javascript/flavours/glitch/styles/rtl.scss","webpack:///./app/javascript/flavours/glitch/styles/dashboard.scss","webpack:///./app/javascript/flavours/glitch/styles/mastodon-light/diff.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,0CACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,8BACA,CC3EwB,iEDkF1B,kBClF0B,4BDsF1B,sBACE,MEtFF,sBACE,mBACA,eACA,iBACA,gBACA,WDXM,kCCaN,6BACA,8BACA,CADA,0BACA,CADA,qBACA,0CACA,wCACA,kBAEA,sIAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBDjDwB,kBCqDxB,iBACE,kBACA,0BAEA,iBACE,YAIJ,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cDpFiB,mBAEK,WCqFtB,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,wBAEA,aACE,gBACA,WACA,YACA,kBACA,uBAGF,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,6BAKF,YAEE,WACA,mBACA,uBACA,oBACA,yEAKF,gBAEE,+EAKF,WAEE,gBCrJJ,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SFtBI,YEwBF,kBACA,sBAGF,YACE,uBACA,mBACA,WF/BE,qBEiCF,UACA,kBACA,iBACA,uBACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAKA,UACqB,sCC3EvB,iBD4EE,6BAEA,UACE,YACA,cACA,SACA,kBACA,iBE5BkB,wBD9DtB,4BACA,uBD8FA,aACE,cF9FiB,wBEgGjB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UF3UA,qCE8UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cF7Ve,mBE+Vf,kBACA,uHAEA,yBAGE,WFxWA,qCE4WF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBFvbe,8CE4bjB,yBACE,gBACA,aACA,kBACA,gBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,CAEA,WACqB,yCCzgB3B,kBD0gBM,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,iBE7dc,wBD9DtB,4BACA,qCD+hBI,2CAvCF,YAwCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAKA,UACqB,sCCtiB7B,CDuiBQ,sBACA,wDAEA,QACE,kBACA,iBErfY,wBD9DtB,4BACA,2DDsjBQ,mDAbF,YAcI,sCAKN,2CApEF,eAqEI,sCAGF,2CAxEF,cAyEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WFjlBF,gBEmlBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WF3lBJ,gBE6lBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aFhnBS,oDEunBf,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cF5oBW,aE8oBX,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BF9qBS,wEEorBT,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WF1sBJ,uBE4sBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cF7uBa,uDEgvBb,oBACE,cFjvBW,qBEmvBX,aACA,gBACA,8DAEA,eACE,WF3vBJ,qCEiwBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aE3yBU,8DFizBV,mBACA,WFpzBE,qFEwzBJ,YAEE,eACA,cFxzBe,2CE4zBjB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBFt3BkB,+IEy3BhB,kBAGE,WGl4BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,eChBJ,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,yBCrBF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cP9Fe,6BOiGf,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cACA,gBACA,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cRjBe,wBQqBjB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBLPI,uBKUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBTfwB,aSiBtB,0BACA,eACA,cTrBiB,iBSuBjB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aTrDiB,qBSuDf,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cT5EiB,+BSgFnB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aTzGmB,aS8GrB,YACE,kBACA,mBT9GwB,mCSgHxB,qBAGF,YACE,kBACA,0BACA,kBACA,cTzHmB,mBS2HnB,iBAGF,eACE,eACA,cThImB,iBSkInB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cT3IiB,0BS+InB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cTxJiB,qBS0JjB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBTxKwB,mCS0KxB,cT5KmB,gBS8KnB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cTvNe,8DS6NjB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eLlPM,CKoPN,cACA,cTlPmB,mBSoPnB,+BANA,iBACA,CLlPM,kCKgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,UTlQM,eSoQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cTxQiB,qCS4QnB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBTpR0B,kBSsRxB,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBTjSoB,kBSmSpB,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBTjTsB,eSmTpB,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WTpUE,mBSsUF,gBACA,uBACA,wBAEA,aTvUe,0BS2Uf,aACE,gBACA,eACA,eACA,cT/Ua,yFSqVf,UTxVE,+BS+VJ,aACE,YACA,uDAGF,oBT9VsB,eSoW1B,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cTjZiB,gBSmZjB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WT5aI,8BS+aJ,aACE,cT7ae,gBS+af,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aT9gBmB,iCS6gBrB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cThiBsB,4JSmiBtB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WT/jBI,gCSikBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MC/kBJ,+BACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WVjDA,cUmDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aVhEoB,0BUkElB,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aVlGmB,sBUqGjB,aVlGsB,yBUsGtB,iBACE,kBACA,gBACA,wBAIJ,aACE,eACA,eACA,qBAGF,kBACE,cVvHiB,iCU0HjB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WV1JA,gBU4JA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WVhLE,cUkLF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WVtME,cUwMF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,kDAIJ,oBACE,WACA,OACA,6BAGF,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WV1RI,cU4RJ,WACA,2CAKE,mBACE,eACA,WVpSA,qBUsSA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WVpUI,cUsUJ,WACA,UACA,oBACA,gBACA,mBACA,sBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBN1VY,oLM8VZ,iBACE,4WAGF,oBV9VsB,mBUiWpB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBV/YsB,WANlB,eUwZJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBV/aoB,gGUmbpB,kBNpbQ,kHMubN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WVxcI,cU0cJ,WACA,UACA,oBACA,gBACA,wXACA,sBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cVtdY,oBUwdZ,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,oEACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,iCACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UVthBF,aUgiBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cVriBmB,kBUuiBnB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cN/iBY,sBMmjBd,mCACE,+BACA,cNpjBQ,kBMwjBV,oBACE,cVzjBiB,qBU2jBjB,wBAEA,UVhkBI,0BUkkBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gCACA,mBV5kBsB,WALlB,eUolBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aVtnBmB,qBUwnBjB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aVvoBwB,yBUyoBtB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cV1pBmB,oCU6pBnB,cACE,mBACA,kBACA,4CAGF,aVnqBmB,gBUqqBjB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBN5rBM,YM8rBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cVxsBmB,WU0sBnB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WVzuBI,qCU2uBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UVjvBI,0BUmvBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cV7xBmB,0BUgyBnB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WV7yBI,kBU+yBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aNtzBc,0SMg0BZ,+BACE,aAIJ,kBACE,sBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gCACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBN12Bc,gBM42BZ,2BAEA,kBN92BY,gBMg3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SCj7BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,gBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,CAEA,UACqB,sCRpDzB,gBQqDI,wBAEA,UACE,YACA,cACA,SACA,kBACA,iBPLgB,wBD9DtB,4BACA,mBQoEM,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WXhFA,gBWkFA,gBACA,uBACA,+BAGF,aACE,eACA,cXtFa,gBWwFb,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WX9GI,gBWgHJ,qBACA,iBACA,qBACA,sBAGF,ePrHM,oBOuHJ,WXxHI,eW0HJ,cACA,kBAGF,cACE,uCAGF,wBAEE,cXjIiB,oBWqInB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,WACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBX1K0B,mCW4KxB,cXxJiB,eW0JjB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cX7MmB,mCW+MnB,mCACA,6DAEA,aPnNc,sCOqNZ,kCACA,qDAGF,aACE,oCACA,gCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cX5PiB,gCW8PjB,6BAGF,aACE,cXlQiB,4BWsQnB,aXnQwB,qBWqQtB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aPtRY,gBOwRV,0CAGF,aP3RY,wCOgSd,eACE,wCAIJ,UACE,0BAIA,aXzSmB,4BW4SjB,aX5SiB,qBW8Sf,qGAEA,yBAGE,iCAIJ,UX1TI,gBW4TF,wBAIJ,eACE,kBClUJ,kCACE,kBACA,gBACA,mBACA,qCAEA,iBANF,eAOI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBZrBwB,6GYwBtB,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBZtEwB,WANlB,oBY+EN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UZzFI,gFY6FN,kBAGE,qNAKA,kBZjGoB,4IYyGpB,kBR1GQ,qCQiHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAKA,cACA,iBACA,mBACA,mFAGF,iBACE,eACA,WACA,WACA,WACA,qMAGF,eAGE,mEASF,cACE,gBACA,qFAGF,aZ/Jc,YYiKZ,eACA,WACA,eACA,gBACA,+GAGF,aACE,eACA,CACA,sBACA,eACA,yJAEA,cACE,uEAIJ,WACE,kBACA,WACA,eACA,iDAQF,iBACE,mBACA,yHAEA,iBACE,gBACA,+FAGF,UACE,oCAMR,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,qBACA,oFAEA,yBAEE,WC9OJ,gCACE,4CACA,kBAGF,mBACE,sBACA,oBACA,gBACA,kBACA,cAGF,aACE,eACA,iBACA,cbTwB,SaWxB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,abvBsB,eayBpB,SAIJ,wBACE,YACA,kBACA,sBACA,WbrCM,eauCN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,qCACA,mBACA,WACA,4CAEA,wBAGE,4BACA,qCACA,sBAGF,eACE,mFAEA,wBTnEQ,gBSuEN,kBAIJ,wBb1EsB,ea4EpB,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,Ub9FM,mBAIgB,qGa8FpB,wBAGE,8BAIJ,kBbhGsB,2GamGpB,wBAGE,0BAIJ,cACE,iBACA,YACA,cbnHiB,oBaqHjB,uBACA,iBACA,kBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,cAIJ,oBACE,UACA,cbjIoB,SamIpB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,sCACA,4BACA,2CACA,oBAGF,oCACE,uBAGF,aACE,6BACA,eACA,qBAGF,abxKwB,gCa4KxB,QACE,uEAGF,mBAGE,uBAGF,abzLmB,sFa4LjB,aAGE,oCACA,6BAGF,kCACE,gCAGF,aACE,6BACA,8BAGF,abzMsB,uCa4MpB,aACE,wBAKN,sBACE,8BACA,qBACA,kBACA,YACA,8BAEA,6BACE,mBAKN,ablOqB,SaoOnB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,oCACA,4BACA,2CACA,yBAGF,kCACE,4BAGF,UACE,6BACA,eACA,0BAGF,abhQwB,qCaoQxB,QACE,sFAGF,mBAGE,gBAIJ,iBACE,uBACA,YAGF,WACE,cACA,qBACA,QACA,SACA,kBACA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,uCAIJ,MACE,kBACA,CT/SU,sESsTZ,aTtTY,uBS0TZ,aT3Tc,4DSiUV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UbtVM,0BawVJ,eAIJ,aACE,eACA,gBACA,uBACA,mBACA,iBAEA,aACE,wBACA,sBAIA,cACA,gBAKA,yCAPF,WACE,CAEA,gBACA,uBACA,gBACA,mBAWA,CAVA,mBAGF,aACE,CACA,cAKA,8BAIA,yBACE,sBAIJ,SACE,YACA,eACA,iBACA,uBACA,mBACA,gBACA,CAME,sDAGF,cACE,YACA,kBACA,oBACA,qBAKN,eACE,wBAGF,cACE,eAGF,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cTxX4B,eAEC,0DSyX3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cThZ4B,eAEC,WSiZ3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,WAIJ,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBbzdqB,ca2dnB,kBACA,uCACA,mBAEA,eACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0Bb7eiB,2BaifnB,WACE,iBACA,uBACA,yBbpfiB,8BawfnB,QACE,iBACA,uBACA,4Bb3fiB,6Ba+fnB,SACE,gBACA,2BACA,2BblgBiB,wBawgBnB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBb9gBiB,WAHb,gBaohBJ,uBACA,mBACA,yFAEA,kBblhBsB,cAHL,Ua0hBf,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBbxiBiB,ca0iBjB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBbjkBiB,WAHb,gBaukBJ,uBACA,mBACA,oDAEA,SACE,oDAGF,kBbzkBsB,cAHL,iBamlBrB,qBACE,iBAIA,sBACA,cb5kBgB,oBa+kBhB,cACE,gBACA,mBACA,kBACA,mBAGF,cACE,mBACA,iBAIJ,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,Wb5pBM,qBa8pBN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCVxoBA,6GADF,kBUgpBI,4BACA,kHV5oBJ,kBU2oBI,4BACA,wBAIJ,+BACE,cb/qBsB,sBamrBxB,eACE,aACA,2BAGF,aACE,eACA,kBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBbpsBsB,yBassBtB,gBACA,kBACA,eACA,gBACA,iBACA,WbjtBI,mDastBR,oBACE,aAGF,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,gBAIJ,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,gDACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBbtxBwB,qCawxBxB,sEAGF,wBACE,4CAGF,wBb9xB0B,+EakyB1B,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,sBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBb11BwB,yDa81B1B,kBb/1B0B,2Baq2B1B,iBACE,gBACA,cAGF,aACE,kBAGF,kBb92B0B,cag3BxB,oBAEA,abp3BmB,oBaw3BnB,ab32BgB,yBa+2BhB,0BACE,CADF,uBACE,CADF,kBACE,kDAKA,sBACA,cACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,abj4Bc,eam4BZ,0DAEA,abr4BY,0Bau4BV,sDAIJ,oBACE,cbz5Be,sMa45Bf,yBAGE,0BAKN,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cb56Be,aa86Bf,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,abv8Be,qBa88BrB,oBACE,kBACA,eACA,iBACA,gBACA,mBbj9BwB,gBam9BxB,iBACA,qBAGF,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,ab9+BqB,uBag/BnB,CACA,WACA,CADA,+BACA,sBACA,cACA,oBACA,mBACA,cACA,WACA,0CAEA,Ub7/BM,4BAMkB,qCGkBtB,yDADF,cU6+BE,sBAGF,UbvgCM,gCaygCJ,sDAEA,Ub3gCI,4BAMkB,mDa6gC1B,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAIJ,uBACE,2BACA,gDAGF,abphCsB,6BashCpB,uDAGF,abpiC0B,yDawiC1B,aACE,YAGF,aACE,cbniCgB,6BaqiChB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,oBAGF,gBACE,qEAGF,4BACE,gCAGF,eACE,kBACA,MACA,QACA,YACA,kBACA,YAEA,mBACA,yBACA,eACA,aAEA,wCAEA,UT/hCsB,mBSiiCpB,aACA,sBACA,mBACA,uBACA,mBACA,8BACA,wBACA,gCACA,uCAGF,wBACE,kBACA,WACA,YACA,eACA,cbhnCiB,yBaknCjB,aACA,uBACA,mBACA,sCAGF,mBACE,6CAEA,8BACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,oBAGF,ab/nCkB,eaioChB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,6BAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,YACE,SACA,QACA,WACA,YACA,mBACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,8BACA,kBACA,iBACA,Wb5yCE,gBa8yCF,eACA,+LAMA,6BACE,mEAKF,6BACE,iBAMR,aACE,iBACA,mEAGF,abp0CqB,qBaw0CnB,mBACA,gBACA,sBACA,gBAGF,aACE,iBACA,uBAGF,eACE,8BAGF,abv1CqB,eay1CnB,cACA,gBACA,gBACA,uBAGF,qBACE,sBAGF,WACE,8BAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA3BF,qBAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,iBAIJ,0DACE,CADF,kDACE,cAGF,kBACE,8BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBbx6CwB,kCa06CxB,uBAGF,MACE,aACA,mBACA,uBACA,cbn7CmB,eaq7CnB,gBACA,0BACA,kBACA,qCAGF,SACE,oBACA,CADA,WACA,cAGF,wBb77C0B,Wa+7CxB,kBACA,MACA,OACA,aACA,qBAGF,iBACE,aAGF,iBACE,cACA,aACA,WACA,yBb98CwB,kBag9CxB,cACA,UACA,WACA,eAGF,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,eACA,uBAGF,oBACE,mBb1+CsB,kBa4+CtB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cbngDe,kBaqgDf,+BAGF,abxgDiB,ea0gDf,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UbrhDE,qBauhDA,oHAEA,yBAGE,yCAKN,QACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UbjjDI,oBa0jDN,kBACA,cACA,2BAGF,eACE,UAGF,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cb3kDiB,gBa6kDjB,gBAEA,ab5kDsB,0Ba8kDpB,sBAEA,oBACE,gBAIJ,qBACE,4BAKN,GACE,cACA,eACA,WARI,mBAKN,GACE,cACA,eACA,2CCrmDF,u+KACE,uCAEA,u+KACE,CAOA,8MAMF,okBACE,UClBJ,YACE,gCACA,cACA,qBACA,iCAEA,aACE,cACA,cfJiB,gBeMjB,qBACA,eACA,gBAGF,WACE,UACA,yCAEA,8CAEA,WACE,iBACA,mBAKN,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,gBX0BwB,wBD9DtB,4BACA,kBYqCA,eACA,yBAEA,oBACE,sBACA,iBACA,4BZ3CF,eYiDE,2DAHF,gBXesB,wBD9DtB,4BACA,CYgDE,iBAOE,CANF,+BZjDF,UYqDI,CACA,qBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WfjEE,6BemEF,gBACA,eACA,0BAKN,iBACE,WACqB,sCZpErB,+BANA,UY8EuB,sCZxEvB,gEYsEA,gBXfsB,wBD9DtB,4BYyFE,CZlFF,iCANA,UYmFuB,sCZ7EvB,kBY+EE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,2BAGF,aACE,mBACA,sBAGF,YACE,cf1FgB,6Be6FhB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,4BAGF,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,8BACA,eACA,oCACA,uCAEA,aACE,kCAGF,+BACE,gCAGF,aACE,yBACA,eACA,cfpKiB,kCewKnB,aACE,eACA,gBACA,Wf9KI,CemLA,2NADF,eACE,gCAKN,aflLwB,oBeuL1B,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,wBAGF,gBACE,qBACA,eACA,cf5MmB,ee8MnB,kBACA,4BAEA,af9MwB,6BekNxB,aACE,gBACA,uBACA,iBAIJ,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,afhPqB,eekPnB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SZ5MF,sBACA,WACA,YACA,gBACA,oBACA,mBHrDwB,cAFL,eG0DnB,SACA,+EYsMI,aACE,CZvMN,qEYsMI,aACE,CZvMN,yEYsMI,aACE,CZvMN,gEYsMI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,af3Qc,iBe6QZ,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,afjTiB,0HesTjB,cAEE,gBACA,cf5SY,kZe+SZ,aAGE,gEAIJ,wBACE,iDAGF,eXzUI,kBDkEN,CAEA,eACA,cH7CiB,uCG+CjB,UYoQI,mBfzUe,oDGuEnB,wBACE,cHlDe,eGoDf,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,WH3FI,sDegVJ,WACE,mDAGF,UfpVI,kBesVF,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UfvWQ,kBeyWN,cACA,mBACA,sBf1WM,yBe4WN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,6BAIJ,YACE,eACA,gBACA,wBAGF,WACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cf/ZiB,eeiajB,eACA,gBACA,kBACA,qBACA,kBACA,yJAEA,afxaiB,qWe2af,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,sBAQR,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cfhdc,Cemdd,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,2BAIJ,afzfqB,ee2fnB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WfhnBA,gBeknBA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cftnBW,gBewnBX,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,Wf7oBE,gDeipBJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,aX3pBU,yBWiqBd,cACE,gCAEA,cACE,cfpqBe,eesqBf,kCAEA,oBACE,cfzqBa,qBe2qBb,iBACA,gBACA,yCAEA,eACE,WfnrBF,SgBDR,YACE,gCACA,8BAEA,aACE,cACA,WhBLI,qBgBOJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,mCCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,EDGF,0BCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,qCAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,EAtBA,2BAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,gCAIJ,cACE,kBAGF,iBACE,cACA,eACA,iBACA,qBACA,gBACA,iBACA,gBACA,wBAEA,SACE,4BAGF,UACE,YACA,gBACA,sBAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,qEAGF,kBACE,qBACA,sGAEA,eACE,qEAIJ,eAEE,qJAEA,kBAEE,mXAGF,eACE,mBACA,qJAGF,eACE,gBACA,2EAGF,eACE,+NAGF,eACE,2FAGF,iBACE,8BACA,cjB5Ge,mBiB8Gf,qHAEA,eACE,2JAIJ,eACE,mJAGF,iBACE,6EAGF,iBACE,eACA,6EAGF,iBACE,qBACA,qJAGF,eACE,6JAEA,QACE,2EAIJ,oBACE,2EAGF,uBACE,oBAIJ,ab9Ic,qBagJZ,0BAEA,yBACE,8BAEA,aACE,kCAKF,oBACE,uCAEA,yBACE,wBAKN,ajBjKc,4CiBsKhB,YACE,8EAEA,aACE,mCAIJ,aACE,oDAEA,ab5LQ,ea8LN,CAKF,sDAEA,kBAEE,gCAKN,oBACE,kBACA,mBACA,YACA,WjBrNM,gBiBuNN,eACA,cACA,yBACA,oBACA,eACA,sBACA,sCAEA,kBACE,qBACA,+DAGF,oBACE,iBACA,sBACA,kBACA,eACA,oBACA,2GAKF,oBAGE,4BAIJ,ajBtOkB,SiBwOhB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,mDAGF,iBAEE,gCAGA,qEAEA,eACE,kBAKF,SACE,mBACA,kDAEA,kBACE,wDAEA,sBACE,iFAIJ,kBAEE,SAKN,iBACE,kBACA,YACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QAPF,kBAUI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,ajBtUiB,qCiB0UjB,UjB7UI,6BiBiVJ,ajBxTe,CAzBX,kEiByVJ,UjBzVI,kCiB4VF,ajBtVoB,gEiB0VpB,UjBhWE,mBAIgB,sEiBgWhB,kBACE,mBAMR,uBACE,sBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,yCAEA,aACE,kBACA,OACA,QACA,MACA,SACA,6FACA,oBACA,WACA,2DAGF,oBACE,oCAGF,WACE,gBACA,uBACA,cACA,0CAEA,UACE,kBACA,MACA,gBACA,gEACA,oBACA,4CAGF,oBACE,gDAGJ,uDACE,mEAEF,uDACE,0CAGF,eACE,6DAGF,kBACE,gCAIJ,mBACE,+CAKF,sBACE,qEAEA,aACE,wBAKN,oBACE,YACA,CjBpagB,ciBsahB,iBACA,mBACA,CACA,sBACA,8CANA,ajBpagB,CiBwahB,eAOA,8CAGF,aACE,eACA,eAGF,YACE,8BACA,eACA,oBAEA,sBACE,gBACA,2CAGF,oBACE,sBAIJ,YACE,mBACA,WACA,cjBxcoB,iIiB2cpB,gBAGE,kBACA,0EAGF,yBACE,yEAMA,0CACE,CADF,kCACE,2EAKF,2CACE,CADF,mCACE,wBAKN,YACE,mBACA,2BACA,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,gBACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,mBACA,iBACA,cjBrhBgB,CiBuhBhB,iBACA,eACA,kBACA,+CAEA,ajB5hBgB,uBiBgiBhB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cjBxjBgB,4BiB8jBtB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cjBlnBgB,eiBonBhB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,6JAGF,oBAME,4DAKA,UjBzqBM,kBiB+qBN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,ajBzsBqB,ciB2sBnB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WjB3tBI,kCiBguBR,UACE,kBACA,iBAGF,SACE,kBACA,YACA,WACA,CjBztBgB,8IiBouBhB,ajBpuBgB,wBiBwuBhB,UACE,wCAGF,kBjBnvBsB,WAThB,8CiBgwBJ,kBACE,qBACA,+DAOJ,yBACE,cAIJ,YACE,eACA,yBACA,kBACA,cjBlwBgB,gBiBowBhB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cjB3yBe,uBiB6yBf,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UjBvzBE,yBiB8zBJ,cACE,kBACA,YACA,+DAGF,aACE,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACE,YACA,SACA,2BAIF,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cjBl2BmB,gBiBo2BnB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,ajBh3BqB,oBiBo3BrB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,kBAGF,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cjB57Bc,iBiB87Bd,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cjB19BY,gBiB49BZ,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,ajB7+Bc,oCiBm/BlB,cACE,cACA,SACA,uBACA,UACA,kBACA,oBACA,oFAEA,yBAEE,6BC/gCJ,kBACE,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,8BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,6CAGF,kBlBtCqB,WAHb,kBkB8CN,gBACA,aACA,sBACA,0BAGF,WACE,WACA,gBACA,iBACA,8DAEA,UACE,YACA,sBACA,aACA,sBACA,mBACA,uBACA,aACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAIJ,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,qCAGF,kBACE,UACE,YACA,gBACA,0BAGF,UACE,YACA,eACA,gBACA,cACA,oDAIJ,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,alBhImB,SkBmIjB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,ClBpJE,wyEkB2JF,UAGE,sBAMR,sBACE,yBAGF,aACE,aACA,mBACA,uBACA,wBAGF,UACE,YACA,mBACA,mBACA,aACA,eACA,8BAEA,kBACE,+BAGF,cACE,mBACA,kCAIJ,mBACE,CACA,mBACA,0EAEA,mBACE,yBAIJ,cACE,iBACA,4BAEA,cACE,gBACA,WlBjNI,mBkBmNJ,2BAGF,alBhNwB,kGkBmNtB,aAGE,2CAIJ,aACE,2BAGF,cACE,clBlOiB,gBkBoOjB,mBACA,sCAEA,eACE,kCAGF,eACE,mBlB1OoB,cAFL,kBkB+Of,eACA,gBACA,CAII,2NADF,eACE,oCAOV,WACE,UACA,mCAME,mBACA,mBACA,sCAEA,cACE,iBACA,kBACA,qCAGF,eACE,oCAIJ,kBACE,mBACA,kBACA,eAIJ,iBACE,eACA,mBACA,sBAEA,eACE,WlBnSI,kBkBqSJ,yBACA,eACA,qBAGF,kBlBrSwB,cAFL,gBkB0SjB,aACA,kBACA,6HAQF,eACE,qJAGF,kBACE,clBzTiB,mBkB2TjB,kBACA,aACA,kBACA,eACA,sCACA,yPAEA,iBACE,mBACA,qNAGF,mBACE,gBACA,4CAMJ,YACE,mBACA,gDAEA,UACE,cACA,4DAEA,aACE,2DAGF,cACE,kDAGF,iBACE,uDAIJ,eACE,sDAIJ,UlB5WM,2DkBiXR,0BACE,cACE,iBACA,qJAGF,cAIE,mBACA,4CAGF,kBACE,sDAGF,WACE,eACA,mBAIJ,oBACE,eACA,gBACA,iBACA,uHAGF,kBAOE,WlBvZM,kBkByZN,gBACA,eACA,YACA,kBACA,sBACA,+SAEA,alBhZgB,YkBkZd,eACA,WACA,eACA,gBACA,uSAGF,YACE,uPAGF,WACE,WACA,+WAGF,aACE,wBAKF,edvbM,CJEa,gBkBwbjB,oBACA,iEd3bI,2BJEa,qDkBicrB,iBAEE,aACA,qEAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,kKAIJ,YAKE,8BACA,mBlBldmB,akBodnB,iBACA,0LAEA,aACE,iBACA,clBzdiB,mBkB2djB,kNAGF,aACE,6DAIJ,cAEE,yDAGF,WAEE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,alBthBwB,qCkB0hBxB,oDAZF,eAaI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,UlB1jBI,gBICA,ac4jBJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,ed5kBI,yBc8kBF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,UlB7lBE,oBkB+lBA,eACA,gBd/lBA,+CcomBJ,YACE,8BACA,mBACA,4CAIJ,aACE,WlB7mBI,ekB+mBJ,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,UlBxnBI,ekB0nBF,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eAWE,eACA,wBAXA,eACE,iBACA,uBAGF,aACE,gBACA,2CAMF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,UlBzqBE,akB2qBA,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBlBprBgB,WANlB,iJkBisBA,iBAGE,oMAUR,aACE,iIAIJ,4BAIE,clBptBmB,ekBstBnB,gBACA,6cAEA,aAGE,6BACA,uCAIJ,iBACE,mBACA,oBACA,eAEA,yFAEA,qBACE,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,UlBnxBI,CkBqxBF,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gDACA,mBlBzzBoB,WALlB,ekBi0BF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,cAKN,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBd12BM,yDc62BN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBdr3BI,uBcy3BN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UlBv5BI,ekBy5BF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,wBAKN,gBACE,sCAEA,eACE,gCAGF,eACE,qDAGF,UlB57BM,iDkBg8BN,YACE,0DAEA,YACE,0BAIJ,YACE,iBACA,uBACA,kDAGF,alB77BoB,qBkB+7BlB,wDAEA,yBACE,WCp9BN,YACE,kCAEA,iBACE,MACA,QACA,oIAEA,mCAEE,oBAKN,cACE,uBACA,eACA,gBACA,cnBfmB,4CmBkBnB,afjBY,sCesBd,2CACE,oBAGF,QACE,wBACA,UACA,+CAEA,WACE,mBACA,UACA,0BAGF,aACE,sBACA,SACA,YACA,kBACA,aACA,WACA,UACA,WnBjDI,gBICA,eemDJ,oBACA,gBACA,qDAEA,anBxCc,CmBsCd,2CAEA,anBxCc,CmBsCd,+CAEA,anBxCc,CmBsCd,sCAEA,anBxCc,gCmB4Cd,8ChB/CA,uCADF,cgBiD4D,0ChB5C5D,cgB4C4D,oBAI9D,UnBjEQ,mBmBmEN,mBnB/DsB,oCmBiEtB,iBACA,kBACA,eACA,gBACA,sBAEA,anBxEmB,gBmB0EjB,0BACA,mFAEA,oBAEU,iCAKZ,mBACA,eAEA,gBACA,wCAEA,anBvFwB,sDmB2FxB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,gBACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBnB7GsB,qCmBoH1B,eACE,kBACA,aACA,mBnBzHsB,gBmB2HtB,gBACA,cACA,yBAEA,iBACE,gBACA,wCAEA,UnBvII,iCmByIJ,WACE,iBACA,2BAIJ,iBACE,cACA,CACA,cACA,iBACA,WnBpJI,qBmBsJJ,gBACA,iBACA,qBACA,mBACA,gBACA,gGAEA,kBACE,qBACA,iIAEA,eACE,kJAIJ,eACE,mBACA,2DAGF,eACE,eACA,8BAGF,cACE,wFAGF,eACE,sCAGF,iBACE,2BACA,WnB1LE,mBmB4LF,mDAEA,eACE,8DAIJ,eACE,0DAGF,iBACE,+BAGF,iBACE,eACA,2DAGF,eACE,+DAEA,QACE,8BAIJ,oBACE,8BAGF,uBACE,6BAGF,anB7NiB,qBmB+Nf,mCAEA,oEAGE,oBACE,gDAEA,qDAMR,UACE,YACA,gBACA,uDAIJ,iBAEE,WACA,mIAGE,aACE,sBACA,SACA,YACA,0BACA,yBACA,WACA,iBACA,UACA,WnBtQE,gBICA,eewQF,oBACA,YACA,qBACA,yLAEA,anB9PY,CmB4PZ,sKAEA,anB9PY,CmB4PZ,8KAEA,anB9PY,CmB4PZ,4JAEA,anB9PY,yKmBkQZ,SACE,qJAGF,kBnBnRe,+ImBoRf,8ChB1QF,8JADF,cgB4Q8D,kKhBvQ9D,cgBuQ8D,qChBhQ5D,8TADF,sBgBoQM,gBACA,6BAMR,aACE,kBACA,SACA,UACA,WACA,gBACA,2CAEA,aACE,mBACA,WACA,YACA,cnB3SiB,emB6SjB,iBACA,kBACA,WACA,4CAIJ,iBACE,SACA,oCAGF,aACE,kBACA,sBACA,SACA,0BACA,YACA,WACA,WnBnUM,mBAGa,sCmBmUnB,eACA,WACA,aACA,6CAGF,aACE,0CAGF,YACE,eACA,kBACA,iMAEA,kBAGa,iKAEb,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,+DAGF,6BACE,qEAEA,aACE,gBACA,uBACA,mBACA,sEAGF,eACE,qEAGF,aACE,iBACA,gBACA,uBACA,mBACA,4EAMA,anB3Xe,wBmBgYrB,eACE,iCAEA,YACE,mBACA,eACA,oBACA,YACA,gBACA,8BAIJ,UACE,WACA,cACA,kCAEA,iBACE,kBACA,aACA,WACA,sBfzZI,wBe2ZJ,sBACA,4BACA,gBACA,2CAEA,aACE,kBACA,sBACA,SACA,OACA,SACA,SACA,aACA,WACA,cnBtae,gFmBwaf,eACA,oBACA,gBACA,UACA,UACA,4BACA,iDAEA,UflbE,sEeobF,WACE,cnBnba,CIFb,4DeobF,WACE,cnBnba,CIFb,gEeobF,WACE,cnBnba,CIFb,uDeobF,WACE,cnBnba,yCmBwbjB,2EAKE,0CAKN,iFACE,aACA,uBACA,8BACA,UACA,4BACA,8CAEA,aACE,cnB3ciB,emB6cjB,gBACA,aACA,oBACA,2JAEA,aAGE,wCAIJ,SACE,kCAIJ,YACE,aACA,cnBhemB,gBmBkenB,sCAEA,cACE,kBACA,2CAGF,aACE,gDAEA,aACE,eACA,gBACA,yBACA,qDAGF,iBACE,eACA,kBACA,WACA,WACA,mBnBlfkB,8DmBqflB,iBACE,MACA,OACA,WACA,kBACA,mBnB7fkB,0BmBogB1B,UnB1gBQ,oBmB4gBN,eACA,gBf5gBM,4BeghBR,YACE,gBACA,0BACA,YACA,aACA,8BACA,cACA,oBAGF,YACE,cACA,sBAEA,oBACE,uBACA,cACA,YACA,iBACA,sBACA,uBAGF,oBACE,aACA,CAEA,oBACA,CADA,0BACA,UACA,QACA,YACA,uBACA,2BAIJ,iBACE,iBACA,0CAKE,yBACE,qCACA,WnB9jBE,mBAMkB,gBmB2jBpB,8CAGA,yBACE,oCACA,uCAMR,iBACE,kBACA,uCACA,gBf9kBM,gBeglBN,uBACA,6CAGF,YACE,mBACA,aACA,WnBxlBM,emB0lBN,sDAEA,aACE,cnB1lBiB,wEmB6lBjB,6EAEA,aACE,WnBnmBE,gBmBqmBF,sGAIJ,kBnBnmBwB,WANlB,6PmBinBF,UnBjnBE,0DmBqnBN,wCAGF,gBACE,iBACA,mBACA,gBACA,yBACA,cACA,+BAEA,oBACE,SACA,eACA,kBACA,gCAGF,oBACE,aACA,UACA,WACA,kBACA,kCAIA,af5oBU,CgBFZ,+BAHF,YACE,cACA,kBAUA,CATA,cAKA,kBACA,2BACA,gBAEA,uBAEA,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,wHAMJ,WAGE,mCAIJ,YACE,mBACA,uBACA,YACA,CpBlFwB,IoBiG1B,aACE,aACA,sBACA,WACA,YACA,CAIA,oBAGF,qBACE,WACA,mBACA,cpB/GwB,eoBiHxB,cACA,eACA,SACA,iBACA,aACA,SACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cpBlIwB,eoBoIxB,cACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,cAGF,kBACE,WpB7KM,coB+KN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cpB5LiB,kGoB+LjB,sBAGE,WpBrME,kCoByMJ,apBnMsB,oBoByM1B,oBACE,iBACA,oBAGF,kBpB/M0B,cAWR,iBoBuMhB,eACA,gBACA,yBACA,eACA,yBAGF,iBACE,cACA,UACA,gCAEA,sCACE,uCAEA,aACE,WACA,kBACA,aACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,kFACA,wCAIJ,SACE,kBACA,gBAIJ,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,uBAEA,QACE,YACA,aACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,apB/QwB,4CoBoRtB,apBpRsB,yCoBsRpB,4CAIJ,SAEE,SAIJ,WACE,kBACA,sBACA,aACA,sBACA,gBACA,wDAEA,SACE,gBACA,gBACA,qBAGF,kBpB/SwB,yBoBoT1B,WACE,aACA,cACA,uBAGF,kBACE,iCAGF,iBACE,sEAGF,kBACE,SACA,cpBtUmB,eoBwUnB,eACA,eACA,kFAEA,aACE,CAKA,kLAEA,UpBvVI,mBoByVF,kFAKJ,2BACE,wCAIJ,YACE,oBACA,6BACA,+CAEA,sBAEE,kBACA,eACA,qBACA,0CAGF,eACE,gDAKJ,SACE,6BAGF,eACE,gBACA,gBACA,cpB1XmB,0DoB4XnB,UACA,UACA,kBACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,iCAIF,eACE,2CACA,YACE,WACA,mCAKN,kBACE,aACA,mCAIA,apBlamB,0BoBoajB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,uBAKN,oBACE,uBACA,gBACA,mBACA,OACA,sBAGF,oBACE,iBACA,6EAGF,apBpbkB,mBAXQ,kBoBocxB,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBACA,4EAdF,cAeI,6FAGF,eACE,mFAGF,apBpdwB,qBoBsdtB,qGAEA,yBACE,uCAKN,kBACE,aACA,eAGF,qBACE,uCAKA,sBACE,6BACA,qCASF,qCAXA,sBACE,6BACA,sCAgBF,mJAFF,qBAGI,sBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,kBACA,uCAEA,SACE,kCAKN,aACE,aACA,yBC9hBJ,iBACE,eACA,gBACA,crBcgB,mBAXQ,4BqBCxB,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,crBhBY,qCqBoBd,cACE,gBACA,kBCtCJ,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,gBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WtB3EF,gBsB6EE,gBACA,uBACA,0CAGF,aACE,eACA,ctBjFW,gBsBmFX,gBACA,uBACA,yBAKN,kBtBxFsB,asB0FpB,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,cAOV,kBtB9H0B,sBsBiIxB,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,CC/KJ,eAGF,SpBkDE,sBACA,WACA,YACA,gBACA,oBACA,mBHrDwB,cAFL,eG0DnB,SACA,coBxDA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,4CACA,eACA,WACA,YACA,cvBrDiB,euBuDjB,oBACA,0BAEA,mBACE,WACA,0BAIJ,sBACE,iCAEA,mBACE,WACA,gCAIJ,QACE,uBACA,cvB7DkB,euB+DlB,uCAEA,uBACE,sCAGF,aACE,yBAKN,avB5EkB,mBuB8EhB,gCACA,kBACA,eACA,gBACA,uBAGF,YACE,cvBnGmB,kBuBqGnB,iBAIA,avB5FgB,mBuB8Fd,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cvBtHY,gBuBwHZ,uBACA,mBACA,4BAEA,eACE,uBAGF,avB7Ie,qBuB+Ib,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cvBxKe,0BuB4KjB,aACE,WACA,2CAEA,mCACE,yBACA,0CAGF,wBACE,WC1LR,yCCCE,qBACA,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,8BAIJ,erBXQ,kBqBaN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBrBvCM,kBqByCN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,4BAGE,2DAIJ,WACE,wBAKF,2BACE,eAIJ,aACE,wBACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,SACA,WACA,YACA,0EAMA,SACE,oBACA,CADA,WACA,eChGN,WAEE,0BAGF,kBANW,kBAQT,cACA,iCACA,wBACE,mCAOF,WACE,SACA,UACA,2CAGF,aACE,aAEA,sBACA,YACA,6BACA,6DAGE,oBACE,WACA,iBACA,iBACA,iJAGF,UACE,gEAEF,oBACE,gBACA,WACA,2CAKN,yBACE,sBACA,kBACA,YACA,gBACA,kDAEA,uBACE,CADF,oBACE,CADF,eACE,WACA,YACA,SACA,4BACA,WACA,yBACA,eACA,4CACA,sBACA,oBACA,6DAEA,uBACE,6DAGF,sBACE,wEAGF,sBACE,kBACA,SCjFR,WACE,sBACA,aACA,sBACA,kBACA,iBACA,UACA,qBAEA,iBACE,oBAGF,kBACE,2DxBDF,SwBI0D,yBxBC1D,SwBD0D,qCxBQxD,qLwBLA,yBAGF,eACE,gBACA,eACA,qCxBZA,4BwBgBA,SACE,WACA,YACA,eACA,UACA,+BALF,SACE,WACA,YACA,eACA,UACA,yCAIJ,4BAGF,YACE,mBACA,mBACA,UACA,mBACA,eACA,mBAEA,aACE,sBACA,oCACA,sBACA,YACA,cACA,c3BpDiB,kB2BsDjB,qBACA,eACA,mBAGF,iCACE,iDAEA,YAEE,mBACA,mCACA,SAKN,iBACE,mBACA,UACA,qCxBrDE,6CADF,ewBwDkF,sCxBlEhF,sBADF,cwBoE0D,yBxB/D1D,cwB+D0D,gBAG5D,evBlFQ,kBDkEN,CACA,sBACA,gBACA,cH7CiB,uCG+CjB,mBAEA,wBACE,cHlDe,eGoDf,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,WH3FI,kB2BuFR,YACE,c3BrFmB,a2BuFnB,mBACA,oBAEA,aACE,qBACA,wBAGF,aACE,c3BhGiB,gB2BkGjB,mBACA,gBACA,uBACA,0BAIJ,aACE,gBACA,gBACA,kBAGF,kB3B7G0B,kB2B+GxB,gBACA,yBAEA,a3BvGgB,mB2ByGd,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,c3B/HY,iC2BkIZ,oBACE,iBACA,8FAIJ,eAEE,mCAGF,aACE,aACA,c3B5Je,qB2B8Jf,0HAEA,aAGE,0BACA,gBAQN,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAgBA,CAfA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,uBAEA,kB3B/LwB,0B2BoM1B,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,UACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oCAGF,aACE,WACA,YACA,YACA,eACA,sCAGF,yBAzBF,aA0BI,iBAIJ,kBACE,eACA,gBACA,mBAGF,cACE,kBACA,MACA,OACA,WACA,YACA,8BACA,oBCrPF,kBACE,gBACA,W5BDM,e4BGN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,e5BbQ,cAEa,S4BcnB,WACA,YACA,iEAEA,aAGE,iCAGF,eACE,2BzBcF,iBACE,mBACA,cACA,eACA,aACA,gBACA,yByBfJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,6BAGF,aACE,kBACA,W5B9CM,8B4BgDN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,wDAKE,SACE,uBAKN,WACE,aACA,sBACA,4BAEA,iBACE,c5BzEiB,a4B2EjB,YACA,mBACA,CAGE,yDAIJ,UACE,gBAIJ,qBACE,eACA,gBACA,kBACA,kBACA,WACA,aACA,2BzBzDA,iBACE,mBACA,cACA,eACA,aACA,gBACA,sByBwDJ,WACE,sBACA,cACA,WACA,kBACA,kBACA,gBACA,kCAEA,eACE,qEAIA,cACE,MACA,gCAIJ,exB5HM,gCwBiIR,cACE,cACA,qBACA,c5BjImB,kB4BmInB,UACA,mEAEA,WAEE,WACA,sBACA,CADA,gCACA,CADA,kBACA,CAIE,0HAFF,WACE,oBACA,CADA,8BACA,CADA,gB5B/IE,C4BgJF,wBAKN,UACE,CAEA,iBACA,MACA,OACA,UACA,gB5B5JM,iC4B+JN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,aACA,uBACA,qCAGF,cACE,YACA,WACA,kBACA,UACA,sBACA,CADA,gCACA,CADA,kBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,qDAEA,WACE,oBACA,CADA,8BACA,CADA,gBACA,sCAIJ,0BACE,2BACA,gBACA,kBACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,cxBrK0B,eAEC,CwB+K7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,6BACE,sBACA,SACA,W5BlQM,e4BoQN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,c5B7SiB,mF4BgTjB,yBAGE,wBAKN,oBACE,sBAGF,qBxB9TQ,YwBgUN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wB5BpU0B,qB4BwU1B,iBACE,UACA,QACA,YACA,qKAKA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,oCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gBxBnZM,ewBqZN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,gCAGF,UACE,YACA,0BzB3XF,iBACE,mBACA,cACA,eACA,aACA,gBACA,qByB0XF,eACE,gBACA,UACA,kBACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gBxBxeI,cJGa,gB4BwejB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,CAGE,gUAEA,aAIE,wBAKN,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,UxB9iBE,+EwBsjBN,cAGE,gBACA,6BAGF,UxB7jBM,iBwB+jBJ,yBAGF,oBACE,aACA,mDAGF,UxBvkBM,uBwB4kBN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,WxB5nBE,sFwB+nBF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,iBCtsBR,YACE,mBACA,mBACA,kBACA,QACA,SACA,YACA,mBAGF,YACE,kBACA,gBACA,qBACA,8BACA,eACA,iBACA,yBACA,WACA,4BACA,wCAEA,uBCtBF,kB9BM0B,sB8BJxB,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kB9BhD0B,sB8BkDxB,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,aC3FJ,cAOE,qBACA,W/BPM,gD+BEJ,iBACA,+BAOF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mB/BlBiB,4B+BsBnB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,c/BjCmB,c+BmCnB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,a/BjD0B,mC+BoDxB,aACE,oDAGF,QACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBACA,uBAIA,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gB3B5FM,sB2B8FN,sGAEA,mCAEE,oBAKF,2BACA,gB3BxGM,0B2B2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,6BACA,W/BnHI,yB+BqHJ,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,mCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gB3BpKI,mB2ByKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,c/B/JiB,mD+BkKjB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,wBC1MF,iBACE,aACA,mBACA,mBACA,WhCHM,kBgCKN,YACA,WACA,gBACA,iBACA,gBACA,4DAEA,aACE,eACA,mFAGF,iBACE,kBACA,gBACA,+FAEA,iBACE,OACA,MACA,kCAIJ,aACE,chC3BiB,2BgC+BnB,cACE,gBACA,iBACA,mBACA,2BAGF,cACE,gBACA,iBACA,gBACA,mBACA,0CAIJ,aACE,kBACA,cACA,mBACA,gCACA,eACA,qBACA,aACA,0BACA,4DAEA,aACE,iBACA,gDAGF,kBhC/DmB,iDgCmEnB,kBhChEwB,WANlB,qGgC2EN,kB5BxEU,WJHJ,oCgCiFR,kBACE,YACA,eACA,iBACA,gBACA,8BAGF,aACE,UACA,kBACA,YACA,gBACA,oCAGF,iBACE,4FAGF,eAEE,mBACA,qCAGF,mCACE,UACE,cACA,0CAGF,YACE,4DAEA,YACE,kBCtHN,UACE,eACA,iBACA,oBAEA,cACE,iBACA,gBACA,kBACA,mBAGF,UjCXM,0BiCaJ,oBAGF,eACE,cACA,iBACA,mDAGF,UACE,YACA,gBACA,gCACA,gBC3BJ,WACE,gBACA,aACA,sBACA,yBACA,kBACA,+BAEA,gBACE,eACA,CACA,2BACA,kCAGF,QACE,iCAGF,aACE,6BAGF,sBACE,0BAGF,MACE,kBACA,aACA,sBACA,iBACA,mDAGF,eACE,sB9BlCI,0B8BoCJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,YACE,gBACA,gLAEA,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,CAIA,yFAGF,eACE,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,W9BjNM,kB8BmNN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,mCAGF,kBAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,gCC1QJ,oBACE,gBACA,yCAEA,UACE,YACA,gBACA,iCAGF,kBACE,qBACA,4CAEA,eACE,iCAIJ,anCfmB,qBmCiBjB,uCAEA,yBACE,+CAIA,oBACE,oDAEA,yBACE,gDAKN,aACE,gBAKN,kBACE,eACA,aACA,qBACA,0BAEA,WACE,cACA,qCAEA,yBAJF,YAKI,4BAIJ,wBACE,cACA,kBACA,qCAEA,0BALF,UAMI,uBAIJ,qBACE,WACA,aACA,kBACA,eACA,iBACA,qBACA,gBACA,gBACA,gBACA,aACA,sBACA,6BAEA,aACE,gBACA,mBACA,mBACA,8BAGF,iBACE,SACA,WACA,cACA,mBnCtFoB,kBmCwFpB,cACA,eACA,4BAIJ,YACE,cnClGiB,kBmCoGjB,WACA,QACA,mDAIJ,YACE,oDAGF,UACE,gBAGF,YACE,eACA,mBACA,gBACA,iBACA,wBACA,sBAEA,aACE,mBACA,SACA,kBACA,WACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,cACA,aACA,mBACA,2BACA,2CACA,6BAEA,aACE,aACA,WACA,YACA,iCAEA,aACE,SACA,WACA,YACA,eACA,gBACA,sBACA,sBACA,CADA,gCACA,CADA,kBACA,6BAIJ,aACE,cACA,eACA,gBACA,kBACA,gBACA,cnChKe,mFmCoKjB,kBAGE,4BACA,2CACA,wGAEA,aACE,6BAIJ,0BACE,2CACA,yBACA,yDAEA,aACE,uCAKN,UACE,oCAGF,WACE,8BAGF,anCnMmB,SmCqMjB,eACA,WACA,cACA,cACA,YACA,aACA,mBACA,WACA,2BACA,2CACA,2GAEA,SAGE,cACA,4BACA,2CACA,qCAKF,SACE,OCjON,eACE,eACA,8BAEA,QAEE,gBACA,UAGF,kBACE,kBACA,cAGF,iBACE,cACA,mBACA,WACA,aACA,sBAEA,kBpCfsB,eoCoBxB,iBACE,aACA,cACA,iBACA,eACA,gBACA,qBAEA,oBACE,qBACA,yBACA,4BACA,oEAGF,YAEE,kCAGF,aACE,gCAIA,qBACA,WACA,eACA,WpCtDE,coCwDF,UACA,oBACA,gBhCzDE,sBgC2DF,kBACA,iBACA,sCAEA,oBpC1DoB,0BoC+DtB,cACE,wBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBhClGY,8EgCuGZ,oBAGE,iBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,cACA,cAGF,aACE,qBACA,oBAEA,cACE,eAIJ,eACE,mBACA,cpC7Hc,aoCiIhB,cACE,uBACA,UACA,SACA,SACA,cpCtIc,0BoCwId,kBACA,mBAEA,oBACE,sCAGF,kCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,yBACE,kBACA,gCAEA,YACE,2CAGF,yBACE,aACA,aACA,mBACA,mGAEA,UAEE,aACA,+GAEA,oBpC1LoB,sDoCgMxB,cACE,gBACA,iBACA,YACA,oBACA,cpC1LkB,sCoC6LlB,gCAGF,YACE,mBACA,8CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WpC/NI,qBoCiOJ,WACA,UACA,oBACA,qXACA,sBACA,kBACA,CACA,yBACA,mDAGF,UACE,cAIJ,apCjOkB,qBoCoOhB,+BACE,6BAEA,8BACE,YCpPN,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,sBACE,eACA,gBACA,gBACA,qBACA,crClBmB,oBqCqBnB,arClBwB,0BqCoBtB,6EAEA,oBAGE,wCAIJ,arChCmB,oBqCqCnB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,crC/CiB,qBqCmDnB,iBACE,crCpDiB,uBqCwDnB,eACE,mBACA,kBACA,kBACA,yHAGF,sBAME,mBACA,oBACA,gBACA,crCxEiB,qBqC4EnB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,crCnJe,iCqCuJjB,uBACE,gBACA,gBACA,crC7IY,qDqCiJd,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,uBACA,eACA,iBACA,WrCrNI,iBqCuNJ,kBACA,qEAEA,aAEE,6CAIA,arC7Ne,oCqCkOjB,sBACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,sBACE,eACA,iBACA,gBACA,crC7Pe,mBqC+Pf,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAIE,UACqB,sClCnRzB,CkCoRI,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iBjCpOgB,wBD9DtB,4BACA,iCkCsSE,cACE,mCAEA,aACE,WrC5SA,qBqC8SA,uDAGE,yBACE,2CAKN,aACE,crCrTa,kCqC6TnB,sBAEE,CACA,eACA,eACA,iBACA,mBACA,crCpUiB,sCqCuUjB,arCpUsB,0BqCsUpB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,sBACE,eACA,iBACA,gBACA,mBACA,crC9ViB,wBqCiWjB,sBACE,cACA,eACA,gBACA,cACA,kBAKF,cACA,iBrC5WiB,mCqC0WnB,sBACE,CAEA,eACA,mBACA,crC/WiB,kBqCoXjB,cACA,iBrCrXiB,kBqC6XjB,crC7XiB,mCqC4XnB,sBACE,CACA,gBACA,gBACA,mBACA,crCjYiB,kBqCsYjB,crCtYiB,kBqC8YnB,sBACE,eACA,iBACA,gBACA,mBACA,crCnZiB,mCqCuZnB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,0CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBrCjcwB,kBqCmctB,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAMA,UACqB,sClC9hB3B,mDkCiiBI,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA9DF,iBA+DI,mFAIJ,qBAGE,mBrC3jBsB,kBqC6jBtB,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,arC7lBiB,qCqCimBjB,eACE,WrCrmBE,gBqCumBF,CrCpmBe,yFqCymBb,arCzmBa,+CqC+mBjB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SrC3rBI,YqC6rBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,crCltBe,6BqCstBjB,eACE,iBACA,+BAGF,kBrCztBsB,aqC2tBpB,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,sBACE,eACA,gBACA,cACA,qCAGF,cACE,crCjwBa,uFqCuwBnB,eACE,cASA,CrCjxBiB,2CqC8wBjB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,crC72BsB,qBqC+2BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,crCz2Bc,SsCjBlB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBtCrBwB,UsC0BxB,atCzBwB,0BsC2BtB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBtC9DsB,6BsCgEpB,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+BACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,ctC1GmB,gBsC4GnB,0DAEA,UtCjHM,wDsCqHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBtC5JsB,sBsC8JtB,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBtC3KsB,gCsC8KtB,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBtCnMsB,uCsCsMpB,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,ctC7Oa,gBsC+Ob,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,sCAEA,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBCzRN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBvCZoB,YuCcpB,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SvCzCA,YuC2CE,kBACA,YACA,uCAIJ,aACE,cvC/Ca,qBuCiDb,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,cvCzFa,qBuC2Fb,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UvC1GA,yBuC4GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UvClIE,yBAMkB,gBuC+HlB,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,avClNiB,euCoNf,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,avC7NiB,euC+Nf,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,cvCxOe,mBuC0Of,kBACA,gCACA,4BAGF,cACE,cvChPe,iBuCkPf,gBACA,0CAGF,UvCzPI,gBuC2PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WvCzQE,oBuC2QF,iBACA,gBACA,mBACA,2BAGF,cACE,iBACA,cvChRe,mBuCkRf,kCAEA,UvCvRE,gBuCyRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,0CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BvC9UoB,YuCqV1B,UACE,SACA,cACA,WACA,sDAKA,avCjWmB,0DuCoWjB,avCjWsB,4DuCsWxB,anC1Wc,gBmC4WZ,4DAGF,anC9WU,gBmCgXR,0DAGF,avCtWgB,gBuCwWd,0DAGF,anCtXU,gBmCwXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,6CAKN,aACE,mBACA,2BAGF,oBACE,cvCtae,qBuCwaf,yBACA,eACA,gBACA,gCACA,iCAEA,UvCjbE,gCuCmbA,oCAGF,avChboB,gCuCkblB,iBAMR,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,cvC5diB,CuCieb,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,avCxiBwB,qBuC0iBtB,oBAEA,yBACE,SAKN,aACE,YAGF,gBACE,eACA,mBvCzjBwB,gCuC2jBxB,uBAEA,eACE,oBAGF,YACE,2BACA,mBACA,cvCtkBiB,euCwkBjB,eACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,avCnlBgB,sDuCulBhB,avCpmBmB,qBuCwmBjB,gBACA,yDAIJ,oBAIE,cvCjnBmB,iGuConBnB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBnC9pBc,yBmCkqBd,yBACE,wBAGF,yBnCnqBU,wBmCwqBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,avClrBiB,uBuCwrBjB,wBACA,qBAGF,avC/qBgB,cuCorBlB,kBvC/rB0B,kBuCisBxB,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,cvCvtBe,yBuCytBf,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,anCvuBM,6BmC8uBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,cvC5vBa,mLuC+vBb,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,avC9vBU,iBuCgwBR,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,cvCvxBa,WuC8xBrB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,anC70BY,8CmCk1Bd,qBACE,aACA,WvCt1BI,cuC21BR,iBACE,qBAGF,wBACE,kBACA,2BAEA,cACE,mBvC/1BsB,gCuCi2BtB,kCAEA,cACE,cACA,gBACA,eACA,gBACA,cvC12Be,qBuC42Bf,mBACA,uHAEA,UvCl3BE,iCuCy3BJ,cACE,cvC12BY,uCuC82Bd,YACE,8BACA,mBACA,sCAGF,eACE,0pDCp4BN,kIACE,CADF,sIACE,uIAYA,aAEE,yIAGF,aAEE,qIAGF,aAEE,6IAGF,aAEE,UChCJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,+BAGF,eACE,2EAGF,UAEE,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,+BAGF,UACE,0BAGF,gBACE,eACA,UAGA,WACA,yCAGF,iBACE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,gBACA,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,qEACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,sBChbJ,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,W1CtCI,uB0CwCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,c1C/CiB,kB0CiDjB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,a1CpEmB,gB0CsEjB,qBACA,wBCxEJ,kB3CG0B,C2CCtB,4EAGF,kBACE,gDAEA,kB3CPsB,wC2CcxB,gBACE,uCAGF,iBACE,kCAIJ,kBACE,yBACA,mEAEA,uDACE,kDAIJ,kBACE,mFAEA,uDACE,qBAMF,eACE,0CAIJ,kDACE,gBAGF,kB3CnD0B,0B2CuD1B,i2BACE,oCAEA,sDACE,CADF,8CACE,iDAOF,kBAEE,uDAEA,kBACE,qBACA,C3CxEoB,8E2CuF1B,kB3CvF0B,4B2C6FxB,yB3C7FwB,2B2CiGxB,wB3CjGwB,8B2CqGxB,2B3CrGwB,6B2CyGxB,0B3CzGwB,wB2CgHxB,kB3ChHwB,cAFL,0F2C2HnB,aACE,4GAEA,kKAEA,aACE,CAHF,6HAEA,aACE,CAHF,qIAEA,aACE,CAHF,mHAEA,aACE,sCAIJ,kBACE,iCAGF,YACE,C3CzIoB,mH2C+IpB,a3C/IoB,8C2CuJxB,aACE,2JAEA,UvC7JM,wCuCoKR,aACE,mEAEA,aACE,CAHF,yDAEA,aACE,CAHF,6DAEA,aACE,CAHF,oDAEA,aACE,2BAIJ,2BACE,gDAKA,a3C7KwB,iB2CkL1B,oBACE,6BAEA,kBACE,0BAIJ,+BACE,qB3C5LwB,oC2CgM1B,kBACE,iMAIA,kBAIE,qBAIJ,kB3C/MqB,sE2CmNrB,kBACE,4FAGF,kBACE,qOAIF,evC9NQ,yBuC0ON,wBAGF,0BACE,0BAGF,wBACE,uLAGF,kBAME,4qEAIE,qBAGE,uCAMN,aAEE,uBAIF,e3C9QQ,gC2CmRJ,a3ChRoB,yB2CyRtB,e3C5RM,CADA,oG2CwSF,U3CxSE,0D2CqTF,a3ClTe,2C2CwTf,U3C3TE,6C2CgUJ,a3C7TiB,6D2CiUjB,U3CpUI,qB2C2UR,UvC1UQ,yBuC6UN,SvC7UM,iGuCmVN,eAGE,CAIA,oEAIA,kBACE,oDAEA,eACE,iHAMA,UvCxWA,2CuCiXR,yCACE,gMAGF,eAUE,sKAGF,U3CnYQ,0D","file":"skins/glitch/mastodon-light/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#ccd7e0 rgba(255,255,255,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#ccd7e0;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#c6d2dc}::-webkit-scrollbar-thumb:active{background:#ccd7e0}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(255,255,255,.1)}::-webkit-scrollbar-track:hover{background:#d9e1e8}::-webkit-scrollbar-track:active{background:#d9e1e8}::-webkit-scrollbar-corner{background:transparent}body{font-family:sans-serif,sans-serif;background:#eff3f5;font-size:13px;line-height:18px;font-weight:400;color:#000;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif,sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#d9e1e8}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.embed{background:#ccd7e0;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#e6ebf0;padding:0}body.error{position:absolute;text-align:center;color:#282c37;background:#d9e1e8;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#000;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#000;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:sans-serif,sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;width:40px;height:40px;background-size:40px 40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}.account-header .name{flex:1 1 auto;color:#282c37;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#000}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#b3c3d1}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#282c37;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#000}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#a6b9c9;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#99afc2}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#282c37}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#fff}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#ccd7e0;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;width:120px;height:120px;background-size:120px 120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #ccd7e0;background:#f2f5f7;border-radius:8%;background-position:50%;background-clip:padding-box}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#ccd7e0;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#000;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#000;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#282c37}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#282c37;padding:10px;border-right:1px solid #ccd7e0;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b90d9;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#282c37}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#000;font-family:sans-serif,sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #b3c3d1}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#282c37}.public-layout .public-account-header__extra__links a{display:inline-block;color:#282c37;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#000}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#217aba}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#000}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#282c37}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #c0cdd9}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #c0cdd9}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#d9e1e8}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#ccd7e0}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.modal-layout{background:#d9e1e8 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#6d8ca7}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#6d8ca7}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#282c37}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#6d8ca7}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#6d8ca7}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#60829f}.compact-header h1{font-size:24px;line-height:28px;color:#282c37;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#282c37}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#d9e1e8;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#282c37;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#131419}.hero-widget__text a{color:#282c37;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#282c37}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#282c37}.box-widget{padding:20px;border-radius:4px;background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #444b5d;text-align:center;color:#282c37;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#282c37;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#282c37}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#282c37;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2);color:#282c37;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#282c37}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#282c37;margin-bottom:10px}.page-header{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#000;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#282c37}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#ccd7e0}.page-header h1{font-size:24px}}.directory{background:#d9e1e8;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#d9e1e8;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#c0cdd9}.directory__tag.active>a{background:#2b90d9;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#282c37}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#282c37}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small{color:#000}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#2b90d9}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#f2f5f7;border:2px solid #d9e1e8}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#282c37;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #c0cdd9}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#000}.accounts-table__count small{display:block;color:#282c37;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #a6b9c9}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#282c37}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#2b90d9}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#e6ebf0;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#000;border-bottom:1px solid #ccd7e0}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #ccd7e0}code{font-family:monospace,monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#000;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#2b90d9;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#282c37}.simple_form .hint a{color:#2b90d9}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#fff}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#282c37}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#000;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#000;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#000;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .input.datetime .label_input select{display:inline-block;width:auto;flex:0}.simple_form .required abbr{text-decoration:none;color:#c1203b}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#000;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#000;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #444b5d;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#000;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#f9fafb;border:1px solid #fff;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#1f232b}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#c1203b}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#fff}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#2b90d9;background:#f2f5f7}.simple_form .input.field_with_errors label{color:#c1203b}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#c1203b}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#c1203b;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#2b90d9;color:#000;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#2482c7}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#419bdd}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#db2a47}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#e3566d}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#000;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#f9fafb url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #fff;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#444b5d;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(249, 250, 251, 0), #f9fafb)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(217,225,232,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#000}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#c0cdd9;color:#282c37;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#282c37;text-decoration:none}.flash-message a:hover{color:#000;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:monospace,monospace;background:#d9e1e8;color:#000;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#ccd7e0}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#282c37;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#2b90d9;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#217aba}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#282c37}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#282c37;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#282c37;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#000;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#000;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#282c37}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#000;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:monospace,monospace}.input-copy{background:#f9fafb;border:1px solid #fff;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:monospace,monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#e6ebf0;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#e6ebf0;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#c0cdd9}.card__img{height:130px;position:relative;background:#fff;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#ccd7e0;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box;background:#f2f5f7;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#000;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#000;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#000;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#282c37}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#000}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2);color:#444b5d;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#282c37;background-color:rgba(40,44,55,.1);border:1px solid rgba(40,44,55,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#c1203b;background-color:rgba(193,32,59,.1);border-color:rgba(193,32,59,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #b3c3d1;border-bottom:1px solid #b3c3d1;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #b3c3d1}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#282c37;background:rgba(242,245,247,.5)}.account__header__fields dd{flex:1 1 auto;color:#282c37}.account__header__fields a{color:#2b90d9;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#282c37}.pending-account__header a{color:#282c37;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#000;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#d9e1e8}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#c0cdd9}.button.logo-button{flex:0 auto;font-size:14px;background:#2b90d9;color:#000;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#000}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#2074b1}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{padding:8px 0;padding-bottom:2px;margin:initial;margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{position:absolute;margin:initial;float:initial;width:auto;left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}.embed .status .status__info,.public-layout .status .status__info{font-size:15px;display:initial}.embed .status .status__relative-time,.public-layout .status .status__relative-time{color:#444b5d;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.embed .status .status__info .status__display-name,.public-layout .status .status__info .status__display-name{display:block;max-width:100%;padding:6px 0;padding-right:25px;margin:initial}.embed .status .status__info .status__display-name .display-name strong,.public-layout .status .status__info .status__display-name .display-name strong{display:inline}.embed .status .status__avatar,.public-layout .status .status__avatar{height:48px;position:absolute;width:48px;margin:initial}.rtl .embed .status,.rtl .public-layout .status{padding-left:10px;padding-right:68px}.rtl .embed .status .status__info .status__display-name,.rtl .public-layout .status .status__info .status__display-name{padding-left:25px;padding-right:0}.rtl .embed .status .status__relative-time,.rtl .public-layout .status .status__relative-time{float:left}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#217aba;border:0;background:transparent;padding:0;padding-top:8px;text-decoration:none}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.animated-number{display:inline-flex;flex-direction:column;align-items:stretch;overflow:hidden;position:relative}.link-button{display:block;font-size:15px;line-height:20px;color:#2b90d9;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#3897db;border:10px none;border-radius:4px;box-sizing:border-box;color:#000;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;transition-property:background-color;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#227dbe;transition:all 200ms ease-out;transition-property:background-color}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled{background-color:#9baec8;cursor:default}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#000;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#8ea3c1}.button.button-alternative-2{background:#3c5063}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#344656}.button.button-secondary{font-size:16px;line-height:36px;height:auto;color:#282c37;text-transform:none;background:transparent;padding:3px 15px;border-radius:4px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#8ea3c1;color:#1f232b}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.icon-button{display:inline-block;padding:0;color:#606984;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#51596f;background-color:rgba(96,105,132,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(96,105,132,.3)}.icon-button.disabled{color:#828ba4;background-color:transparent;cursor:default}.icon-button.active{color:#2b90d9}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#282c37}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#373d4c;background-color:rgba(40,44,55,.15)}.icon-button.inverted:focus{background-color:rgba(40,44,55,.3)}.icon-button.inverted.disabled{color:#191b22;background-color:transparent}.icon-button.inverted.active{color:#2b90d9}.icon-button.inverted.active.disabled{color:#1d6ca4}.icon-button.overlayed{box-sizing:content-box;background:rgba(255,255,255,.6);color:rgba(0,0,0,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(255,255,255,.9)}.text-icon-button{color:#282c37;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#373d4c;background-color:rgba(40,44,55,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(40,44,55,.3)}.text-icon-button.disabled{color:#000;background-color:transparent;cursor:default}.text-icon-button.active{color:#2b90d9}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute;transform-origin:50% 0}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.notification__favourite-icon-wrapper{left:0;position:absolute}.notification__favourite-icon-wrapper .fa.star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#000;text-decoration:underline}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name a{color:inherit;text-decoration:inherit}.display-name strong{height:18px;font-size:16px;font-weight:500;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name span{display:block;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name>a:hover strong{text-decoration:underline}.display-name.inline{padding:0;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.display-name.inline strong{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name.inline span{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #393f4f;margin:5px 7px 6px;height:0}.dropdown-menu{background:#282c37;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.dropdown-menu ul{list-style:none}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#282c37}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#282c37}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#282c37}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#282c37}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#282c37;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#2b90d9;color:#282c37;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#282c37;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#282c37;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#2b90d9;color:#282c37}.dropdown__icon{vertical-align:middle}.static-content{padding:10px;padding-top:20px;color:#444b5d}.static-content h1{font-size:16px;font-weight:500;margin-bottom:40px;text-align:center}.static-content p{font-size:13px;margin-bottom:20px}.column,.drawer{flex:1 1 100%;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#c0cdd9;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#000;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #c0cdd9;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.auto-columns .tabs-bar__link:hover,.auto-columns .tabs-bar__link:focus,.auto-columns .tabs-bar__link:active{background:#adbecd;border-bottom-color:#adbecd}}.multi-columns .tabs-bar__link:hover,.multi-columns .tabs-bar__link:focus,.multi-columns .tabs-bar__link:active{background:#adbecd;border-bottom-color:#adbecd}.tabs-bar__link.active{border-bottom:2px solid #2b90d9;color:#2b90d9}.tabs-bar__link span{margin-left:5px;display:none}.tabs-bar__link span.icon{margin-left:0;display:inline}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#2b90d9;border:2px solid #c0cdd9;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#000}.column-link--transparent .icon-with-badge__badge{border-color:#f2f5f7}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#d9e1e8;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#f9fafb}.react-toggle--checked .react-toggle-track{background-color:#2b90d9}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#2074b1}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #d9e1e8;border-radius:50%;background-color:#fff;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#2b90d9}.getting-started__wrapper,.getting_started,.flex-spacer{background:#d9e1e8}.getting-started__wrapper{position:relative;overflow-y:auto}.flex-spacer{flex:1 1 auto}.getting-started{background:#d9e1e8;flex:1 0 auto}.getting-started p{color:#282c37}.getting-started a{color:#444b5d}.getting-started__panel{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex:0 1 auto}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{color:#444b5d;font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#444b5d;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#282c37}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#282c37;padding:10px;font-weight:500;border-bottom:1px solid #c0cdd9}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#282c37}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#d9e1e8;padding:4px 8px;margin:-6px 10px}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#c0cdd9;border:1px solid #e6ebf0}.setting-text{color:#282c37;background:transparent;border:none;border-bottom:2px solid #9baec8;box-sizing:border-box;display:block;font-family:inherit;margin-bottom:10px;padding:7px 0;width:100%}.setting-text:focus,.setting-text:active{color:#000;border-bottom-color:#2b90d9}@media screen and (max-width: 600px){.auto-columns .setting-text,.single-column .setting-text{font-size:16px}}.setting-text.light{color:#000;border-bottom:2px solid #839db4}.setting-text.light:focus,.setting-text.light:active{color:#000;border-bottom-color:#2b90d9}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#606984;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#2b90d9}.reduce-motion button.icon-button.disabled i.fa-retweet{color:#828ba4}.load-more{display:block;color:#444b5d;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#d3dce4}.load-gap{border-bottom:1px solid #c0cdd9}.missing-indicator{padding-top:68px}.scrollable>div>:first-child .notification__dismiss-overlay>.wrappy{border-top:1px solid #d9e1e8}.notification__dismiss-overlay{overflow:hidden;position:absolute;top:0;right:0;bottom:-1px;padding-left:15px;z-index:999;align-items:center;justify-content:flex-end;cursor:pointer;display:flex}.notification__dismiss-overlay .wrappy{width:4rem;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#c0cdd9;border-left:1px solid #99afc2;box-shadow:0 0 5px #000;border-bottom:1px solid #d9e1e8}.notification__dismiss-overlay .ckbox{border:2px solid #9baec8;border-radius:2px;width:30px;height:30px;font-size:20px;color:#282c37;text-shadow:0 0 5px #000;display:flex;justify-content:center;align-items:center}.notification__dismiss-overlay:focus{outline:0 !important}.notification__dismiss-overlay:focus .ckbox{box-shadow:0 0 1px 1px #2b90d9}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.loading-indicator{color:#444b5d;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #86a0b6;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#86a0b6}29%{background-color:#86a0b6}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:flex;left:4px;top:4px;width:auto;height:auto;align-items:center}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(255,255,255,.5);border-radius:8px;padding:8px 12px;color:#000;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(255,255,255,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(255,255,255,.5)}.setting-toggle{display:block;line-height:24px}.setting-toggle__label,.setting-radio__label,.setting-meta__label{color:#282c37;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.setting-radio{display:block;line-height:18px}.setting-radio__label{margin-bottom:0}.column-settings__row legend{color:#282c37;cursor:default;display:block;font-weight:500;margin-top:10px}.setting-radio__input{vertical-align:middle}.setting-meta__label{float:right}@keyframes heartbeat{from{transform:scale(1);transform-origin:center center;animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.pulse-loading{animation:heartbeat 1.5s ease-in-out infinite both}.upload-area{align-items:center;background:rgba(255,255,255,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#d9e1e8;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#282c37;font-size:18px;font-weight:500;border:2px dashed #3c5063;border-radius:4px}.dropdown--active .emoji-button img{opacity:1;filter:none}.loading-bar{background-color:#2b90d9;height:3px;position:absolute;top:0;left:0;z-index:9999}.icon-badge-wrapper{position:relative}.icon-badge{position:absolute;display:block;right:-0.25em;top:-0.25em;background-color:#2b90d9;border-radius:50%;font-size:75%;width:1em;height:1em}.conversation{display:flex;border-bottom:1px solid #c0cdd9;padding:5px;padding-bottom:0}.conversation:focus{background:#d3dce4;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative;cursor:pointer}.conversation__unread{display:inline-block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#282c37;padding-left:15px}.conversation__content__names{color:#282c37;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#000;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content .status__content{margin:0}.conversation--unread{background:#d3dce4}.conversation--unread:focus{background:#ccd7e0}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#000}.ui .flash-message{margin-top:10px;margin-left:auto;margin-right:auto;margin-bottom:0;min-width:75%}::-webkit-scrollbar-thumb{border-radius:0}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#282c37;max-width:400px}noscript div a{color:#2b90d9;text-decoration:underline}noscript div a:hover{text-decoration:none}noscript div a{word-break:break-word}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet,button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.status-direct button.icon-button.disabled i.fa-retweet,.status-direct button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.account{padding:10px;border-bottom:1px solid #c0cdd9;color:inherit;text-decoration:none}.account .account__display-name{flex:1 1 auto;display:block;color:#282c37;overflow:hidden;text-decoration:none;font-size:14px}.account.small{border:none;padding:0}.account.small>.account__avatar-wrapper{margin:0 8px 0 0}.account.small>.display-name{height:24px;line-height:24px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:8%;background-position:50%;background-clip:padding-box;position:relative;cursor:pointer}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:8%;background-position:50%;background-clip:padding-box;overflow:hidden;position:relative}.account__avatar-composite div{border-radius:8%;background-position:50%;background-clip:padding-box;float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#000;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}.account__avatar-overlay{position:relative;width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:8%;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:8%;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__header__wrapper{flex:0 0 auto;background:#ccd7e0}.account__disclaimer{padding:10px;color:#444b5d}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-left:1px solid #c0cdd9;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab:first-child{border-left:0}.account__action-bar__tab.active{border-bottom:4px solid #2b90d9}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#282c37}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#000}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account__action-bar__tab abbr{color:#2b90d9}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.notification__message{margin-left:42px;padding:8px 0 0 26px;cursor:default;color:#282c37;font-size:15px;position:relative}.notification__message .fa{color:#2b90d9}.notification__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account--panel{background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#c0cdd9;padding:15px}.column-settings__section{color:#282c37;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#d9e1e8;color:#282c37;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#1f232b}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#ccd7e0}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#444b5d;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#c0cdd9}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#b3c3d1;color:#1f232b}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#282c37}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#444b5d}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#3b4151}.column-settings__hashtags .column-select__indicator-separator{background-color:#c0cdd9}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#444b5d;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#282c37}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#444b5d;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#000}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#000;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#3d4455}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#000;margin-bottom:4px;display:block;vertical-align:top;background-color:#fff;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:none;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#e6ebf0;border-bottom:1px solid #c0cdd9;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#e6ebf0;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#282c37;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#282c37}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #c0cdd9}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #d9e1e8}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#dfe6ec;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #eff3f5}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9}.account__moved-note__message{position:relative;margin-left:58px;color:#444b5d;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.account__header__content{color:#282c37;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#e6ebf0}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#ccd7e0;padding:5px;border-bottom:1px solid #b3c3d1}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#f2f5f7;border:2px solid #ccd7e0}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #b3c3d1;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#000;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#000}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #b3c3d1}.account__header__bio .account__header__fields a{color:#217aba}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#282c37;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#282c37;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#000}.domain{padding:10px;border-bottom:1px solid #c0cdd9}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#000;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}@keyframes spring-flip-in{0%{transform:rotate(0deg)}30%{transform:rotate(-242.4deg)}60%{transform:rotate(-158.35deg)}90%{transform:rotate(-187.5deg)}100%{transform:rotate(-180deg)}}@keyframes spring-flip-out{0%{transform:rotate(-180deg)}30%{transform:rotate(62.4deg)}60%{transform:rotate(-21.635deg)}90%{transform:rotate(7.5deg)}100%{transform:rotate(0deg)}}.status__content--with-action{cursor:pointer}.status__content{position:relative;margin:10px 0;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:visible;padding-top:5px}.status__content:focus{outline:0}.status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.status__content pre,.status__content blockquote{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.status__content pre:last-child,.status__content blockquote:last-child{margin-bottom:0}.status__content .status__content__text,.status__content .e-content{overflow:hidden}.status__content .status__content__text>ul,.status__content .status__content__text>ol,.status__content .e-content>ul,.status__content .e-content>ol{margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h1,.status__content .e-content h2,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{margin-top:20px;margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .e-content h1,.status__content .e-content h2{font-weight:700;font-size:1.2em}.status__content .status__content__text h2,.status__content .e-content h2{font-size:1.1em}.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{font-weight:500}.status__content .status__content__text blockquote,.status__content .e-content blockquote{padding-left:10px;border-left:3px solid #282c37;color:#282c37;white-space:normal}.status__content .status__content__text blockquote p:last-child,.status__content .e-content blockquote p:last-child{margin-bottom:0}.status__content .status__content__text b,.status__content .status__content__text strong,.status__content .e-content b,.status__content .e-content strong{font-weight:700}.status__content .status__content__text em,.status__content .status__content__text i,.status__content .e-content em,.status__content .e-content i{font-style:italic}.status__content .status__content__text sub,.status__content .e-content sub{font-size:smaller;text-align:sub}.status__content .status__content__text sup,.status__content .e-content sup{font-size:smaller;vertical-align:super}.status__content .status__content__text ul,.status__content .status__content__text ol,.status__content .e-content ul,.status__content .e-content ol{margin-left:1em}.status__content .status__content__text ul p,.status__content .status__content__text ol p,.status__content .e-content ul p,.status__content .e-content ol p{margin:0}.status__content .status__content__text ul,.status__content .e-content ul{list-style-type:disc}.status__content .status__content__text ol,.status__content .e-content ol{list-style-type:decimal}.status__content a{color:#d8a070;text-decoration:none}.status__content a:hover{text-decoration:underline}.status__content a:hover .fa{color:#353a48}.status__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span{text-decoration:underline}.status__content a .fa{color:#444b5d}.status__content .status__content__spoiler{display:none}.status__content .status__content__spoiler.status__content__spoiler--visible{display:block}.status__content a.unhandled-link{color:#217aba}.status__content a.unhandled-link .link-origin-tag{color:#ca8f04;font-size:.8em}.status__content .status__content__spoiler-link{background:#7a96ae}.status__content .status__content__spoiler-link:hover{background:#708ea9;text-decoration:none}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:#7a96ae;border:none;color:#000;font-weight:500;font-size:11px;padding:0 5px;text-transform:uppercase;line-height:inherit;cursor:pointer;vertical-align:bottom}.status__content__spoiler-link:hover{background:#708ea9;text-decoration:none}.status__content__spoiler-link .status__content__spoiler-icon{display:inline-block;margin:0 0 0 5px;border-left:1px solid currentColor;padding:0 0 0 4px;font-size:16px;vertical-align:-2px}.notif-cleaning .status,.notif-cleaning .notification-follow,.notif-cleaning .notification-follow-request{padding-right:4.5rem}.status__wrapper--filtered{color:#444b5d;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #c0cdd9}.status__prepend-icon-wrapper{left:-26px;position:absolute}.notification-follow,.notification-follow-request{position:relative;border-bottom:1px solid #c0cdd9}.notification-follow .account,.notification-follow-request .account{border-bottom:0 none}.focusable:focus{outline:0;background:#ccd7e0}.focusable:focus.status.status-direct:not(.read){background:#b3c3d1}.focusable:focus.status.status-direct:not(.read).muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#c0cdd9}.status{padding:10px 14px;position:relative;height:auto;border-bottom:1px solid #c0cdd9;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:28px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#c0cdd9;border-bottom-color:#b3c3d1}.status.light .status__relative-time{color:#282c37}.status.light .status__display-name{color:#000}.status.light .display-name{color:#444b5d}.status.light .display-name strong{color:#000}.status.light .status__content{color:#000}.status.light .status__content a{color:#2b90d9}.status.light .status__content a.status__content__spoiler-link{color:#000;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#8199ba}.status.collapsed{background-position:center;background-size:cover;user-select:none}.status.collapsed.has-background::before{display:block;position:absolute;left:0;right:0;top:0;bottom:0;background-image:linear-gradient(to bottom, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.65) 24px, rgba(0, 0, 0, 0.8));pointer-events:none;content:\"\"}.status.collapsed .display-name:hover .display-name__html{text-decoration:none}.status.collapsed .status__content{height:20px;overflow:hidden;text-overflow:ellipsis;padding-top:0}.status.collapsed .status__content:after{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background:linear-gradient(rgba(217, 225, 232, 0), #d9e1e8);pointer-events:none}.status.collapsed .status__content a:hover{text-decoration:none}.status.collapsed:focus>.status__content:after{background:linear-gradient(rgba(204, 215, 224, 0), #ccd7e0)}.status.collapsed.status-direct:not(.read)>.status__content:after{background:linear-gradient(rgba(192, 205, 217, 0), #c0cdd9)}.status.collapsed .notification__message{margin-bottom:0}.status.collapsed .status__info .notification__message>span{white-space:nowrap}.status .notification__message{margin:-10px 0px 10px 0}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#444a5e}.status__relative-time{display:inline-block;flex-grow:1;color:#444b5d;font-size:14px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status__display-name{color:#444b5d;overflow:hidden}.status__info__account .status__display-name{display:block;max-width:100%}.status__info{display:flex;justify-content:space-between;font-size:15px}.status__info>span{text-overflow:ellipsis;overflow:hidden}.status__info .notification__message>span{word-wrap:break-word}.status__info__icons{display:flex;align-items:center;height:1em;color:#606984}.status__info__icons .status__media-icon,.status__info__icons .status__visibility-icon,.status__info__icons .status__reply-icon{padding-left:2px;padding-right:2px}.status__info__icons .status__collapse-button.active>.fa-angle-double-up{transform:rotate(-180deg)}.no-reduce-motion .status__collapse-button.activate>.fa-angle-double-up{animation:spring-flip-in 1s linear}.no-reduce-motion .status__collapse-button.deactivate>.fa-angle-double-up{animation:spring-flip-out 1s linear}.status__info__account{display:flex;align-items:center;justify-content:flex-start}.status-check-box{border-bottom:1px solid #282c37;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1;overflow:hidden}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-top:-10px;margin-bottom:10px;margin-left:58px;color:#444b5d;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#444b5d}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#606984}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#ccd7e0;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#444b5d;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#000}.muted .emojione{opacity:.5}a.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#282c37;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#000}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{flex:none;margin:0 10px 0 0;height:48px;width:48px}.muted .status__content,.muted .status__content p,.muted .status__content a,.muted .status__content__text{color:#444b5d}.muted .status__display-name strong{color:#444b5d}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#3c5063;color:#000}.muted a.status__content__spoiler-link:hover{background:#7d98b0;text-decoration:none}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.status-card{display:flex;font-size:14px;border:1px solid #c0cdd9;border-radius:4px;color:#444b5d;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#282c37;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#000}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}.status-card__actions a .fa,.status-card__actions a:hover .fa{color:inherit}a.status-card{cursor:pointer}a.status-card:hover{background:#c0cdd9}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#282c37;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#282c37}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#c0cdd9;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#ccd7e0}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#ccd7e0}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.attachment-list{display:flex;font-size:14px;border:1px solid #c0cdd9;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#444b5d;padding:8px 18px;cursor:default;border-right:1px solid #c0cdd9;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#444b5d;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#444b5d}.status__wrapper--filtered__button{display:inline;color:#217aba;border:0;background:transparent;padding:0;font-size:inherit;line-height:inherit}.status__wrapper--filtered__button:hover,.status__wrapper--filtered__button:active{text-decoration:underline}.modal-container--preloader{background:#c0cdd9}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.onboarding-modal,.error-modal,.embed-modal{background:#282c37;color:#000;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.onboarding-modal__pager{height:80vh;width:80vw;max-width:520px;max-height:470px}.onboarding-modal__pager .react-swipeable-view-container>div{width:100%;height:100%;box-sizing:border-box;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;user-select:text}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}@media screen and (max-width: 550px){.onboarding-modal{width:100%;height:100%;border-radius:0}.onboarding-modal__pager{width:100%;height:auto;max-width:none;max-height:none;flex:1 1 auto}}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#393f4f;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#282c37;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#313543;background-color:#4a5266}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#000}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#000}.error-modal__footer{justify-content:center}.onboarding-modal__dots{flex:1 1 auto;display:flex;align-items:center;justify-content:center}.onboarding-modal__dot{width:14px;height:14px;border-radius:14px;background:#4a5266;margin:0 3px;cursor:pointer}.onboarding-modal__dot:hover{background:#4f576c}.onboarding-modal__dot.active{cursor:default;background:#5c657e}.onboarding-modal__page__wrapper{pointer-events:none;padding:25px;padding-bottom:0}.onboarding-modal__page__wrapper.onboarding-modal__page__wrapper--active{pointer-events:auto}.onboarding-modal__page{cursor:default;line-height:21px}.onboarding-modal__page h1{font-size:18px;font-weight:500;color:#000;margin-bottom:20px}.onboarding-modal__page a{color:#2b90d9}.onboarding-modal__page a:hover,.onboarding-modal__page a:focus,.onboarding-modal__page a:active{color:#2485cb}.onboarding-modal__page .navigation-bar a{color:inherit}.onboarding-modal__page p{font-size:16px;color:#282c37;margin-top:10px;margin-bottom:10px}.onboarding-modal__page p:last-child{margin-bottom:0}.onboarding-modal__page p strong{font-weight:500;background:#d9e1e8;color:#282c37;border-radius:4px;font-size:14px;padding:3px 6px}.onboarding-modal__page p strong:lang(ja){font-weight:700}.onboarding-modal__page p strong:lang(ko){font-weight:700}.onboarding-modal__page p strong:lang(zh-CN){font-weight:700}.onboarding-modal__page p strong:lang(zh-HK){font-weight:700}.onboarding-modal__page p strong:lang(zh-TW){font-weight:700}.onboarding-modal__page__wrapper-0{height:100%;padding:0}.onboarding-modal__page-one__lead{padding:65px;padding-top:45px;padding-bottom:0;margin-bottom:10px}.onboarding-modal__page-one__lead h1{font-size:26px;line-height:36px;margin-bottom:8px}.onboarding-modal__page-one__lead p{margin-bottom:0}.onboarding-modal__page-one__extra{padding-right:65px;padding-left:185px;text-align:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#000;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#d9e1e8;color:#282c37;font-weight:500;padding:10px;border-radius:4px}.onboarding-modal__page-two p,.onboarding-modal__page-three p,.onboarding-modal__page-four p,.onboarding-modal__page-five p{text-align:left}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{background:#f2f5f7;color:#282c37;margin-bottom:20px;border-radius:4px;padding:10px;text-align:center;font-size:14px;box-shadow:1px 2px 6px rgba(0,0,0,.3)}.onboarding-modal__page-two .figure .onboarding-modal__image,.onboarding-modal__page-three .figure .onboarding-modal__image,.onboarding-modal__page-four .figure .onboarding-modal__image,.onboarding-modal__page-five .figure .onboarding-modal__image{border-radius:4px;margin-bottom:10px}.onboarding-modal__page-two .figure.non-interactive,.onboarding-modal__page-three .figure.non-interactive,.onboarding-modal__page-four .figure.non-interactive,.onboarding-modal__page-five .figure.non-interactive{pointer-events:none;text-align:left}.onboarding-modal__page-four__columns .row{display:flex;margin-bottom:20px}.onboarding-modal__page-four__columns .row>div{flex:1 1 0;margin:0 10px}.onboarding-modal__page-four__columns .row>div:first-child{margin-left:0}.onboarding-modal__page-four__columns .row>div:last-child{margin-right:0}.onboarding-modal__page-four__columns .row>div p{text-align:center}.onboarding-modal__page-four__columns .row:last-child{margin-bottom:0}.onboarding-modal__page-four__columns .column-header{color:#000}@media screen and (max-width: 320px)and (max-height: 600px){.onboarding-modal__page p{font-size:14px;line-height:20px}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{font-size:12px;margin-bottom:10px}.onboarding-modal__page-four__columns .row{margin-bottom:10px}.onboarding-modal__page-four__columns .column-header{padding:5px;font-size:12px}}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.doodle-modal,.favourite-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#17191f;color:#000;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__relative-time,.doodle-modal .status__relative-time,.favourite-modal .status__relative-time,.confirmation-modal .status__relative-time,.report-modal .status__relative-time,.actions-modal .status__relative-time,.mute-modal .status__relative-time,.block-modal .status__relative-time{color:#444b5d;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.boost-modal .status__display-name,.doodle-modal .status__display-name,.favourite-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:flex}.boost-modal .status__avatar,.doodle-modal .status__avatar,.favourite-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:48px;width:48px}.boost-modal .status__content__spoiler-link,.doodle-modal .status__content__spoiler-link,.favourite-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#17191f}.actions-modal .status{background:#fff;border-bottom-color:#282c37;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#282c37}.boost-modal__container,.favourite-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status,.favourite-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.doodle-modal__action-bar,.favourite-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#282c37;padding:10px;line-height:36px}.boost-modal__action-bar>div,.doodle-modal__action-bar>div,.favourite-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#282c37;padding-right:10px}.boost-modal__action-bar .button,.doodle-modal__action-bar .button,.favourite-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header,.favourite-modal__status-header{font-size:15px}.boost-modal__status-time,.favourite-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #282c37}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#2b90d9}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #282c37;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #282c37;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #393f4f}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #282c37;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#000;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#000;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal strong{display:block;font-weight:500}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#000;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#2b90d9;color:#000}.actions-modal ul li:not(:empty) a>.react-toggle,.actions-modal ul li:not(:empty) a>.icon,.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#282c37;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#313543;background-color:transparent}.confirmation-modal__do_not_ask_again{padding-left:20px;padding-right:20px;padding-bottom:10px;font-size:14px}.confirmation-modal__do_not_ask_again label,.confirmation-modal__do_not_ask_again input{vertical-align:middle}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#000;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#d9e1e8;color:#000;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#ccd7e0}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#000;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.filtered-status-info{text-align:start}.filtered-status-info .spoiler__text{margin-top:20px}.filtered-status-info .account{border-bottom:0}.filtered-status-info .account__display-name strong{color:#000}.filtered-status-info .status__content__spoiler{display:none}.filtered-status-info .status__content__spoiler--visible{display:flex}.filtered-status-info ul{padding:10px;margin-left:12px;list-style:disc inside}.filtered-status-info .filtered-status-edit-link{color:#606984;text-decoration:none}.filtered-status-info .filtered-status-edit-link:hover{text-decoration:underline}.composer{padding:10px}.composer .emoji-picker-dropdown{position:absolute;top:0;right:0}.composer .emoji-picker-dropdown ::-webkit-scrollbar-track:hover,.composer .emoji-picker-dropdown ::-webkit-scrollbar-track:active{background-color:rgba(255,255,255,.3)}.character-counter{cursor:default;font-family:sans-serif,sans-serif;font-size:14px;font-weight:600;color:#282c37}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .composer--spoiler{transition:height .4s ease,opacity .4s ease}.composer--spoiler{height:0;transform-origin:bottom;opacity:0}.composer--spoiler.composer--spoiler--visible{height:36px;margin-bottom:11px;opacity:1}.composer--spoiler input{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px;padding:10px;width:100%;outline:0;color:#000;background:#fff;font-size:14px;font-family:inherit;resize:vertical}.composer--spoiler input::placeholder{color:#444b5d}.composer--spoiler input:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .composer--spoiler input{font-size:16px}}.single-column .composer--spoiler input{font-size:16px}.composer--warning{color:#000;margin-bottom:15px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.composer--warning a{color:#282c37;font-weight:500;text-decoration:underline}.composer--warning a:active,.composer--warning a:focus,.composer--warning a:hover{text-decoration:none}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#2b90d9}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-left:5px;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#2b90d9;background:#2b90d9}.composer--reply{margin:0 0 10px;border-radius:4px;padding:10px;background:#9baec8;min-height:23px;overflow-y:auto;flex:0 2 auto}.composer--reply>header{margin-bottom:5px;overflow:hidden}.composer--reply>header>.account.small{color:#000}.composer--reply>header>.cancel{float:right;line-height:24px}.composer--reply>.content{position:relative;margin:10px 0;padding:0 12px;font-size:14px;line-height:20px;color:#000;word-wrap:break-word;font-weight:400;overflow:visible;white-space:pre-wrap;padding-top:5px;overflow:hidden}.composer--reply>.content p,.composer--reply>.content pre,.composer--reply>.content blockquote{margin-bottom:20px;white-space:pre-wrap}.composer--reply>.content p:last-child,.composer--reply>.content pre:last-child,.composer--reply>.content blockquote:last-child{margin-bottom:0}.composer--reply>.content h1,.composer--reply>.content h2,.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{margin-top:20px;margin-bottom:20px}.composer--reply>.content h1,.composer--reply>.content h2{font-weight:700;font-size:18px}.composer--reply>.content h2{font-size:16px}.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{font-weight:500}.composer--reply>.content blockquote{padding-left:10px;border-left:3px solid #000;color:#000;white-space:normal}.composer--reply>.content blockquote p:last-child{margin-bottom:0}.composer--reply>.content b,.composer--reply>.content strong{font-weight:700}.composer--reply>.content em,.composer--reply>.content i{font-style:italic}.composer--reply>.content sub{font-size:smaller;text-align:sub}.composer--reply>.content ul,.composer--reply>.content ol{margin-left:1em}.composer--reply>.content ul p,.composer--reply>.content ol p{margin:0}.composer--reply>.content ul{list-style-type:disc}.composer--reply>.content ol{list-style-type:decimal}.composer--reply>.content a{color:#282c37;text-decoration:none}.composer--reply>.content a:hover{text-decoration:underline}.composer--reply>.content a.mention:hover{text-decoration:none}.composer--reply>.content a.mention:hover span{text-decoration:underline}.composer--reply .emojione{width:20px;height:20px;margin:-5px 0 0}.compose-form__autosuggest-wrapper,.autosuggest-input{position:relative;width:100%}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.autosuggest-input label .autosuggest-textarea__textarea{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px 4px 0 0;padding:10px 32px 0 10px;width:100%;min-height:100px;outline:0;color:#000;background:#fff;font-size:14px;font-family:inherit;resize:none;scrollbar-color:initial}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::placeholder,.autosuggest-input label .autosuggest-textarea__textarea::placeholder{color:#444b5d}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::-webkit-scrollbar,.autosuggest-input label .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:disabled,.autosuggest-input label .autosuggest-textarea__textarea:disabled{background:#282c37}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:focus,.autosuggest-input label .autosuggest-textarea__textarea:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}}.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}@media screen and (max-width: 600px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.composer--textarea--icons{display:block;position:absolute;top:29px;right:5px;bottom:5px;overflow:hidden}.composer--textarea--icons>.textarea_icon{display:block;margin:2px 0 0 2px;width:24px;height:24px;color:#282c37;font-size:18px;line-height:24px;text-align:center;opacity:.8}.autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.autosuggest-textarea__suggestions{display:block;position:absolute;box-sizing:border-box;top:100%;border-radius:0 0 4px 4px;padding:6px;width:100%;color:#000;background:#282c37;box-shadow:4px 4px 6px rgba(0,0,0,.4);font-size:14px;z-index:99;display:none}.autosuggest-textarea__suggestions--visible{display:block}.autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.autosuggest-textarea__suggestions__item:hover,.autosuggest-textarea__suggestions__item:focus,.autosuggest-textarea__suggestions__item:active,.autosuggest-textarea__suggestions__item.selected{background:#3d4455}.autosuggest-textarea__suggestions__item>.account,.autosuggest-textarea__suggestions__item>.emoji,.autosuggest-textarea__suggestions__item>.autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.autosuggest-textarea__suggestions__item .autosuggest-hashtag{justify-content:space-between}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item .autosuggest-hashtag strong{font-weight:500}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item>.account.small .display-name>span{color:#282c37}.composer--upload_form{overflow:hidden}.composer--upload_form>.content{display:flex;flex-direction:row;flex-wrap:wrap;font-family:inherit;padding:5px;overflow:hidden}.composer--upload_form--item{flex:1 1 0;margin:5px;min-width:40%}.composer--upload_form--item>div{position:relative;border-radius:4px;height:140px;width:100%;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;overflow:hidden}.composer--upload_form--item>div textarea{display:block;position:absolute;box-sizing:border-box;bottom:0;left:0;margin:0;border:0;padding:10px;width:100%;color:#282c37;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);font-size:14px;font-family:inherit;font-weight:500;opacity:0;z-index:2;transition:opacity .1s ease}.composer--upload_form--item>div textarea:focus{color:#fff}.composer--upload_form--item>div textarea::placeholder{opacity:.54;color:#282c37}.composer--upload_form--item>div>.close{mix-blend-mode:difference}.composer--upload_form--item.active>div textarea{opacity:1}.composer--upload_form--actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.composer--upload_form--actions .icon-button{flex:0 1 auto;color:#282c37;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.composer--upload_form--actions .icon-button:hover,.composer--upload_form--actions .icon-button:focus,.composer--upload_form--actions .icon-button:active{color:#1f232b}.composer--upload_form--actions.active{opacity:1}.composer--upload_form--progress{display:flex;padding:10px;color:#282c37;overflow:hidden}.composer--upload_form--progress>.fa{font-size:34px;margin-right:10px}.composer--upload_form--progress>.message{flex:1 1 auto}.composer--upload_form--progress>.message>span{display:block;font-size:12px;font-weight:500;text-transform:uppercase}.composer--upload_form--progress>.message>.backdrop{position:relative;margin-top:5px;border-radius:6px;width:100%;height:6px;background:#3c5063}.composer--upload_form--progress>.message>.backdrop>.tracker{position:absolute;top:0;left:0;height:6px;border-radius:6px;background:#2b90d9}.compose-form__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.composer--options-wrapper{padding:10px;background:#fff;border-radius:0 0 4px 4px;height:27px;display:flex;justify-content:space-between;flex:0 0 auto}.composer--options{display:flex;flex:0 0 auto}.composer--options>*{display:inline-block;box-sizing:content-box;padding:0 3px;height:27px;line-height:27px;vertical-align:bottom}.composer--options>hr{display:inline-block;margin:0 3px;border-width:0 0 0 1px;border-style:none none none solid;border-color:transparent transparent transparent #fff;padding:0;width:0;height:27px;background:transparent}.compose--counter-wrapper{align-self:center;margin-right:4px}.composer--options--dropdown.open>.value{border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1);color:#000;background:#2b90d9;transition:none}.composer--options--dropdown.open.top>.value{border-radius:0 0 4px 4px;box-shadow:0 4px 4px rgba(0,0,0,.1)}.composer--options--dropdown--content{position:absolute;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);background:#fff;overflow:hidden;transform-origin:50% 0}.composer--options--dropdown--content--item{display:flex;align-items:center;padding:10px;color:#000;cursor:pointer}.composer--options--dropdown--content--item>.content{flex:1 1 auto;color:#282c37}.composer--options--dropdown--content--item>.content:not(:first-child){margin-left:10px}.composer--options--dropdown--content--item>.content strong{display:block;color:#000;font-weight:500}.composer--options--dropdown--content--item:hover,.composer--options--dropdown--content--item.active{background:#2b90d9;color:#000}.composer--options--dropdown--content--item:hover>.content,.composer--options--dropdown--content--item.active>.content{color:#000}.composer--options--dropdown--content--item:hover>.content strong,.composer--options--dropdown--content--item.active>.content strong{color:#000}.composer--options--dropdown--content--item.active:hover{background:#2485cb}.composer--publisher{padding-top:10px;text-align:right;white-space:nowrap;overflow:hidden;justify-content:flex-end;flex:0 0 auto}.composer--publisher>.primary{display:inline-block;margin:0;padding:0 10px;text-align:center}.composer--publisher>.side_arm{display:inline-block;margin:0 2px;padding:0;width:36px;text-align:center}.composer--publisher.over>.count{color:#ff5050}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#f2f5f7;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#d9e1e8}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.column{overflow:hidden}.column-back-button{box-sizing:border-box;width:100%;background:#ccd7e0;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;border:0;text-align:unset;padding:15px;margin:0;z-index:3}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#ccd7e0;border:0;font-family:inherit;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.column-link{background:#c0cdd9;color:#000;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#b6c5d3}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#282c37}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#000}.column-link--transparent.active{color:#2b90d9}.column-link__icon{display:inline-block;margin-right:5px}.column-subheading{background:#d9e1e8;color:#444b5d;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.column-header__wrapper{position:relative;flex:0 0 auto;z-index:1}.column-header__wrapper.active{box-shadow:0 1px 0 rgba(43,144,217,.3)}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;bottom:-13px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(43, 144, 217, 0.23) 0%, rgba(43, 144, 217, 0) 60%)}.column-header__wrapper .announcements{z-index:1;position:relative}.column-header{display:flex;font-size:16px;background:#ccd7e0;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden}.column-header>button{margin:0;border:none;padding:15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#2b90d9}.column-header.active .column-header__icon{color:#2b90d9;text-shadow:0 0 10px rgba(43,144,217,.4)}.column-header:focus,.column-header:active{outline:0}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.wide .columns-area:not(.columns-area--mobile) .column{flex:auto;min-width:330px;max-width:400px}.column>.scrollable{background:#d9e1e8}.column-header__buttons{height:48px;display:flex;margin-left:0}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button,.column-header__notif-cleaning-buttons button{background:#ccd7e0;border:0;color:#282c37;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover,.column-header__notif-cleaning-buttons button:hover{color:#191b22}.column-header__button.active,.column-header__notif-cleaning-buttons button.active{color:#000;background:#c0cdd9}.column-header__button.active:hover,.column-header__notif-cleaning-buttons button.active:hover{color:#000;background:#c0cdd9}.column-header__button:focus,.column-header__notif-cleaning-buttons button:focus{text-shadow:0 0 4px #419bdd}.column-header__notif-cleaning-buttons{display:flex;align-items:stretch;justify-content:space-around}.column-header__notif-cleaning-buttons button{background:transparent;text-align:center;padding:10px 0;white-space:pre-wrap}.column-header__notif-cleaning-buttons b{font-weight:bold}.column-header__collapsible-inner.nopad-drawer{padding:0}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#282c37;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1;z-index:1;position:relative}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #b3c3d1;margin:10px 0}.column-header__collapsible.ncd{transition:none}.column-header__collapsible.ncd.collapsed{max-height:0;opacity:.7}.column-header__collapsible-inner{background:#c0cdd9;padding:15px}.column-header__setting-btn:hover{color:#282c37;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.column-header__title{display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header__icon{display:inline-block;margin-right:5px}.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{color:#444b5d;background:#d9e1e8;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{contain:strict}}.empty-column-indicator>span,.error-column>span,.follow_requests-unlocked_explanation>span{max-width:400px}.empty-column-indicator a,.error-column a,.follow_requests-unlocked_explanation a{color:#2b90d9;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover,.follow_requests-unlocked_explanation a:hover{text-decoration:underline}.follow_requests-unlocked_explanation{background:#e6ebf0;contain:initial}.error-column{flex-direction:column}.single-column.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}@media screen and (max-width: 415px){.auto-columns.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}}@media screen and (max-width: 415px){.auto-columns.navbar-under .react-swipeable-view-container .columns-area,.single-column.navbar-under .react-swipeable-view-container .columns-area{height:100% !important}}.column-inline-form{padding:7px 15px;padding-right:5px;display:flex;justify-content:flex-start;align-items:center;background:#ccd7e0}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%;margin-bottom:6px}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 5px}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#444b5d;background:#d9e1e8;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#444b5d}.regeneration-indicator__label span{font-size:15px;font-weight:400}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#fff;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#ccd7e0;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#f2f5f7;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#000;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#d9e1e8;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #c0cdd9;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.filter-form{background:#d9e1e8}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#217aba;background:#217aba}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#d9e1e8;color:#282c37;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#1f232b}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#ccd7e0}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:color,transform,opacity;font-size:18px;width:18px;height:18px;color:#282c37;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(0deg)}.search__icon .fa-search.active{pointer-events:auto;opacity:.3}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#606984;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#51596f}.search-results__header{color:#444b5d;background:#d3dce4;border-bottom:1px solid #e6ebf0;padding:15px 10px;font-size:14px;font-weight:500}.search-results__info{padding:20px;color:#282c37;text-align:center}.trends__header{color:#444b5d;background:#d3dce4;border-bottom:1px solid #e6ebf0;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #c0cdd9}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#444b5d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#282c37;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#282c37}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(43,144,217,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#2380c3 !important}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(40,44,55,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.emoji-button{display:block;padding:5px 5px 2px 2px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.doodle-modal{width:unset}.doodle-modal__container{background:#d9e1e8;text-align:center;line-height:0}.doodle-modal__container canvas{border:5px solid #d9e1e8}.doodle-modal__action-bar .filler{flex-grow:1;margin:0;padding:0}.doodle-modal__action-bar .doodle-toolbar{line-height:1;display:flex;flex-direction:column;flex-grow:0;justify-content:space-around}.doodle-modal__action-bar .doodle-toolbar.with-inputs label{display:inline-block;width:70px;text-align:right;margin-right:2px}.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=number],.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=text]{width:40px}.doodle-modal__action-bar .doodle-toolbar.with-inputs span.val{display:inline-block;text-align:left;width:50px}.doodle-modal__action-bar .doodle-palette{padding-right:0 !important;border:1px solid #000;line-height:.2rem;flex-grow:0;background:#fff}.doodle-modal__action-bar .doodle-palette button{appearance:none;width:1rem;height:1rem;margin:0;padding:0;text-align:center;color:#000;text-shadow:0 0 1px #fff;cursor:pointer;box-shadow:inset 0 0 1px rgba(255,255,255,.5);border:1px solid #000;outline-offset:-1px}.doodle-modal__action-bar .doodle-palette button.foreground{outline:1px dashed #fff}.doodle-modal__action-bar .doodle-palette button.background{outline:1px dashed red}.doodle-modal__action-bar .doodle-palette button.foreground.background{outline:1px dashed red;border-color:#fff}.drawer{width:300px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden;padding:10px 5px;flex:none}.drawer:first-child{padding-left:10px}.drawer:last-child{padding-right:10px}@media screen and (max-width: 630px){.auto-columns .drawer{flex:auto}}.single-column .drawer{flex:auto}@media screen and (max-width: 630px){.auto-columns .drawer,.auto-columns .drawer:first-child,.auto-columns .drawer:last-child,.single-column .drawer,.single-column .drawer:first-child,.single-column .drawer:last-child{padding:0}}.wide .drawer{min-width:300px;max-width:400px;flex:1 1 200px}@media screen and (max-width: 630px){:root .auto-columns .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}}:root .single-column .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}.react-swipeable-view-container .drawer{height:100%}.drawer--header{display:flex;flex-direction:row;margin-bottom:10px;flex:none;background:#c0cdd9;font-size:16px}.drawer--header>*{display:block;box-sizing:border-box;border-bottom:2px solid transparent;padding:15px 5px 13px;height:48px;flex:1 1 auto;color:#282c37;text-align:center;text-decoration:none;cursor:pointer}.drawer--header a{transition:background 100ms ease-in}.drawer--header a:focus,.drawer--header a:hover{outline:none;background:#cfd9e2;transition:background 200ms ease-out}.search{position:relative;margin-bottom:10px;flex:none}@media screen and (max-width: 415px){.auto-columns .search,.single-column .search{margin-bottom:0}}@media screen and (max-width: 630px){.auto-columns .search{font-size:16px}}.single-column .search{font-size:16px}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#444b5d;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#444b5d;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#000}.drawer--account{padding:10px;color:#282c37;display:flex;align-items:center}.drawer--account a{color:inherit;text-decoration:none}.drawer--account .acct{display:block;color:#282c37;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;overflow:hidden}.drawer--results{background:#d9e1e8;overflow-x:hidden;overflow-y:auto}.drawer--results>header{color:#444b5d;background:#d3dce4;padding:15px;font-weight:500;font-size:16px;cursor:default}.drawer--results>header .fa{display:inline-block;margin-right:5px}.drawer--results>section{margin-bottom:5px}.drawer--results>section h5{background:#e6ebf0;border-bottom:1px solid #c0cdd9;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#444b5d}.drawer--results>section h5 .fa{display:inline-block;margin-right:5px}.drawer--results>section .account:last-child,.drawer--results>section>div:last-child .status{border-bottom:0}.drawer--results>section>.hashtag{display:block;padding:10px;color:#282c37;text-decoration:none}.drawer--results>section>.hashtag:hover,.drawer--results>section>.hashtag:active,.drawer--results>section>.hashtag:focus{color:#1f232b;text-decoration:underline}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#b0c0cf;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%}.drawer__inner.darker{background:#d9e1e8}.drawer__inner__mastodon{background:#b0c0cf url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:85%;height:100%;pointer-events:none;user-drag:none;user-select:none}.drawer__inner__mastodon>.mastodon{display:block;width:100%;height:100%;border:none;cursor:inherit}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#b0c0cf;font-size:13px;text-align:left}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(255,255,255,.5)}.video-error-cover{align-items:center;background:#fff;color:#000;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#fff;color:#282c37;border:0;width:100%;height:100%}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{color:#17191f}.status__content>.media-spoiler{margin-top:15px}.media-spoiler.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:500}.media-gallery__gifv__label{display:block;position:absolute;color:#000;background:rgba(255,255,255,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{height:100%;display:flex;flex-direction:column}.media-gallery__audio span{text-align:center;color:#282c37;display:flex;height:100%;align-items:center}.media-gallery__audio span p{width:100%}.media-gallery__audio audio{width:100%}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%;height:110px}.media-gallery.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-gallery__item{border:none;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.full-width .media-gallery__item{border-radius:0}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item.letterbox{background:#000}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#282c37;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%;object-fit:contain}.media-gallery__item-thumbnail:not(.letterbox),.media-gallery__item-thumbnail img:not(.letterbox){height:100%;object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#fff}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%;display:flex;justify-content:center}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;width:100%;position:relative;z-index:1;object-fit:contain;user-select:none}.media-gallery__item-gifv-thumbnail:not(.letterbox){height:100%;object-fit:cover}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(255,255,255,.5);box-sizing:border-box;border:0;color:#000;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#282c37}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#2b90d9}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#f2f5f7;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #ccd7e0;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(33,122,186,.5)}.audio-player__wave-placeholder{background-color:#a6b9c9}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#f2f5f7;border-top:1px solid #ccd7e0;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.detailed-status .video-player{width:100%;height:100%}.video-player.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.video-player video{max-width:100vw;max-height:80vh;z-index:1;position:relative}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#282c37;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#191b22}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons-bar .video-player__download__icon .fa,.video-player__buttons-bar .video-player__download__icon:active .fa,.video-player__buttons-bar .video-player__download__icon:hover .fa,.video-player__buttons-bar .video-player__download__icon:focus .fa{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#217aba}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#217aba;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#217aba}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#217aba;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.sensitive-info{display:flex;flex-direction:row;align-items:center;position:absolute;top:4px;left:4px;z-index:100}.sensitive-marker{margin:0 3px;border-radius:2px;padding:2px 6px;color:rgba(0,0,0,.8);background:rgba(255,255,255,.5);font-size:12px;line-height:18px;text-transform:uppercase;opacity:.9;transition:opacity .1s ease}.media-gallery:hover .sensitive-marker{opacity:1}.list-editor{background:#d9e1e8;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#b0c0cf;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#d9e1e8;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#b0c0cf}.list-adder__lists{background:#b0c0cf;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #c0cdd9}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.emoji-mart{font-size:13px;display:inline-block;color:#000}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #393f4f}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#282c37}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#282c37;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#313543}.emoji-mart-anchor-selected{color:#2b90d9}.emoji-mart-anchor-selected:hover{color:#3c99dc}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:0}.emoji-mart-anchor-bar{position:absolute;bottom:-3px;left:0;width:100%;height:3px;background-color:#3897db}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(255,255,255,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(40,44,55,.3);color:#000;border:1px solid #282c37;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(40,44,55,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#444b5d}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.glitch.local-settings{position:relative;display:flex;flex-direction:row;background:#282c37;color:#000;border-radius:8px;height:80vh;width:80vw;max-width:740px;max-height:450px;overflow:hidden}.glitch.local-settings label,.glitch.local-settings legend{display:block;font-size:14px}.glitch.local-settings .boolean label,.glitch.local-settings .radio_buttons label{position:relative;padding-left:28px;padding-top:3px}.glitch.local-settings .boolean label input,.glitch.local-settings .radio_buttons label input{position:absolute;left:0;top:0}.glitch.local-settings span.hint{display:block;color:#282c37}.glitch.local-settings h1{font-size:18px;font-weight:500;line-height:24px;margin-bottom:20px}.glitch.local-settings h2{font-size:15px;font-weight:500;line-height:20px;margin-top:20px;margin-bottom:10px}.glitch.local-settings__navigation__item{display:block;padding:15px 20px;color:inherit;background:#17191f;border-bottom:1px #282c37 solid;cursor:pointer;text-decoration:none;outline:none;transition:background .3s}.glitch.local-settings__navigation__item .text-icon-button{color:inherit;transition:unset}.glitch.local-settings__navigation__item:hover{background:#282c37}.glitch.local-settings__navigation__item.active{background:#2b90d9;color:#000}.glitch.local-settings__navigation__item.close,.glitch.local-settings__navigation__item.close:hover{background:#df405a;color:#000}.glitch.local-settings__navigation{background:#17191f;width:212px;font-size:15px;line-height:20px;overflow-y:auto}.glitch.local-settings__page{display:block;flex:auto;padding:15px 20px 15px 20px;width:360px;overflow-y:auto}.glitch.local-settings__page__item{margin-bottom:2px}.glitch.local-settings__page__item.string,.glitch.local-settings__page__item.radio_buttons{margin-top:10px;margin-bottom:10px}@media screen and (max-width: 630px){.glitch.local-settings__navigation{width:40px;flex-shrink:0}.glitch.local-settings__navigation__item{padding:10px}.glitch.local-settings__navigation__item span:last-of-type{display:none}}.error-boundary{color:#000;font-size:15px;line-height:20px}.error-boundary h1{font-size:26px;line-height:36px;font-weight:400;margin-bottom:8px}.error-boundary a{color:#000;text-decoration:underline}.error-boundary ul{list-style:disc;margin-left:0;padding-left:1em}.error-boundary textarea.web_app_crash-stacktrace{width:100%;resize:none;white-space:pre;font-family:monospace,monospace}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.compose-panel .search__icon .fa{top:15px}.compose-panel .drawer--account{flex:0 1 48px}.compose-panel .flex-spacer{background:transparent}.compose-panel .composer{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #ccd7e0;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px;min-height:50px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{padding-top:15px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#3897db;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#227dbe}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.search{margin-bottom:10px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.announcements__item__content{word-wrap:break-word;overflow-y:auto}.announcements__item__content .emojione{width:20px;height:20px;margin:-3px 0 0}.announcements__item__content p{margin-bottom:10px;white-space:pre-wrap}.announcements__item__content p:last-child{margin-bottom:0}.announcements__item__content a{color:#282c37;text-decoration:none}.announcements__item__content a:hover{text-decoration:underline}.announcements__item__content a.mention:hover{text-decoration:none}.announcements__item__content a.mention:hover span{text-decoration:underline}.announcements__item__content a.unhandled-link{color:#217aba}.announcements{background:#c0cdd9;font-size:13px;display:flex;align-items:flex-end}.announcements__mastodon{width:124px;flex:0 0 auto}@media screen and (max-width: 424px){.announcements__mastodon{display:none}}.announcements__container{width:calc(100% - 124px);flex:0 0 auto;position:relative}@media screen and (max-width: 424px){.announcements__container{width:100%}}.announcements__item{box-sizing:border-box;width:100%;padding:15px;position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;max-height:50vh;overflow:hidden;display:flex;flex-direction:column}.announcements__item__range{display:block;font-weight:500;margin-bottom:10px;padding-right:18px}.announcements__item__unread{position:absolute;top:19px;right:19px;display:block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem}.announcements__pagination{padding:15px;color:#282c37;position:absolute;bottom:3px;right:0}.layout-multiple-columns .announcements__mastodon{display:none}.layout-multiple-columns .announcements__container{width:100%}.reactions-bar{display:flex;flex-wrap:wrap;align-items:center;margin-top:15px;margin-left:-2px;width:calc(100% - (90px - 33px))}.reactions-bar__item{flex-shrink:0;background:#b3c3d1;border:0;border-radius:3px;margin:2px;cursor:pointer;user-select:none;padding:0 6px;display:flex;align-items:center;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar__item__emoji{display:block;margin:3px 0;width:16px;height:16px}.reactions-bar__item__emoji img{display:block;margin:0;width:100%;height:100%;min-width:auto;min-height:auto;vertical-align:bottom;object-fit:contain}.reactions-bar__item__count{display:block;min-width:9px;font-size:13px;font-weight:500;text-align:center;margin-left:6px;color:#282c37}.reactions-bar__item:hover,.reactions-bar__item:focus,.reactions-bar__item:active{background:#a6b9c9;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar__item:hover__count,.reactions-bar__item:focus__count,.reactions-bar__item:active__count{color:#1f232b}.reactions-bar__item.active{transition:all 100ms ease-in;transition-property:background-color,color;background-color:#98b9d3}.reactions-bar__item.active .reactions-bar__item__count{color:#217aba}.reactions-bar .emoji-picker-dropdown{margin:2px}.reactions-bar:hover .emoji-button{opacity:.85}.reactions-bar .emoji-button{color:#282c37;margin:0;font-size:16px;width:auto;flex-shrink:0;padding:0 6px;height:22px;display:flex;align-items:center;opacity:.5;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar .emoji-button:hover,.reactions-bar .emoji-button:active,.reactions-bar .emoji-button:focus{opacity:1;color:#1f232b;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar--empty .emoji-button{padding:0}.poll{margin-top:16px;font-size:14px}.poll ul,.e-content .poll ul{margin:0;list-style:none}.poll li{margin-bottom:10px;position:relative}.poll__chart{border-radius:4px;display:block;background:#abbbd1;height:5px;min-width:1%}.poll__chart.leading{background:#2b90d9}.poll__option{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__option__text{display:inline-block;word-wrap:break-word;overflow-wrap:break-word;max-width:calc(100% - 45px - 25px)}.poll__option input[type=radio],.poll__option input[type=checkbox]{display:none}.poll__option .autossugest-input{flex:1 1 auto}.poll__option input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#000;display:block;outline:0;font-family:inherit;background:#fff;border:1px solid #fff;border-radius:4px;padding:6px 10px}.poll__option input[type=text]:focus{border-color:#2b90d9}.poll__option.selectable{cursor:pointer}.poll__option.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-color:#4d9c74;border-width:4px}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:45px;font-weight:700;flex:0 0 45px}.poll__voted{padding:0 5px;display:inline-block}.poll__voted__mark{font-size:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#444b5d}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#444b5d;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(68,75,93,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #fff;overflow-x:hidden}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #fff;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{width:100%;flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#2b90d9}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#606984;border-color:#606984;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__option{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#000;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #fff;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#fff}.muted .poll{color:#444b5d}.muted .poll__chart{background:rgba(201,211,225,.2)}.muted .poll__chart.leading{background:rgba(43,144,217,.2)}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:sans-serif,sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#282c37}.rich-formatting a{color:#2b90d9;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#282c37}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#282c37}.rich-formatting em{font-style:italic;color:#282c37}.rich-formatting code{font-size:.85em;background:#f2f5f7;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:sans-serif,sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#282c37}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #ccd7e0;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #ccd7e0;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#282c37}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#444b5d}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#e6ebf0;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:sans-serif,sans-serif;font-size:16px;line-height:28px;color:#000;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#282c37}.information-board__section strong{font-family:sans-serif,sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#f2f5f7;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#282c37;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #ccd7e0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#3d4455}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;width:80px;height:80px;background-size:80px 80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px;border-radius:8%;background-position:50%;background-clip:padding-box}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#000;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#282c37}.landing-page p,.landing-page li{font-family:sans-serif,sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#282c37}.landing-page p a,.landing-page li a{color:#2b90d9;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#131419}.landing-page h1{font-family:sans-serif,sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h1 small{font-family:sans-serif,sans-serif;display:block;font-size:18px;font-weight:400;color:#131419}.landing-page h2{font-family:sans-serif,sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h3{font-family:sans-serif,sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h4{font-family:sans-serif,sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h5{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h6{font-family:sans-serif,sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(60,80,99,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#d9e1e8;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#131419}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px;width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#d9e1e8;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#282c37}.landing-page__short-description h1{font-weight:500;color:#000;margin-bottom:0}.landing-page__short-description h1 small{color:#282c37}.landing-page__short-description h1 small span{color:#282c37}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#000;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#282c37}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#d9e1e8;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:sans-serif,sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#282c37}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#282c37}.landing .simple_form p.lead{color:#282c37;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #c0cdd9}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#444b5d}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #d9e1e8;text-align:left;background:#e6ebf0}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #d9e1e8;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#d9e1e8}.table a{color:#2b90d9;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#d9e1e8;border-top:1px solid #f2f5f7;border-bottom:1px solid #f2f5f7}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #f2f5f7}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #f2f5f7}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:monospace,monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#282c37;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#000}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #f2f5f7;background:#d9e1e8;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #f2f5f7;border-top:0;background:#d9e1e8}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #f2f5f7;border-top:0;background:#e6ebf0}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #f2f5f7}}.batch-table__row:hover{background:#dfe6ec}.batch-table__row:nth-child(even){background:#d9e1e8}.batch-table__row:nth-child(even):hover{background:#d3dce4}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#282c37;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #f2f5f7;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #f2f5f7}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#d9e1e8;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#c0cdd9;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#000;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#282c37;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#b3c3d1}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#282c37;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#000;background-color:#e9eef2;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#dfe6ec;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#e6ebf0;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#000;background-color:#2b90d9;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#2482c7}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #c0cdd9;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#282c37;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#282c37;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#282c37;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #c0cdd9}.admin-wrapper .content h6{font-size:16px;color:#282c37;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#000;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#000;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:none}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#282c37;margin-bottom:20px}.admin-wrapper .content>p strong{color:#000;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(60,80,99,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #ccd7e0;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#2b90d9}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#282c37}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#2b90d9}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#444b5d;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset--with-select strong{display:block;margin-bottom:10px}.filters .filter-subset a{display:inline-block;color:#282c37;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #d9e1e8}.filters .filter-subset a:hover{color:#000;border-bottom:2px solid #c9d4de}.filters .filter-subset a.selected{color:#2b90d9;border-bottom:2px solid #2b90d9}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#282c37}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#2b90d9;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{line-height:20px;padding:15px 0;background:#d9e1e8;border-bottom:1px solid #ccd7e0}.log-entry:last-child{border-bottom:0}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;color:#282c37;font-size:14px;padding:0 10px}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#444b5d}.log-entry a,.log-entry .username,.log-entry .target{color:#282c37;text-decoration:none;font-weight:500}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#282c37}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#c1203b}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #2b90d9}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#c1203b}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#282c37}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#444b5d}.report-card{background:#d9e1e8;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#282c37;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#17191f}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #e6ebf0}.report-card__summary__item:hover{background:#d3dce4}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#282c37}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#444b5d;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#282c37}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#c0cdd9;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#217aba}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#000}.center-text{text-align:center}.announcements-list{border:1px solid #ccd7e0;border-radius:4px}.announcements-list__item{padding:15px 0;background:#d9e1e8;border-bottom:1px solid #ccd7e0}.announcements-list__item__title{padding:0 15px;display:block;font-weight:500;font-size:18px;line-height:1.5;color:#282c37;text-decoration:none;margin-bottom:10px}.announcements-list__item__title:hover,.announcements-list__item__title:focus,.announcements-list__item__title:active{color:#000}.announcements-list__item__meta{padding:0 15px;color:#444b5d}.announcements-list__item__action-bar{display:flex;justify-content:space-between;align-items:center}.announcements-list__item:last-child{border-bottom:0}.emojione[title=\":wind_blowing_face:\"],.emojione[title=\":white_small_square:\"],.emojione[title=\":white_medium_square:\"],.emojione[title=\":white_medium_small_square:\"],.emojione[title=\":white_large_square:\"],.emojione[title=\":white_circle:\"],.emojione[title=\":waxing_crescent_moon:\"],.emojione[title=\":waving_white_flag:\"],.emojione[title=\":waning_gibbous_moon:\"],.emojione[title=\":waning_crescent_moon:\"],.emojione[title=\":volleyball:\"],.emojione[title=\":thought_balloon:\"],.emojione[title=\":speech_balloon:\"],.emojione[title=\":speaker:\"],.emojione[title=\":sound:\"],.emojione[title=\":snow_cloud:\"],.emojione[title=\":skull_and_crossbones:\"],.emojione[title=\":skull:\"],.emojione[title=\":sheep:\"],.emojione[title=\":rooster:\"],.emojione[title=\":rice_ball:\"],.emojione[title=\":rice:\"],.emojione[title=\":ram:\"],.emojione[title=\":rain_cloud:\"],.emojione[title=\":page_with_curl:\"],.emojione[title=\":mute:\"],.emojione[title=\":moon:\"],.emojione[title=\":loud_sound:\"],.emojione[title=\":lightning:\"],.emojione[title=\":last_quarter_moon_with_face:\"],.emojione[title=\":last_quarter_moon:\"],.emojione[title=\":ice_skate:\"],.emojione[title=\":grey_question:\"],.emojione[title=\":grey_exclamation:\"],.emojione[title=\":goat:\"],.emojione[title=\":ghost:\"],.emojione[title=\":full_moon_with_face:\"],.emojione[title=\":full_moon:\"],.emojione[title=\":fish_cake:\"],.emojione[title=\":first_quarter_moon_with_face:\"],.emojione[title=\":first_quarter_moon:\"],.emojione[title=\":eyes:\"],.emojione[title=\":dove_of_peace:\"],.emojione[title=\":dash:\"],.emojione[title=\":crescent_moon:\"],.emojione[title=\":cloud:\"],.emojione[title=\":chicken:\"],.emojione[title=\":chains:\"],.emojione[title=\":baseball:\"],.emojione[title=\":alien:\"]{filter:drop-shadow(1px 1px 0 #000000) drop-shadow(-1px 1px 0 #000000) drop-shadow(1px -1px 0 #000000) drop-shadow(-1px -1px 0 #000000)}.hicolor-privacy-icons .status__visibility-icon.fa-globe,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-globe{color:#1976d2}.hicolor-privacy-icons .status__visibility-icon.fa-unlock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-unlock{color:#388e3c}.hicolor-privacy-icons .status__visibility-icon.fa-lock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-lock{color:#ffa000}.hicolor-privacy-icons .status__visibility-icon.fa-envelope,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-envelope{color:#d32f2f}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .composer--publisher{text-align:left}body.rtl .boost-modal__status-time,body.rtl .favourite-modal__status-time{float:left}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .setting-meta__label{float:left}body.rtl .status__avatar{margin-left:10px;margin-right:0;left:auto;right:10px}body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:58px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left;text-align:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(249, 250, 251, 0), #f9fafb)}body.rtl .simple_form select{background:#f9fafb url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#ccd7e0;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#c0cdd9}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#000;font-family:sans-serif,sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#282c37;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#282c37;font-weight:500;text-decoration:none}.glitch.local-settings{background:#d9e1e8}.glitch.local-settings__navigation{background:#f2f5f7}.glitch.local-settings__navigation__item{background:#f2f5f7}.glitch.local-settings__navigation__item:hover{background:#d9e1e8}.notification__dismiss-overlay .wrappy{box-shadow:unset}.notification__dismiss-overlay .ckbox{text-shadow:unset}.status.status-direct:not(.read){background:#f2f5f7;border-bottom-color:#fff}.status.status-direct:not(.read).collapsed>.status__content:after{background:linear-gradient(rgba(242, 245, 247, 0), #f2f5f7)}.focusable:focus.status.status-direct:not(.read){background:#e6ebf0}.focusable:focus.status.status-direct:not(.read).collapsed>.status__content:after{background:linear-gradient(rgba(230, 235, 240, 0), #e6ebf0)}.column>.scrollable{background:#fff}.status.collapsed .status__content:after{background:linear-gradient(rgba(255, 255, 255, 0), white)}.drawer__inner{background:#d9e1e8}.drawer__inner__mastodon{background:#d9e1e8 url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto !important}.drawer__inner__mastodon .mastodon{filter:contrast(75%) brightness(75%) !important}.status__content .status__content__spoiler-link{background:#7a96ae}.status__content .status__content__spoiler-link:hover{background:#6a89a5;text-decoration:none}.media-spoiler,.video-player__spoiler,.account-gallery__item a{background:#d9e1e8}.dropdown-menu{background:#d9e1e8}.dropdown-menu__arrow.left{border-left-color:#d9e1e8}.dropdown-menu__arrow.top{border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{border-right-color:#d9e1e8}.dropdown-menu__item a{background:#d9e1e8;color:#282c37}.composer .composer--spoiler input,.composer .compose-form__autosuggest-wrapper textarea{color:#0f151a}.composer .composer--spoiler input:disabled,.composer .compose-form__autosuggest-wrapper textarea:disabled{background:#e6e6e6}.composer .composer--spoiler input::placeholder,.composer .compose-form__autosuggest-wrapper textarea::placeholder{color:#232f39}.composer .composer--options-wrapper{background:#b9c8d5}.composer .composer--options>hr{display:none}.composer .composer--options--dropdown--content--item{color:#9baec8}.composer .composer--options--dropdown--content--item strong{color:#9baec8}.composer--upload_form--actions .icon-button{color:#ededed}.composer--upload_form--actions .icon-button:active,.composer--upload_form--actions .icon-button:focus,.composer--upload_form--actions .icon-button:hover{color:#fff}.composer--upload_form--item>div input{color:#ededed}.composer--upload_form--item>div input::placeholder{color:#e6e6e6}.dropdown-menu__separator{border-bottom-color:#b3c3d1}.status__content a,.reply-indicator__content a{color:#2b90d9}.emoji-mart-bar{border-color:#e6ebf0}.emoji-mart-bar:first-child{background:#b9c8d5}.emoji-mart-search input{background:rgba(217,225,232,.3);border-color:#d9e1e8}.autosuggest-textarea__suggestions{background:#b9c8d5}.autosuggest-textarea__suggestions__item:hover,.autosuggest-textarea__suggestions__item:focus,.autosuggest-textarea__suggestions__item:active,.autosuggest-textarea__suggestions__item.selected{background:#e6ebf0}.react-toggle-track{background:#282c37}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background:#131419}.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background:#56a7e1}.actions-modal,.boost-modal,.doodle-modal,.confirmation-modal,.mute-modal,.block-modal,.report-modal,.embed-modal,.error-modal,.onboarding-modal,.report-modal__comment .setting-text__wrapper,.report-modal__comment .setting-text{background:#fff;border:1px solid #c0cdd9}.report-modal__comment{border-right-color:#c0cdd9}.report-modal__container{border-top-color:#c0cdd9}.boost-modal__action-bar,.doodle-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar,.onboarding-modal__paginator,.error-modal__footer{background:#ecf0f4}.boost-modal__action-bar .onboarding-modal__nav:hover,.doodle-modal__action-bar .onboarding-modal__nav:hover,.boost-modal__action-bar .onboarding-modal__nav:focus,.doodle-modal__action-bar .onboarding-modal__nav:focus,.boost-modal__action-bar .onboarding-modal__nav:active,.doodle-modal__action-bar .onboarding-modal__nav:active,.boost-modal__action-bar .error-modal__nav:hover,.doodle-modal__action-bar .error-modal__nav:hover,.boost-modal__action-bar .error-modal__nav:focus,.doodle-modal__action-bar .error-modal__nav:focus,.boost-modal__action-bar .error-modal__nav:active,.doodle-modal__action-bar .error-modal__nav:active,.confirmation-modal__action-bar .onboarding-modal__nav:hover,.confirmation-modal__action-bar .onboarding-modal__nav:focus,.confirmation-modal__action-bar .onboarding-modal__nav:active,.confirmation-modal__action-bar .error-modal__nav:hover,.confirmation-modal__action-bar .error-modal__nav:focus,.confirmation-modal__action-bar .error-modal__nav:active,.mute-modal__action-bar .onboarding-modal__nav:hover,.mute-modal__action-bar .onboarding-modal__nav:focus,.mute-modal__action-bar .onboarding-modal__nav:active,.mute-modal__action-bar .error-modal__nav:hover,.mute-modal__action-bar .error-modal__nav:focus,.mute-modal__action-bar .error-modal__nav:active,.block-modal__action-bar .onboarding-modal__nav:hover,.block-modal__action-bar .onboarding-modal__nav:focus,.block-modal__action-bar .onboarding-modal__nav:active,.block-modal__action-bar .error-modal__nav:hover,.block-modal__action-bar .error-modal__nav:focus,.block-modal__action-bar .error-modal__nav:active,.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{background-color:#fff}.empty-column-indicator,.error-column{color:#364959}.activity-stream-tabs{background:#fff}.activity-stream-tabs a.active{color:#9baec8}.activity-stream .entry{background:#fff}.activity-stream .status.light .status__content{color:#000}.activity-stream .status.light .display-name strong{color:#000}.accounts-grid .account-grid-card .controls .icon-button{color:#282c37}.accounts-grid .account-grid-card .name a{color:#000}.accounts-grid .account-grid-card .username{color:#282c37}.accounts-grid .account-grid-card .account__header__content{color:#000}.button.logo-button{color:#fff}.button.logo-button svg{fill:#fff}.public-layout .header,.public-layout .public-account-header,.public-layout .public-account-bio{box-shadow:none}.public-layout .header{background:#b3c3d1}.public-layout .public-account-header__image{background:#b3c3d1}.public-layout .public-account-header__image::after{box-shadow:none}.public-layout .public-account-header__tabs__name h1,.public-layout .public-account-header__tabs__name h1 small{color:#fff}.account__section-headline a.active::after{border-color:transparent transparent #fff}.hero-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.moved-account-widget,.memoriam-widget,.activity-stream,.nothing-here,.directory__tag>a,.directory__tag>div{box-shadow:none}.audio-player .video-player__controls button,.audio-player .video-player__time-sep,.audio-player .video-player__time-current,.audio-player .video-player__time-total{color:#000}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Dependent colors\n$black: #000000;\n$white: #ffffff;\n\n$classic-base-color: #282c37;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #2b90d9;\n\n$ui-base-color: $classic-secondary-color !default;\n$ui-base-lighter-color: darken($ui-base-color, 57%);\n$ui-highlight-color: $classic-highlight-color !default;\n$ui-primary-color: $classic-primary-color !default;\n$ui-secondary-color: $classic-base-color !default;\n\n$primary-text-color: $black !default;\n$darker-text-color: $classic-base-color !default;\n$dark-text-color: #444b5d;\n$action-button-color: #606984;\n\n$success-green: lighten(#3c754d, 8%);\n\n$base-overlay-background: $white !default;\n\n$inverted-text-color: $black !default;\n$lighter-text-color: $classic-base-color !default;\n$light-text-color: #444b5d;\n\n$account-background-color: $white !default;\n\n//Invert darkened and lightened colors\n@function darken($color, $amount) {\n @return hsl(hue($color), saturation($color), lightness($color) + $amount);\n}\n\n@function lighten($color, $amount) {\n @return hsl(hue($color), saturation($color), lightness($color) - $amount);\n}\n\n$emojis-requiring-outlines: 'alien' 'baseball' 'chains' 'chicken' 'cloud' 'crescent_moon' 'dash' 'dove_of_peace' 'eyes' 'first_quarter_moon' 'first_quarter_moon_with_face' 'fish_cake' 'full_moon' 'full_moon_with_face' 'ghost' 'goat' 'grey_exclamation' 'grey_question' 'ice_skate' 'last_quarter_moon' 'last_quarter_moon_with_face' 'lightning' 'loud_sound' 'moon' 'mute' 'page_with_curl' 'rain_cloud' 'ram' 'rice' 'rice_ball' 'rooster' 'sheep' 'skull' 'skull_and_crossbones' 'snow_cloud' 'sound' 'speaker' 'speech_balloon' 'thought_balloon' 'volleyball' 'waning_crescent_moon' 'waning_gibbous_moon' 'waving_white_flag' 'waxing_crescent_moon' 'white_circle' 'white_large_square' 'white_medium_small_square' 'white_medium_square' 'white_small_square' 'wind_blowing_face';\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n @return '%23' + unquote($color)\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n @include avatar-size(40px);\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1/3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1/3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n @include avatar-size(120px);\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n @include avatar-radius();\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n","@mixin avatar-radius() {\n border-radius: $ui-avatar-border-size;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size:48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin single-column($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .single-column #{$parent} {\n @content;\n }\n}\n\n@mixin limited-single-column($media, $parent: '&') {\n .auto-columns #{$parent}, .single-column #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n}\n\n@mixin multi-columns($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .multi-columns #{$parent} {\n @content;\n }\n}\n\n@mixin fullwidth-gallery {\n &.full-width {\n margin-left: -14px;\n margin-right: -14px;\n width: inherit;\n max-width: none;\n height: 250px;\n border-radius: 0px;\n }\n}\n\n@mixin search-input() {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: none;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout() {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a; // Padua\n$error-red: #df405a; // Cerise\n$warning-red: #ff5050; // Sunset Orange\n$gold-star: #ca8f04; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: sans-serif !default;\n$font-display: sans-serif !default;\n$font-monospace: monospace !default;\n\n// Avatar border size (8% default, 100% for rounded avatars)\n$ui-avatar-border-size: 8%;\n\n// More variables\n$dismiss-overlay-width: 4rem;\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .input.datetime .label_input select {\n display: inline-block;\n width: auto;\n flex: 0;\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n padding: 8px 0;\n padding-bottom: 2px;\n margin: initial;\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n position: absolute;\n margin: initial;\n float: initial;\n width: auto;\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n\n// Styling from upstream's WebUI, as public pages use the same layout\n.embed,\n.public-layout {\n .status {\n .status__info {\n font-size: 15px;\n display: initial;\n }\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding: 6px 0;\n padding-right: 25px;\n margin: initial;\n\n .display-name strong {\n display: inline;\n }\n }\n\n .status__avatar {\n height: 48px;\n position: absolute;\n width: 48px;\n margin: initial;\n }\n }\n}\n\n.rtl {\n .embed,\n .public-layout {\n .status {\n padding-left: 10px;\n padding-right: 68px;\n\n .status__info .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .status__relative-time {\n float: left;\n }\n }\n }\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n text-decoration: none;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.animated-number {\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n overflow: hidden;\n position: relative;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: darken($ui-highlight-color, 3%);\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n transition-property: background-color;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 7%);\n transition: all 200ms ease-out;\n transition-property: background-color;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n color: $darker-text-color;\n text-transform: none;\n background: transparent;\n padding: 3px 15px;\n border-radius: 4px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n transform-origin: 50% 0;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: 0;\n position: absolute;\n\n .fa.star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n a {\n color: inherit;\n text-decoration: inherit;\n }\n\n strong {\n height: 18px;\n font-size: 16px;\n font-weight: 500;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n span {\n display: block;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n > a:hover {\n strong {\n text-decoration: underline;\n }\n }\n\n &.inline {\n padding: 0;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n strong {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n\n span {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n }\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n ul {\n list-style: none;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.static-content {\n padding: 10px;\n padding-top: 20px;\n color: $dark-text-color;\n\n h1 {\n font-size: 16px;\n font-weight: 500;\n margin-bottom: 40px;\n text-align: center;\n }\n\n p {\n font-size: 13px;\n margin-bottom: 20px;\n }\n}\n\n.column,\n.drawer {\n flex: 1 1 100%;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @include multi-columns('screen and (min-width: 631px)') {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $ui-highlight-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n\n span.icon {\n margin-left: 0;\n display: inline;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.getting-started__wrapper,\n.getting_started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.getting-started__wrapper {\n position: relative;\n overflow-y: auto;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n background: $ui-base-color;\n flex: 1 0 auto;\n\n p {\n color: $secondary-text-color;\n }\n\n a {\n color: $dark-text-color;\n }\n\n &__panel {\n height: min-content;\n }\n\n &__panel,\n &__footer {\n padding: 10px;\n padding-top: 20px;\n flex: 0 1 auto;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n color: $darker-text-color;\n background: transparent;\n border: none;\n border-bottom: 2px solid $ui-primary-color;\n box-sizing: border-box;\n display: block;\n font-family: inherit;\n margin-bottom: 10px;\n padding: 7px 0;\n width: 100%;\n\n &:focus,\n &:active {\n color: $primary-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n font-size: 16px;\n }\n\n &.light {\n color: $inverted-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 27%);\n\n &:focus,\n &:active {\n color: $inverted-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.reduce-motion button.icon-button.disabled i.fa-retweet {\n color: darken($action-button-color, 13%);\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.missing-indicator {\n padding-top: 20px + 48px;\n}\n\n.scrollable > div > :first-child .notification__dismiss-overlay > .wrappy {\n border-top: 1px solid $ui-base-color;\n}\n\n.notification__dismiss-overlay {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: -1px;\n padding-left: 15px; // space for the box shadow to be visible\n\n z-index: 999;\n align-items: center;\n justify-content: flex-end;\n cursor: pointer;\n\n display: flex;\n\n .wrappy {\n width: $dismiss-overlay-width;\n align-self: stretch;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: lighten($ui-base-color, 8%);\n border-left: 1px solid lighten($ui-base-color, 20%);\n box-shadow: 0 0 5px black;\n border-bottom: 1px solid $ui-base-color;\n }\n\n .ckbox {\n border: 2px solid $ui-primary-color;\n border-radius: 2px;\n width: 30px;\n height: 30px;\n font-size: 20px;\n color: $darker-text-color;\n text-shadow: 0 0 5px black;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n &:focus {\n outline: 0 !important;\n\n .ckbox {\n box-shadow: 0 0 1px 1px $ui-highlight-color;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: flex;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n align-items: center;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label,\n.setting-radio__label,\n.setting-meta__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.setting-radio {\n display: block;\n line-height: 18px;\n}\n\n.setting-radio__label {\n margin-bottom: 0;\n}\n\n.column-settings__row legend {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-top: 10px;\n}\n\n.setting-radio__input {\n vertical-align: middle;\n}\n\n.setting-meta__label {\n float: right;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n transform-origin: center center;\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.pulse-loading {\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.loading-bar {\n background-color: $ui-highlight-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.icon-badge-wrapper {\n position: relative;\n}\n\n.icon-badge {\n position: absolute;\n display: block;\n right: -.25em;\n top: -.25em;\n background-color: $ui-highlight-color;\n border-radius: 50%;\n font-size: 75%;\n width: 1em;\n height: 1em;\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n cursor: pointer;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n .status__content {\n margin: 0;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.ui .flash-message {\n margin-top: 10px;\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 0;\n min-width: 75%;\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@import 'boost';\n@import 'accounts';\n@import 'domains';\n@import 'status';\n@import 'modal';\n@import 'composer';\n@import 'columns';\n@import 'regeneration_indicator';\n@import 'directory';\n@import 'search';\n@import 'emoji';\n@import 'doodle';\n@import 'drawer';\n@import 'media';\n@import 'sensitive';\n@import 'lists';\n@import 'emoji_picker';\n@import 'local_settings';\n@import 'error_boundary';\n@import 'single_column';\n@import 'announcements';\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant\nbutton.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant for use with DMs\n.status-direct button.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n",".account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n color: inherit;\n text-decoration: none;\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n\n &.small {\n border: none;\n padding: 0;\n\n & > .account__avatar-wrapper { margin: 0 8px 0 0 }\n\n & > .display-name {\n height: 24px;\n line-height: 24px;\n }\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius();\n position: relative;\n cursor: pointer;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n overflow: hidden;\n position: relative;\n\n & div {\n @include avatar-radius;\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\n.account__avatar-overlay {\n position: relative;\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius();\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius();\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__header__wrapper {\n flex: 0 0 auto;\n background: lighten($ui-base-color, 4%);\n}\n\n.account__disclaimer {\n padding: 10px;\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-left: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &:first-child {\n border-left: 0;\n }\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n abbr {\n color: $highlight-text-color;\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.notification__message {\n margin-left: 42px;\n padding: 8px 0 0 26px;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input();\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout();\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n",".domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n","@keyframes spring-flip-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-242.4deg);\n }\n\n 60% {\n transform: rotate(-158.35deg);\n }\n\n 90% {\n transform: rotate(-187.5deg);\n }\n\n 100% {\n transform: rotate(-180deg);\n }\n}\n\n@keyframes spring-flip-out {\n 0% {\n transform: rotate(-180deg);\n }\n\n 30% {\n transform: rotate(62.4deg);\n }\n\n 60% {\n transform: rotate(-21.635deg);\n }\n\n 90% {\n transform: rotate(7.5deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content {\n position: relative;\n margin: 10px 0;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n padding-top: 5px;\n\n &:focus {\n outline: 0;\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .status__content__text,\n .e-content {\n overflow: hidden;\n\n & > ul,\n & > ol {\n margin-bottom: 20px;\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 1.2em;\n }\n\n h2 {\n font-size: 1.1em;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $darker-text-color;\n color: $darker-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n sup {\n font-size: smaller;\n vertical-align: super;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n .status__content__spoiler {\n display: none;\n\n &.status__content__spoiler--visible {\n display: block;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n\n .link-origin-tag {\n color: $gold-star;\n font-size: 0.8em;\n }\n }\n\n .status__content__spoiler-link {\n background: lighten($ui-base-color, 30%);\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: lighten($ui-base-color, 30%);\n border: none;\n color: $inverted-text-color;\n font-weight: 500;\n font-size: 11px;\n padding: 0 5px;\n text-transform: uppercase;\n line-height: inherit;\n cursor: pointer;\n vertical-align: bottom;\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n\n .status__content__spoiler-icon {\n display: inline-block;\n margin: 0 0 0 5px;\n border-left: 1px solid currentColor;\n padding: 0 0 0 4px;\n font-size: 16px;\n vertical-align: -2px;\n }\n}\n\n.notif-cleaning {\n .status,\n .notification-follow,\n .notification-follow-request {\n padding-right: ($dismiss-overlay-width + 0.5rem);\n }\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.notification-follow,\n.notification-follow-request {\n position: relative;\n\n // same like Status\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .account {\n border-bottom: 0 none;\n }\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n &.status.status-direct:not(.read) {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 10px 14px;\n position: relative;\n height: auto;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 28px; // 12px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $lighter-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n color: $light-text-color;\n\n strong {\n color: $inverted-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n\n &.collapsed {\n background-position: center;\n background-size: cover;\n user-select: none;\n\n &.has-background::before {\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-image: linear-gradient(to bottom, rgba($base-shadow-color, .75), rgba($base-shadow-color, .65) 24px, rgba($base-shadow-color, .8));\n pointer-events: none;\n content: \"\";\n }\n\n .display-name:hover .display-name__html {\n text-decoration: none;\n }\n\n .status__content {\n height: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 0;\n\n &:after {\n content: \"\";\n position: absolute;\n top: 0; bottom: 0;\n left: 0; right: 0;\n background: linear-gradient(rgba($ui-base-color, 0), rgba($ui-base-color, 1));\n pointer-events: none;\n }\n \n a:hover {\n text-decoration: none;\n }\n }\n &:focus > .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 4%), 0), rgba(lighten($ui-base-color, 4%), 1));\n }\n &.status-direct:not(.read)> .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 8%), 0), rgba(lighten($ui-base-color, 8%), 1));\n }\n\n .notification__message {\n margin-bottom: 0;\n }\n\n .status__info .notification__message > span {\n white-space: nowrap;\n }\n }\n\n .notification__message {\n margin: -10px 0px 10px 0;\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time {\n display: inline-block;\n flex-grow: 1;\n color: $dark-text-color;\n font-size: 14px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status__display-name {\n color: $dark-text-color;\n overflow: hidden;\n}\n\n.status__info__account .status__display-name {\n display: block;\n max-width: 100%;\n}\n\n.status__info {\n display: flex;\n justify-content: space-between;\n font-size: 15px;\n\n > span {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .notification__message > span {\n word-wrap: break-word;\n }\n}\n\n.status__info__icons {\n display: flex;\n align-items: center;\n height: 1em;\n color: $action-button-color;\n\n .status__media-icon,\n .status__visibility-icon,\n .status__reply-icon {\n padding-left: 2px;\n padding-right: 2px;\n }\n\n .status__collapse-button.active > .fa-angle-double-up {\n transform: rotate(-180deg);\n }\n}\n\n.no-reduce-motion .status__collapse-button {\n &.activate {\n & > .fa-angle-double-up {\n animation: spring-flip-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-angle-double-up {\n animation: spring-flip-out 1s linear;\n }\n }\n}\n\n.status__info__account {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n overflow: hidden;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-top: -10px;\n margin-bottom: 10px;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\na.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\n.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n flex: none;\n margin: 0 10px 0 0;\n height: 48px;\n width: 48px;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a,\n .status__content__text {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-color, 29%);\n text-decoration: none;\n }\n }\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n\n a .fa, a:hover .fa {\n color: inherit;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n.status__wrapper--filtered__button {\n display: inline;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n font-size: inherit;\n line-height: inherit;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n",".modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.onboarding-modal__pager {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 470px;\n\n .react-swipeable-view-container > div {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n user-select: text;\n }\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n@media screen and (max-width: 550px) {\n .onboarding-modal {\n width: 100%;\n height: 100%;\n border-radius: 0;\n }\n\n .onboarding-modal__pager {\n width: 100%;\n height: auto;\n max-width: none;\n max-height: none;\n flex: 1 1 auto;\n }\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.onboarding-modal__dots {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.onboarding-modal__dot {\n width: 14px;\n height: 14px;\n border-radius: 14px;\n background: darken($ui-secondary-color, 16%);\n margin: 0 3px;\n cursor: pointer;\n\n &:hover {\n background: darken($ui-secondary-color, 18%);\n }\n\n &.active {\n cursor: default;\n background: darken($ui-secondary-color, 24%);\n }\n}\n\n.onboarding-modal__page__wrapper {\n pointer-events: none;\n padding: 25px;\n padding-bottom: 0;\n\n &.onboarding-modal__page__wrapper--active {\n pointer-events: auto;\n }\n}\n\n.onboarding-modal__page {\n cursor: default;\n line-height: 21px;\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 20px;\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 4%);\n }\n }\n\n .navigation-bar a {\n color: inherit;\n }\n\n p {\n font-size: 16px;\n color: $lighter-text-color;\n margin-top: 10px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n background: $ui-base-color;\n color: $secondary-text-color;\n border-radius: 4px;\n font-size: 14px;\n padding: 3px 6px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.onboarding-modal__page__wrapper-0 {\n height: 100%;\n padding: 0;\n}\n\n.onboarding-modal__page-one {\n &__lead {\n padding: 65px;\n padding-top: 45px;\n padding-bottom: 0;\n margin-bottom: 10px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n margin-bottom: 8px;\n }\n\n p {\n margin-bottom: 0;\n }\n }\n\n &__extra {\n padding-right: 65px;\n padding-left: 185px;\n text-align: center;\n }\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboarding-modal__page-two,\n.onboarding-modal__page-three,\n.onboarding-modal__page-four,\n.onboarding-modal__page-five {\n p {\n text-align: left;\n }\n\n .figure {\n background: darken($ui-base-color, 8%);\n color: $secondary-text-color;\n margin-bottom: 20px;\n border-radius: 4px;\n padding: 10px;\n text-align: center;\n font-size: 14px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);\n\n .onboarding-modal__image {\n border-radius: 4px;\n margin-bottom: 10px;\n }\n\n &.non-interactive {\n pointer-events: none;\n text-align: left;\n }\n }\n}\n\n.onboarding-modal__page-four__columns {\n .row {\n display: flex;\n margin-bottom: 20px;\n\n & > div {\n flex: 1 1 0;\n margin: 0 10px;\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n\n p {\n text-align: center;\n }\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .column-header {\n color: $primary-text-color;\n }\n}\n\n@media screen and (max-width: 320px) and (max-height: 600px) {\n .onboarding-modal__page p {\n font-size: 14px;\n line-height: 20px;\n }\n\n .onboarding-modal__page-two .figure,\n .onboarding-modal__page-three .figure,\n .onboarding-modal__page-four .figure,\n .onboarding-modal__page-five .figure {\n font-size: 12px;\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .row {\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .column-header {\n padding: 5px;\n font-size: 12px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.favourite-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__display-name {\n display: flex;\n }\n\n .status__avatar {\n height: 48px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container,\n.favourite-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.favourite-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header,\n.favourite-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time,\n.favourite-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n strong {\n display: block;\n font-weight: 500;\n }\n\n max-height: 80vh;\n max-width: 80vw;\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n & > .react-toggle,\n & > .icon,\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__do_not_ask_again {\n padding-left: 20px;\n padding-right: 20px;\n padding-bottom: 10px;\n\n font-size: 14px;\n\n label, input {\n vertical-align: middle;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: 'mastodon-font-monospace', monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.filtered-status-info {\n text-align: start;\n\n .spoiler__text {\n margin-top: 20px;\n }\n\n .account {\n border-bottom: 0;\n }\n\n .account__display-name strong {\n color: $inverted-text-color;\n }\n\n .status__content__spoiler {\n display: none;\n\n &--visible {\n display: flex;\n }\n }\n\n ul {\n padding: 10px;\n margin-left: 12px;\n list-style: disc inside;\n }\n\n .filtered-status-edit-link {\n color: $action-button-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline\n }\n }\n}\n",".composer {\n padding: 10px;\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 0;\n right: 0;\n\n ::-webkit-scrollbar-track:hover,\n ::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .composer--spoiler {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.composer--spoiler {\n height: 0;\n transform-origin: bottom;\n opacity: 0.0;\n\n &.composer--spoiler--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1.0;\n }\n\n input {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px;\n padding: 10px;\n width: 100%;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n }\n}\n\n.composer--warning {\n color: $inverted-text-color;\n margin-bottom: 15px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:active,\n &:focus,\n &:hover { text-decoration: none }\n }\n}\n\n.compose-form__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-left: 5px;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n}\n\n.composer--reply {\n margin: 0 0 10px;\n border-radius: 4px;\n padding: 10px;\n background: $ui-primary-color;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n\n & > header {\n margin-bottom: 5px;\n overflow: hidden;\n\n & > .account.small { color: $inverted-text-color; }\n\n & > .cancel {\n float: right;\n line-height: 24px;\n }\n }\n\n & > .content {\n position: relative;\n margin: 10px 0;\n padding: 0 12px;\n font-size: 14px;\n line-height: 20px;\n color: $inverted-text-color;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n white-space: pre-wrap;\n padding-top: 5px;\n overflow: hidden;\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 18px;\n }\n\n h2 {\n font-size: 16px;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $inverted-text-color;\n color: $inverted-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n\n a {\n color: $lighter-text-color;\n text-decoration: none;\n\n &:hover { text-decoration: underline }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span { text-decoration: underline }\n }\n }\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -5px 0 0;\n }\n}\n\n.compose-form__autosuggest-wrapper,\n.autosuggest-input {\n position: relative;\n width: 100%;\n\n label {\n .autosuggest-textarea__textarea {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px 4px 0 0;\n padding: 10px 32px 0 10px;\n width: 100%;\n min-height: 100px;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: none;\n scrollbar-color: initial;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n &:disabled { background: $ui-secondary-color }\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n }\n}\n\n.composer--textarea--icons {\n display: block;\n position: absolute;\n top: 29px;\n right: 5px;\n bottom: 5px;\n overflow: hidden;\n\n & > .textarea_icon {\n display: block;\n margin: 2px 0 0 2px;\n width: 24px;\n height: 24px;\n color: $lighter-text-color;\n font-size: 18px;\n line-height: 24px;\n text-align: center;\n opacity: .8;\n }\n}\n\n.autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n}\n\n.autosuggest-textarea__suggestions {\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: 100%;\n border-radius: 0 0 4px 4px;\n padding: 6px;\n width: 100%;\n color: $inverted-text-color;\n background: $ui-secondary-color;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n font-size: 14px;\n z-index: 99;\n display: none;\n}\n\n.autosuggest-textarea__suggestions--visible {\n display: block;\n}\n\n.autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected { background: darken($ui-secondary-color, 10%) }\n\n > .account,\n > .emoji,\n > .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n & > .account.small {\n .display-name {\n & > span { color: $lighter-text-color }\n }\n }\n}\n\n.composer--upload_form {\n overflow: hidden;\n\n & > .content {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n font-family: inherit;\n padding: 5px;\n overflow: hidden;\n }\n}\n\n.composer--upload_form--item {\n flex: 1 1 0;\n margin: 5px;\n min-width: 40%;\n\n & > div {\n position: relative;\n border-radius: 4px;\n height: 140px;\n width: 100%;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n overflow: hidden;\n\n textarea {\n display: block;\n position: absolute;\n box-sizing: border-box;\n bottom: 0;\n left: 0;\n margin: 0;\n border: 0;\n padding: 10px;\n width: 100%;\n color: $secondary-text-color;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n font-size: 14px;\n font-family: inherit;\n font-weight: 500;\n opacity: 0;\n z-index: 2;\n transition: opacity .1s ease;\n\n &:focus { color: $white }\n\n &::placeholder {\n opacity: 0.54;\n color: $secondary-text-color;\n }\n }\n\n & > .close { mix-blend-mode: difference }\n }\n\n &.active {\n & > div {\n textarea { opacity: 1 }\n }\n }\n}\n\n.composer--upload_form--actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $ui-secondary-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($ui-secondary-color, 4%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n}\n\n.composer--upload_form--progress {\n display: flex;\n padding: 10px;\n color: $darker-text-color;\n overflow: hidden;\n\n & > .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n & > .message {\n flex: 1 1 auto;\n\n & > span {\n display: block;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n }\n\n & > .backdrop {\n position: relative;\n margin-top: 5px;\n border-radius: 6px;\n width: 100%;\n height: 6px;\n background: $ui-base-lighter-color;\n\n & > .tracker {\n position: absolute;\n top: 0;\n left: 0;\n height: 6px;\n border-radius: 6px;\n background: $ui-highlight-color;\n }\n }\n }\n}\n\n.compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n}\n\n.composer--options-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n height: 27px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n}\n\n.composer--options {\n display: flex;\n flex: 0 0 auto;\n\n & > * {\n display: inline-block;\n box-sizing: content-box;\n padding: 0 3px;\n height: 27px;\n line-height: 27px;\n vertical-align: bottom;\n }\n\n & > hr {\n display: inline-block;\n margin: 0 3px;\n border-width: 0 0 0 1px;\n border-style: none none none solid;\n border-color: transparent transparent transparent darken($simple-background-color, 24%);\n padding: 0;\n width: 0;\n height: 27px;\n background: transparent;\n }\n}\n\n.compose--counter-wrapper {\n align-self: center;\n margin-right: 4px;\n}\n\n.composer--options--dropdown {\n &.open {\n & > .value {\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n color: $primary-text-color;\n background: $ui-highlight-color;\n transition: none;\n }\n &.top {\n & > .value {\n border-radius: 0 0 4px 4px;\n box-shadow: 0 4px 4px rgba($base-shadow-color, 0.1);\n }\n }\n }\n}\n\n.composer--options--dropdown--content {\n position: absolute;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n background: $simple-background-color;\n overflow: hidden;\n transform-origin: 50% 0;\n}\n\n.composer--options--dropdown--content--item {\n display: flex;\n align-items: center;\n padding: 10px;\n color: $inverted-text-color;\n cursor: pointer;\n\n & > .content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n &:not(:first-child) { margin-left: 10px }\n\n strong {\n display: block;\n color: $inverted-text-color;\n font-weight: 500;\n }\n }\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n\n & > .content {\n color: $primary-text-color;\n\n strong { color: $primary-text-color }\n }\n }\n\n &.active:hover { background: lighten($ui-highlight-color, 4%) }\n}\n\n.composer--publisher {\n padding-top: 10px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n justify-content: flex-end;\n flex: 0 0 auto;\n\n & > .primary {\n display: inline-block;\n margin: 0;\n padding: 0 10px;\n text-align: center;\n }\n\n & > .side_arm {\n display: inline-block;\n margin: 0 2px;\n padding: 0;\n width: 36px;\n text-align: center;\n }\n\n &.over {\n & > .count { color: $warning-red }\n }\n}\n",".column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.column {\n overflow: hidden;\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n z-index: 1;\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n bottom: -13px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n\n .announcements {\n z-index: 1;\n position: relative;\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n\n & > button {\n margin: 0;\n border: none;\n padding: 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($ui-highlight-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n\n .wide .columns-area:not(.columns-area--mobile) & {\n flex: auto;\n min-width: 330px;\n max-width: 400px;\n }\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n margin-left: 0;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n\n // glitch - added focus ring for keyboard navigation\n &:focus {\n text-shadow: 0 0 4px darken($ui-highlight-color, 5%);\n }\n}\n\n.column-header__notif-cleaning-buttons {\n display: flex;\n align-items: stretch;\n justify-content: space-around;\n\n button {\n @extend .column-header__button;\n background: transparent;\n text-align: center;\n padding: 10px 0;\n white-space: pre-wrap;\n }\n\n b {\n font-weight: bold;\n }\n}\n\n// The notifs drawer with no padding to have more space for the buttons\n.column-header__collapsible-inner.nopad-drawer {\n padding: 0;\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n z-index: 1;\n position: relative;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n\n // notif cleaning drawer\n &.ncd {\n transition: none;\n &.collapsed {\n max-height: 0;\n opacity: 0.7;\n }\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.column-header__title {\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.empty-column-indicator,\n.error-column,\n.follow_requests-unlocked_explanation {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.follow_requests-unlocked_explanation {\n background: darken($ui-base-color, 4%);\n contain: initial;\n}\n\n.error-column {\n flex-direction: column;\n}\n\n// more fixes for the navbar-under mode\n@mixin fix-margins-for-navbar-under {\n .tabs-bar {\n margin-top: 0 !important;\n margin-bottom: -6px !important;\n }\n}\n\n.single-column.navbar-under {\n @include fix-margins-for-navbar-under;\n}\n\n.auto-columns.navbar-under {\n @media screen and (max-width: $no-gap-breakpoint) {\n @include fix-margins-for-navbar-under;\n }\n}\n\n.auto-columns.navbar-under .react-swipeable-view-container .columns-area,\n.single-column.navbar-under .react-swipeable-view-container .columns-area {\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 100% !important;\n }\n}\n\n.column-inline-form {\n padding: 7px 15px;\n padding-right: 5px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n margin-bottom: 6px;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 5px;\n }\n}\n",".regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n",".directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n",".search {\n position: relative;\n}\n\n.search__input {\n @include search-input();\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: color, transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(0deg);\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n padding: 15px 10px;\n font-size: 14px;\n font-weight: 500;\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n",null,".emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.emoji-button {\n display: block;\n padding: 5px 5px 2px 2px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n","$doodleBg: #d9e1e8;\n.doodle-modal {\n @extend .boost-modal;\n width: unset;\n}\n\n.doodle-modal__container {\n background: $doodleBg;\n text-align: center;\n line-height: 0; // remove weird gap under canvas\n canvas {\n border: 5px solid $doodleBg;\n }\n}\n\n.doodle-modal__action-bar {\n @extend .boost-modal__action-bar;\n\n .filler {\n flex-grow: 1;\n margin: 0;\n padding: 0;\n }\n\n .doodle-toolbar {\n line-height: 1;\n\n display: flex;\n flex-direction: column;\n flex-grow: 0;\n justify-content: space-around;\n\n &.with-inputs {\n label {\n display: inline-block;\n width: 70px;\n text-align: right;\n margin-right: 2px;\n }\n\n input[type=\"number\"],input[type=\"text\"] {\n width: 40px;\n }\n span.val {\n display: inline-block;\n text-align: left;\n width: 50px;\n }\n }\n }\n\n .doodle-palette {\n padding-right: 0 !important;\n border: 1px solid black;\n line-height: .2rem;\n flex-grow: 0;\n background: white;\n\n button {\n appearance: none;\n width: 1rem;\n height: 1rem;\n margin: 0; padding: 0;\n text-align: center;\n color: black;\n text-shadow: 0 0 1px white;\n cursor: pointer;\n box-shadow: inset 0 0 1px rgba(white, .5);\n border: 1px solid black;\n outline-offset:-1px;\n\n &.foreground {\n outline: 1px dashed white;\n }\n\n &.background {\n outline: 1px dashed red;\n }\n\n &.foreground.background {\n outline: 1px dashed red;\n border-color: white;\n }\n }\n }\n}\n",".drawer {\n width: 300px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n padding: 10px 5px;\n flex: none;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n\n @include single-column('screen and (max-width: 630px)') { flex: auto }\n\n @include limited-single-column('screen and (max-width: 630px)') {\n &, &:first-child, &:last-child { padding: 0 }\n }\n\n .wide & {\n min-width: 300px;\n max-width: 400px;\n flex: 1 1 200px;\n }\n\n @include single-column('screen and (max-width: 630px)') {\n :root & { // Overrides `.wide` for single-column view\n flex: auto;\n width: 100%;\n min-width: 0;\n max-width: none;\n padding: 0;\n }\n }\n\n .react-swipeable-view-container & { height: 100% }\n}\n\n.drawer--header {\n display: flex;\n flex-direction: row;\n margin-bottom: 10px;\n flex: none;\n background: lighten($ui-base-color, 8%);\n font-size: 16px;\n\n & > * {\n display: block;\n box-sizing: border-box;\n border-bottom: 2px solid transparent;\n padding: 15px 5px 13px;\n height: 48px;\n flex: 1 1 auto;\n color: $darker-text-color;\n text-align: center;\n text-decoration: none;\n cursor: pointer;\n }\n\n a {\n transition: background 100ms ease-in;\n\n &:focus,\n &:hover {\n outline: none;\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.search {\n position: relative;\n margin-bottom: 10px;\n flex: none;\n\n @include limited-single-column('screen and (max-width: #{$no-gap-breakpoint})') { margin-bottom: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n}\n\n.search-popout {\n @include search-popout();\n}\n\n.drawer--account {\n padding: 10px;\n color: $darker-text-color;\n display: flex;\n align-items: center;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n .acct {\n display: block;\n color: $secondary-text-color;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n overflow: hidden;\n}\n\n.drawer--results {\n background: $ui-base-color;\n overflow-x: hidden;\n overflow-y: auto;\n\n & > header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n & > section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n\n & > .hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n }\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 85%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n > .mastodon {\n display: block;\n width: 100%;\n height: 100%;\n border: none;\n cursor: inherit;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n",".video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n width: 100%;\n height: 100%;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 8%);\n }\n\n .status__content > & {\n margin-top: 15px; // Add margin when used bare for NSFW video player\n }\n @include fullwidth-gallery;\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 500;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n span {\n text-align: center;\n color: $darker-text-color;\n display: flex;\n height: 100%;\n align-items: center;\n\n p {\n width: 100%;\n }\n }\n\n audio {\n width: 100%;\n }\n}\n\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n height: 110px;\n\n @include fullwidth-gallery;\n}\n\n.media-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n .full-width & {\n border-radius: 0;\n }\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n\n &.letterbox {\n background: $base-shadow-color;\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n object-fit: contain;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n width: 100%;\n position: relative;\n z-index: 1;\n object-fit: contain;\n user-select: none;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $white;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $ui-highlight-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n .detailed-status & {\n width: 100%;\n height: 100%;\n }\n\n @include fullwidth-gallery;\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n position: relative;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-shadow-color;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n\n .fa,\n &:active .fa,\n &:hover .fa,\n &:focus .fa {\n color: inherit;\n }\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n",".sensitive-info {\n display: flex;\n flex-direction: row;\n align-items: center;\n position: absolute;\n top: 4px;\n left: 4px;\n z-index: 100;\n}\n\n.sensitive-marker {\n margin: 0 3px;\n border-radius: 2px;\n padding: 2px 6px;\n color: rgba($primary-text-color, 0.8);\n background: rgba($base-overlay-background, 0.5);\n font-size: 12px;\n line-height: 18px;\n text-transform: uppercase;\n opacity: .9;\n transition: opacity .1s ease;\n\n .media-gallery:hover & { opacity: 1 }\n}\n",".list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n",".emoji-mart {\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: 0;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -3px;\n left: 0;\n width: 100%;\n height: 3px;\n background-color: darken($ui-highlight-color, 3%);\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n",".glitch.local-settings {\n position: relative;\n display: flex;\n flex-direction: row;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n height: 80vh;\n width: 80vw;\n max-width: 740px;\n max-height: 450px;\n overflow: hidden;\n\n label, legend {\n display: block;\n font-size: 14px;\n }\n\n .boolean label, .radio_buttons label {\n position: relative;\n padding-left: 28px;\n padding-top: 3px;\n\n input {\n position: absolute;\n left: 0;\n top: 0;\n }\n }\n\n span.hint {\n display: block;\n color: $lighter-text-color;\n }\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n line-height: 24px;\n margin-bottom: 20px;\n }\n\n h2 {\n font-size: 15px;\n font-weight: 500;\n line-height: 20px;\n margin-top: 20px;\n margin-bottom: 10px;\n }\n}\n\n.glitch.local-settings__navigation__item {\n display: block;\n padding: 15px 20px;\n color: inherit;\n background: lighten($ui-secondary-color, 8%);\n border-bottom: 1px $ui-secondary-color solid;\n cursor: pointer;\n text-decoration: none;\n outline: none;\n transition: background .3s;\n\n .text-icon-button {\n color: inherit;\n transition: unset;\n }\n\n &:hover {\n background: $ui-secondary-color;\n }\n\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n\n &.close, &.close:hover {\n background: $error-value-color;\n color: $primary-text-color;\n }\n}\n\n.glitch.local-settings__navigation {\n background: lighten($ui-secondary-color, 8%);\n width: 212px;\n font-size: 15px;\n line-height: 20px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page {\n display: block;\n flex: auto;\n padding: 15px 20px 15px 20px;\n width: 360px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page__item {\n margin-bottom: 2px;\n}\n\n.glitch.local-settings__page__item.string,\n.glitch.local-settings__page__item.radio_buttons {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n@media screen and (max-width: 630px) {\n .glitch.local-settings__navigation {\n width: 40px;\n flex-shrink: 0;\n }\n\n .glitch.local-settings__navigation__item {\n padding: 10px;\n\n span:last-of-type {\n display: none;\n }\n }\n}\n",".error-boundary {\n color: $primary-text-color;\n font-size: 15px;\n line-height: 20px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n font-weight: 400;\n margin-bottom: 8px;\n }\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n }\n\n ul {\n list-style: disc;\n margin-left: 0;\n padding-left: 1em;\n }\n\n textarea.web_app_crash-stacktrace {\n width: 100%;\n resize: none;\n white-space: pre;\n font-family: $font-monospace, monospace;\n }\n}\n",".compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .drawer--account {\n flex: 0 1 48px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .composer {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px;\n min-height: 48px + 2px;\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n padding-top: 15px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .search {\n margin-bottom: 10px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n",".announcements__item__content {\n word-wrap: break-word;\n overflow-y: auto;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 10px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n &.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n.announcements {\n background: lighten($ui-base-color, 8%);\n font-size: 13px;\n display: flex;\n align-items: flex-end;\n\n &__mastodon {\n width: 124px;\n flex: 0 0 auto;\n\n @media screen and (max-width: 124px + 300px) {\n display: none;\n }\n }\n\n &__container {\n width: calc(100% - 124px);\n flex: 0 0 auto;\n position: relative;\n\n @media screen and (max-width: 124px + 300px) {\n width: 100%;\n }\n }\n\n &__item {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n max-height: 50vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &__range {\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n padding-right: 18px;\n }\n\n &__unread {\n position: absolute;\n top: 19px;\n right: 19px;\n display: block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n }\n }\n\n &__pagination {\n padding: 15px;\n color: $darker-text-color;\n position: absolute;\n bottom: 3px;\n right: 0;\n }\n}\n\n.layout-multiple-columns .announcements__mastodon {\n display: none;\n}\n\n.layout-multiple-columns .announcements__container {\n width: 100%;\n}\n\n.reactions-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-top: 15px;\n margin-left: -2px;\n width: calc(100% - (90px - 33px));\n\n &__item {\n flex-shrink: 0;\n background: lighten($ui-base-color, 12%);\n border: 0;\n border-radius: 3px;\n margin: 2px;\n cursor: pointer;\n user-select: none;\n padding: 0 6px;\n display: flex;\n align-items: center;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &__emoji {\n display: block;\n margin: 3px 0;\n width: 16px;\n height: 16px;\n\n img {\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n min-width: auto;\n min-height: auto;\n vertical-align: bottom;\n object-fit: contain;\n }\n }\n\n &__count {\n display: block;\n min-width: 9px;\n font-size: 13px;\n font-weight: 500;\n text-align: center;\n margin-left: 6px;\n color: $darker-text-color;\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 16%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n\n &__count {\n color: lighten($darker-text-color, 4%);\n }\n }\n\n &.active {\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%);\n\n .reactions-bar__item__count {\n color: lighten($highlight-text-color, 8%);\n }\n }\n }\n\n .emoji-picker-dropdown {\n margin: 2px;\n }\n\n &:hover .emoji-button {\n opacity: 0.85;\n }\n\n .emoji-button {\n color: $darker-text-color;\n margin: 0;\n font-size: 16px;\n width: auto;\n flex-shrink: 0;\n padding: 0 6px;\n height: 22px;\n display: flex;\n align-items: center;\n opacity: 0.5;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n opacity: 1;\n color: lighten($darker-text-color, 4%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n }\n\n &--empty {\n .emoji-button {\n padding: 0;\n }\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n ul,\n .e-content & ul {\n margin: 0;\n list-style: none;\n }\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n border-radius: 4px;\n display: block;\n background: darken($ui-primary-color, 5%);\n height: 5px;\n min-width: 1%;\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__option {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n &__text {\n display: inline-block;\n word-wrap: break-word;\n overflow-wrap: break-word;\n max-width: calc(100% - 45px - 25px);\n }\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n display: block;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($valid-value-color, 15%);\n border-width: 4px;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 45px;\n font-weight: 700;\n flex: 0 0 45px;\n }\n\n &__voted {\n padding: 0 5px;\n display: inline-block;\n\n &__mark {\n font-size: 18px;\n }\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n overflow-x: hidden;\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n width: 100%;\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__option {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n @include avatar-size(80px);\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n @include avatar-radius();\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n @include avatar-size(44px);\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: none;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &--with-select strong {\n display: block;\n margin-bottom: 10px;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n line-height: 20px;\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: $darker-text-color;\n font-size: 14px;\n padding: 0 10px;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n\n.announcements-list {\n border: 1px solid lighten($ui-base-color, 4%);\n border-radius: 4px;\n\n &__item {\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &__title {\n padding: 0 15px;\n display: block;\n font-weight: 500;\n font-size: 18px;\n line-height: 1.5;\n color: $secondary-text-color;\n text-decoration: none;\n margin-bottom: 10px;\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n }\n\n &__meta {\n padding: 0 15px;\n color: $dark-text-color;\n }\n\n &__action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n}\n","$emojis-requiring-outlines: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash' !default;\n\n%emoji-outline {\n filter: drop-shadow(1px 1px 0 $primary-text-color) drop-shadow(-1px 1px 0 $primary-text-color) drop-shadow(1px -1px 0 $primary-text-color) drop-shadow(-1px -1px 0 $primary-text-color);\n}\n\n.emojione {\n @each $emoji in $emojis-requiring-outlines {\n &[title=':#{$emoji}:'] {\n @extend %emoji-outline;\n }\n }\n}\n\n.hicolor-privacy-icons {\n .status__visibility-icon.fa-globe,\n .composer--options--dropdown--content--item .fa-globe {\n color: #1976D2;\n }\n\n .status__visibility-icon.fa-unlock,\n .composer--options--dropdown--content--item .fa-unlock {\n color: #388E3C;\n }\n\n .status__visibility-icon.fa-lock,\n .composer--options--dropdown--content--item .fa-lock {\n color: #FFA000;\n }\n\n .status__visibility-icon.fa-envelope,\n .composer--options--dropdown--content--item .fa-envelope {\n color: #D32F2F;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .composer--publisher {\n text-align: left;\n }\n\n .boost-modal__status-time,\n .favourite-modal__status-time {\n float: left;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .setting-meta__label {\n float: left;\n }\n\n .status__avatar {\n margin-left: 10px;\n margin-right: 0;\n\n // Those are used for public pages\n left: auto;\n right: 10px;\n }\n\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 58px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n text-align: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","// Notes!\n// Sass color functions, \"darken\" and \"lighten\" are automatically replaced.\n\n.glitch.local-settings {\n background: $ui-base-color;\n\n &__navigation {\n background: darken($ui-base-color, 8%);\n }\n\n &__navigation__item {\n background: darken($ui-base-color, 8%);\n\n &:hover {\n background: $ui-base-color;\n }\n }\n}\n\n.notification__dismiss-overlay {\n .wrappy {\n box-shadow: unset;\n }\n\n .ckbox {\n text-shadow: unset;\n }\n}\n\n.status.status-direct:not(.read) {\n background: darken($ui-base-color, 8%);\n border-bottom-color: darken($ui-base-color, 12%);\n\n &.collapsed> .status__content:after {\n background: linear-gradient(rgba(darken($ui-base-color, 8%), 0), rgba(darken($ui-base-color, 8%), 1));\n }\n}\n\n.focusable:focus.status.status-direct:not(.read) {\n background: darken($ui-base-color, 4%);\n\n &.collapsed> .status__content:after {\n background: linear-gradient(rgba(darken($ui-base-color, 4%), 0), rgba(darken($ui-base-color, 4%), 1));\n }\n}\n\n// Change columns' default background colors\n.column {\n > .scrollable {\n background: darken($ui-base-color, 13%);\n }\n}\n\n.status.collapsed .status__content:after {\n background: linear-gradient(rgba(darken($ui-base-color, 13%), 0), rgba(darken($ui-base-color, 13%), 1));\n}\n\n.drawer__inner {\n background: $ui-base-color;\n}\n\n.drawer__inner__mastodon {\n background: $ui-base-color url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto !important;\n\n .mastodon {\n filter: contrast(75%) brightness(75%) !important;\n }\n}\n\n// Change the default appearance of the content warning button\n.status__content {\n\n .status__content__spoiler-link {\n\n background: lighten($ui-base-color, 30%);\n\n &:hover {\n background: lighten($ui-base-color, 35%);\n text-decoration: none;\n }\n\n }\n\n}\n\n// Change the background colors of media and video spoilers\n.media-spoiler,\n.video-player__spoiler,\n.account-gallery__item a {\n background: $ui-base-color;\n}\n\n// Change the colors used in the dropdown menu\n.dropdown-menu {\n background: $ui-base-color;\n}\n\n.dropdown-menu__arrow {\n\n &.left {\n border-left-color: $ui-base-color;\n }\n\n &.top {\n border-top-color: $ui-base-color;\n }\n\n &.bottom {\n border-bottom-color: $ui-base-color;\n }\n\n &.right {\n border-right-color: $ui-base-color;\n }\n\n}\n\n.dropdown-menu__item {\n a {\n background: $ui-base-color;\n color: $ui-secondary-color;\n }\n}\n\n// Change the default color of several parts of the compose form\n.composer {\n\n .composer--spoiler input, .compose-form__autosuggest-wrapper textarea {\n color: lighten($ui-base-color, 80%);\n\n &:disabled { background: lighten($simple-background-color, 10%) }\n\n &::placeholder {\n color: lighten($ui-base-color, 70%);\n }\n }\n\n .composer--options-wrapper {\n background: lighten($ui-base-color, 10%);\n }\n\n .composer--options > hr {\n display: none;\n }\n\n .composer--options--dropdown--content--item {\n color: $ui-primary-color;\n \n strong {\n color: $ui-primary-color;\n }\n\n }\n\n}\n\n.composer--upload_form--actions .icon-button {\n color: lighten($white, 7%);\n\n &:active,\n &:focus,\n &:hover {\n color: $white;\n }\n}\n\n.composer--upload_form--item > div input {\n color: lighten($white, 7%);\n\n &::placeholder {\n color: lighten($white, 10%);\n }\n}\n\n.dropdown-menu__separator {\n border-bottom-color: lighten($ui-base-color, 12%);\n}\n\n.status__content,\n.reply-indicator__content {\n a {\n color: $highlight-text-color;\n }\n}\n\n.emoji-mart-bar {\n border-color: darken($ui-base-color, 4%);\n\n &:first-child {\n background: lighten($ui-base-color, 10%);\n }\n}\n\n.emoji-mart-search input {\n background: rgba($ui-base-color, 0.3);\n border-color: $ui-base-color;\n}\n\n.autosuggest-textarea__suggestions {\n background: lighten($ui-base-color, 10%)\n}\n\n.autosuggest-textarea__suggestions__item {\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: darken($ui-base-color, 4%);\n }\n}\n\n.react-toggle-track {\n background: $ui-secondary-color;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background: lighten($ui-secondary-color, 10%);\n}\n\n.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background: darken($ui-highlight-color, 10%);\n}\n\n// Change the background colors of modals\n.actions-modal,\n.boost-modal,\n.confirmation-modal,\n.mute-modal,\n.block-modal,\n.report-modal,\n.embed-modal,\n.error-modal,\n.onboarding-modal,\n.report-modal__comment .setting-text__wrapper,\n.report-modal__comment .setting-text {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n}\n\n.report-modal__comment {\n border-right-color: lighten($ui-base-color, 8%);\n}\n\n.report-modal__container {\n border-top-color: lighten($ui-base-color, 8%);\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar,\n.onboarding-modal__paginator,\n.error-modal__footer {\n background: darken($ui-base-color, 6%);\n\n .onboarding-modal__nav,\n .error-modal__nav {\n &:hover,\n &:focus,\n &:active {\n background-color: darken($ui-base-color, 12%);\n }\n }\n}\n\n// Change the default color used for the text in an empty column or on the error column\n.empty-column-indicator,\n.error-column {\n color: lighten($ui-base-color, 60%);\n}\n\n// Change the default colors used on some parts of the profile pages\n.activity-stream-tabs {\n\n background: $account-background-color;\n\n a {\n &.active {\n color: $ui-primary-color;\n }\n }\n\n}\n\n.activity-stream {\n\n .entry {\n background: $account-background-color;\n }\n\n .status.light {\n\n .status__content {\n color: $primary-text-color;\n }\n\n .display-name {\n strong {\n color: $primary-text-color;\n }\n }\n\n }\n\n}\n\n.accounts-grid {\n .account-grid-card {\n\n .controls {\n .icon-button {\n color: $ui-secondary-color;\n }\n }\n\n .name {\n a {\n color: $primary-text-color;\n }\n }\n\n .username {\n color: $ui-secondary-color;\n }\n\n .account__header__content {\n color: $primary-text-color;\n }\n\n }\n}\n\n.button.logo-button {\n color: $white;\n\n svg {\n fill: $white;\n }\n}\n\n.public-layout {\n .header,\n .public-account-header,\n .public-account-bio {\n box-shadow: none;\n }\n\n .header {\n background: lighten($ui-base-color, 12%);\n }\n\n .public-account-header {\n &__image {\n background: lighten($ui-base-color, 12%);\n\n &::after {\n box-shadow: none;\n }\n }\n\n &__tabs {\n &__name {\n h1,\n h1 small {\n color: $white;\n }\n }\n }\n }\n}\n\n.account__section-headline a.active::after {\n border-color: transparent transparent $white;\n}\n\n.hero-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.moved-account-widget,\n.memoriam-widget,\n.activity-stream,\n.nothing-here,\n.directory__tag > a,\n.directory__tag > div {\n box-shadow: none;\n}\n\n.audio-player .video-player__controls button,\n.audio-player .video-player__time-sep,\n.audio-player .video-player__time-current,\n.audio-player .video-player__time-total {\n color: $primary-text-color;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/skins/glitch/mastodon-light/common.js b/priv/static/packs/skins/glitch/mastodon-light/common.js index ba27beac9..0477e20b0 100644 Binary files a/priv/static/packs/skins/glitch/mastodon-light/common.js and b/priv/static/packs/skins/glitch/mastodon-light/common.js differ diff --git a/priv/static/packs/skins/vanilla/contrast/common.css b/priv/static/packs/skins/vanilla/contrast/common.css index fe14d9031..166981fe7 100644 Binary files a/priv/static/packs/skins/vanilla/contrast/common.css and b/priv/static/packs/skins/vanilla/contrast/common.css differ diff --git a/priv/static/packs/skins/vanilla/contrast/common.css.map b/priv/static/packs/skins/vanilla/contrast/common.css.map index 9db5f296a..55ba6a017 100644 --- a/priv/static/packs/skins/vanilla/contrast/common.css.map +++ b/priv/static/packs/skins/vanilla/contrast/common.css.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///common.scss","webpack:///./app/javascript/styles/mastodon/reset.scss","webpack:///./app/javascript/styles/contrast/variables.scss","webpack:///./app/javascript/styles/mastodon/basics.scss","webpack:///./app/javascript/styles/mastodon/variables.scss","webpack:///./app/javascript/styles/mastodon/containers.scss","webpack:///./app/javascript/styles/mastodon/lists.scss","webpack:///./app/javascript/styles/mastodon/footer.scss","webpack:///./app/javascript/styles/mastodon/compact_header.scss","webpack:///./app/javascript/styles/mastodon/widgets.scss","webpack:///./app/javascript/styles/mastodon/forms.scss","webpack:///./app/javascript/styles/mastodon/accounts.scss","webpack:///./app/javascript/styles/mastodon/statuses.scss","webpack:///./app/javascript/styles/mastodon/boost.scss","webpack:///./app/javascript/styles/mastodon/components.scss","webpack:///","webpack:///./app/javascript/styles/mastodon/_mixins.scss","webpack:///./app/javascript/styles/mastodon/polls.scss","webpack:///./app/javascript/styles/mastodon/modal.scss","webpack:///./app/javascript/styles/mastodon/emoji_picker.scss","webpack:///./app/javascript/styles/mastodon/about.scss","webpack:///./app/javascript/styles/mastodon/tables.scss","webpack:///./app/javascript/styles/mastodon/admin.scss","webpack:///./app/javascript/styles/mastodon/dashboard.scss","webpack:///./app/javascript/styles/mastodon/rtl.scss","webpack:///./app/javascript/styles/mastodon/accessibility.scss","webpack:///./app/javascript/styles/contrast/diff.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,sCACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,0BACA,CC9EmB,iEDqFrB,kBCrFqB,4BDyFrB,sBACE,MErFF,iDACE,mBACA,eACA,iBACA,gBACA,WCXM,kCDaN,6BACA,8BACA,CADA,0BACA,CADA,yBACA,CADA,qBACA,0CACA,wCACA,kBAEA,iKAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBDrDmB,kBCyDnB,iBACE,kBACA,0BAEA,iBACE,aAIJ,iBACE,YAGF,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cD9EgB,mBAZC,WC6FjB,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,sCAGE,aACE,gBACA,WACA,YACA,kBACA,uBAIJ,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,kDAKF,YAGE,WACA,mBACA,uBACA,oBACA,sBAGF,YACE,yEAKF,gBAEE,+EAKF,WAEE,sCAIJ,qBAEE,eACA,gBACA,gBACA,cACA,kBACA,8CAEA,eACE,0CAGF,mBACE,gEAEA,eACE,0CAIJ,aDpLwB,kKCuLtB,oBAGE,sDAIJ,aDpLgB,eCsLd,0DAEA,aDxLc,oDC6LhB,cACE,SACA,uBACA,cDhMc,aCkMd,UACA,SACA,oBACA,eACA,UACA,4BACA,0BACA,gMAEA,oBAGE,kEAGF,aC9NY,gBDgOV,gBEnON,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SDrBI,YCuBF,kBACA,sBAGF,YACE,uBACA,mBACA,WD9BE,qBCgCF,UACA,kBACA,iBACA,6CACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAGF,UACE,YACA,iBACA,6BAEA,UACE,YACA,cACA,SACA,kBACA,uBAIJ,aACE,cH/EmB,wBGiFnB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UDxUA,qCC2UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cHhVc,mBGkVd,kBACA,uHAEA,yBAGE,WDrWA,qCCyWF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBHxaiB,8CG6anB,yBACE,gBACA,aACA,kBACA,mBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,YACA,aACA,kBACA,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,qCAIJ,2CArCF,YAsCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAGF,UACE,YACA,CACA,sBACA,wDAEA,QACE,kBACA,2DAGF,mDAXF,YAYI,sCAKN,2CAhEF,eAiEI,sCAGF,2CApEF,cAqEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WD1kBF,gBC4kBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WDplBJ,gBCslBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aH/lBQ,oDGsmBd,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cH3nBU,aG6nBV,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BH3pBW,wEGiqBX,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WDnsBJ,6CCqsBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cH5tBY,uDG+tBZ,oBACE,cHhuBU,qBGkuBV,aACA,gBACA,8DAEA,eACE,WDpvBJ,qCC0vBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aDryBU,8DC2yBV,mBACA,WD7yBE,qFCizBJ,YAEE,eACA,cHvyBc,2CG2yBhB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBHn3Ba,+IGs3BX,kBAGE,WC53BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,wBCfF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,eACE,kBACA,cLlFc,6BKqFd,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBCjIR,cACE,iBACA,cNYgB,gBMVhB,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cNJiB,wBMQnB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBLPI,uBKUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBPlBmB,aOoBjB,0BACA,eACA,cPVgB,iBOYhB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aPxCmB,qBO0CjB,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,gBACA,eACA,cPhEgB,+BOoElB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aP7FkB,aOkGpB,YACE,kBACA,mBPhHmB,mCOkHnB,qBAGF,YACE,kBACA,0BACA,kBACA,cP7GkB,mBO+GlB,iBAGF,eACE,eACA,cPpHkB,iBOsHlB,qBACA,gBACA,UACA,oBAEA,YACE,gBACA,eACA,cP9HgB,0BOkIlB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cP3IgB,qBO6IhB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBPzKmB,mCO2KnB,cP7JqB,gBO+JrB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cP1Mc,8DOgNhB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eLhPM,CKkPN,cACA,cPrOkB,mBOuOlB,+BANA,iBACA,CLhPM,kCK8PN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,UL/PM,eKiQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cP3PgB,qCO+PlB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBPrRqB,kBOuRnB,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBPlSe,kBOoSf,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBPzSiB,eO2Sf,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WLjUE,mBKmUF,gBACA,uBACA,wBAEA,aP1Tc,0BO8Td,aACE,gBACA,eACA,eACA,cPlUY,0IOwUd,ULrVE,+BK6VJ,aACE,YACA,uDAGF,oBPvViB,wCO2VjB,eACE,eAKN,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,cPxYgB,gBO0YhB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WL7aI,8BKgbJ,aACE,cPpac,gBOsad,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aPrgBkB,iCOogBpB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cP5hBiB,4JO+hBjB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WLhkBI,gCKkkBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MCjlBJ,+CACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WNhDA,cMkDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aRjEoB,0BQmElB,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aRvFkB,sBQ0FhB,aRnGsB,yBQuGtB,iBACE,kBACA,mBACA,uBAGF,eACE,iBACA,sBAIJ,kBACE,wBAGF,aACE,eACA,eACA,qBAGF,kBACE,cRrHgB,iCQwHhB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WNlKA,gBMoKA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WNxLE,cM0LF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WN9ME,cMgNF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,6BAIJ,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WN5RI,cM8RJ,WACA,2CAKE,mBACE,eACA,WNtSA,qBMwSA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WNtUI,cMwUJ,WACA,UACA,oBACA,gBACA,mBACA,yBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,wQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBN7VY,oLMiWZ,iBACE,4WAGF,oBRlWsB,mBQqWpB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBR5YiB,WEXb,eM0ZJ,oBACA,YACA,aACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBRlboB,gGQsbpB,kBNtbQ,kHMybN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WNzcI,cM2cJ,WACA,UACA,oBACA,gBACA,wXACA,yBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cRzdY,oBQ2dZ,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,iEACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,8BACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UNvhBF,aMiiBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cR5hBkB,kBQ8hBlB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cNjjBY,sBMqjBd,mCACE,+BACA,cNtjBQ,kBM0jBV,oBACE,cRhjBgB,qBQkjBhB,wBAEA,UNjkBI,0BMmkBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBRjlBiB,WEDb,eMqlBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aR7mBkB,qBQ+mBhB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aR1oBwB,qBQ4oBtB,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cRhpBkB,oCQmpBlB,cACE,mBACA,kBACA,4CAGF,aRvpBqB,gBQypBnB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBN7rBM,YM+rBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cR5rBqB,WQ8rBrB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WNzuBI,qCM2uBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UNjvBI,0BMmvBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cRnxBkB,0BQsxBlB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WN7yBI,kBM+yBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aNvzBc,0SMi0BZ,+CACE,aAIJ,kBACE,yBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gDACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBN32Bc,gBM62BZ,2BAEA,kBN/2BY,gBMi3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SCl7BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,mBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,WACA,YACA,gBACA,wBAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WP7EA,gBO+EA,gBACA,uBACA,+BAGF,aACE,eACA,cTzEY,gBS2EZ,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WP3GI,gBO6GJ,qBACA,iBACA,qBACA,sBAGF,ePnHM,oBOqHJ,WTtHI,eSwHJ,cACA,kBAGF,cACE,uCAGF,aThHqB,oBSqHrB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,cACA,qCAGF,YA7DF,iBA8DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBT1KqB,mCS4KnB,cTxJiB,eS0JjB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cTzMwB,sCS2MxB,sCACA,6DAEA,aPhNc,sCOkNZ,kCACA,qDAGF,aACE,sCACA,kCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cT5OmB,6BS8OnB,6BAGF,aACE,cTpPgB,4BSwPlB,aTjQwB,qBSmQtB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aPnRY,gBOqRV,0CAGF,aPxRY,wCO6Rd,eACE,wCAIJ,UACE,0BAIA,aT3RkB,4BS8RhB,aTxSsB,qBS0SpB,qGAEA,yBAGE,iCAIJ,UPtTI,gBOwTF,wBAIJ,eACE,kBC/TJ,kCACE,kBACA,gBACA,mBACA,8BAEA,yBACE,qCAGF,iBAVF,eAWI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBV5BmB,6GU+BjB,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBVpEmB,WEXb,oBQkFN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UR5FI,gFQgGN,kBAGE,qNAKA,kBVtGoB,4IU8GpB,kBR9GQ,qCQqHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAGF,gBACE,iBACA,mFAGF,UACE,qMAGF,eAGE,iCC/JN,u+KACE,uCAEA,u+KACE,0CAIJ,u+KACE,WCTF,gCACE,4CACA,cAGF,aACE,eACA,iBACA,cZKmB,SYHnB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,aZhBsB,eYkBpB,SAIJ,wBZbqB,YYenB,kBACA,sBACA,WV5BM,eU8BN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,qBACA,uBACA,2BACA,mBACA,WACA,4CAEA,wBAGE,4BACA,sBAGF,eACE,mFAEA,wBVxDQ,gBU4DN,mCAIJ,wBZhEsB,eYmEpB,2BAGF,QACE,wDAGF,mBAGE,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,UZ9FM,mBAGgB,qGY+FpB,wBAGE,8BAIJ,kBV1EsB,2GU6EpB,wBAGE,0BAIJ,aZrGkB,uBYuGhB,iBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,kBAIJ,YACE,cACA,kBACA,cAGF,oBACE,UACA,cZjIoB,SYmIpB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,uCACA,4BACA,2CACA,oBAGF,qCACE,uBAGF,aACE,6BACA,eACA,qBAGF,aZ1KwB,gCY8KxB,QACE,uEAGF,mBAGE,uBAGF,aZxKmB,sFY2KjB,aAGE,oCACA,6BAGF,kCACE,gCAGF,aACE,6BACA,8BAGF,aZ3MsB,uCY8MpB,aACE,wBAKN,sBACE,0BACA,yBACA,kBACA,YACA,8BAEA,yBACE,mBAKN,aZjNqB,SYmNnB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,oCACA,4BACA,2CACA,yBAGF,kCACE,4BAGF,aACE,6BACA,eACA,0BAGF,aZlQwB,qCYsQxB,QACE,sFAGF,mBAGE,CAKF,0BADF,iBAUE,CATA,WAGF,WACE,cACA,qBACA,QACA,SAEA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,eAIJ,YACE,iCAGE,mBACA,eAEA,gBACA,wCAEA,aZvTsB,sDY2TtB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBZ5UoB,yDYmVxB,UZxVM,mBY0VJ,mBZvVoB,oCYyVpB,iBACA,kBACA,eACA,gBACA,6CAEA,UZlWI,gBYoWF,CAII,kRADF,eACE,wCAKN,aZxViB,gBY0Vf,0BACA,yIAEA,oBAGE,sCAKN,iBACE,QACA,UACA,kDAGF,iBACE,mGAGF,iBAGE,WACA,8BAGF,QACE,wBACA,UACA,qDAEA,WACE,mBACA,UACA,mFAIJ,aAEE,sBACA,WACA,SACA,WZ5ZI,gBECA,aU8ZJ,oBACA,eACA,gBACA,SACA,UACA,yIAEA,aZvZc,CYqZd,sHAEA,aZvZc,CYqZd,8HAEA,aZvZc,CYqZd,gIAEA,aZvZc,CYqZd,4GAEA,aZvZc,+FY2Zd,SACE,qCAGF,kFAvBF,cAwBI,sCAIJ,iBACE,+CAGF,gBACE,0BACA,iBACA,mBACA,YACA,qBACA,kEAEA,SACE,qCAGF,8CAZF,sBAaI,gBACA,2DAIJ,iBACE,SACA,kDAGF,qBACE,aACA,kBACA,SACA,WACA,WACA,sCACA,mBZjdsB,0BYmdtB,WZvdI,eYydJ,YACA,6FAEA,aACE,wDAIJ,YACE,eACA,kBACA,yPAEA,kBAIE,wGAIJ,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,oCAGF,6BACE,0CAEA,aACE,gBACA,uBACA,mBACA,2CAGF,eACE,0CAGF,aACE,iBACA,gBACA,uBACA,mBACA,8EAIJ,aAEE,iBACA,WACA,YACA,2DAGF,aZngBmB,wCYugBnB,UZ5hBM,oBY8hBJ,eACA,gBV9hBI,sEUiiBJ,eACE,uEAGF,YACE,mBACA,YACA,eACA,8DAGF,UACE,cACA,WACA,uEAEA,iFACE,aACA,uBACA,8BACA,UACA,4BACA,oFAEA,aACE,cZ3iBa,eY6iBb,gBACA,aACA,oBACA,6QAEA,UAGE,8EAIJ,SACE,0EAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,gFACA,aACA,UACA,4BACA,mFAEA,sBACE,cZ3kBa,SY6kBb,UACA,SACA,WACA,oBACA,eACA,gBACA,yFAEA,UVpmBF,8GUwmBE,WACE,cZ1lBW,CEff,oGUwmBE,WACE,cZ1lBW,CEff,wGUwmBE,WACE,cZ1lBW,CEff,yGUwmBE,WACE,cZ1lBW,CEff,+FUwmBE,WACE,cZ1lBW,iFY+lBf,SACE,wEAKN,iBACE,sBVtnBE,wBUwnBF,sBACA,4BACA,aACA,WACA,gBACA,8CAIJ,YACE,mBACA,0BACA,aACA,8BACA,cACA,qEAEA,YACE,uGAEA,gBACE,qGAGF,YACE,6IAEA,aACE,2IAGF,gBACE,0HAKN,sBAEE,cACA,0EAGF,iBACE,iBACA,sCAIJ,YACE,yBACA,YACA,cACA,4EAEA,eACE,iBACA,oBAKN,cACE,kDACA,eACA,gBACA,cZrqBmB,4CYwqBnB,aVzrBY,kCU8rBd,2CACE,WCpsBF,8DDysBE,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,kBAIJ,iBACE,mBACA,mBZltBsB,aYotBtB,gBACA,gBACA,cACA,0BAGF,iBACE,gBACA,0BAGF,WACE,iBACA,gCAGF,UZvuBQ,cYyuBN,eACA,iBACA,gBACA,mBACA,qBACA,kCAGF,UACE,iBACA,+BAGF,cACE,4CAGF,iBAEE,eACA,iBACA,qBACA,gBACA,gBACA,uBACA,gBACA,WVlwBM,wDUqwBN,SACE,wGAGF,kBACE,sJAEA,oBACE,gEAIJ,UACE,YACA,gBACA,oDAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,gDAGF,kBACE,qBACA,sEAEA,eACE,gDAIJ,aV1xBc,qBU4xBZ,4DAEA,yBACE,oEAEA,aACE,4EAKF,oBACE,sFAEA,yBACE,wDAKN,aZ9yBc,8EYmzBhB,aACE,0GAGF,kBZpzBoB,sHYuzBlB,kBACE,qBACA,8IAGF,QACE,0XAGF,mBAGE,0FAIJ,YACE,wJAEA,aACE,6CAKN,gBACE,oCAGF,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,oFAEA,yBAEE,gCAIJ,oBACE,kBACA,uBACA,SACA,WZ13BM,gBY43BN,eACA,cACA,iBACA,eACA,sBACA,4BAGF,aZr3BkB,SYu3BhB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,kBAIA,SACE,mBACA,wCAEA,kBACE,8CAEA,sBACE,iFAIJ,kBAEE,SAMJ,yBACA,kBACA,gBACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QARF,kBAWI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,aZt7Be,CAtBX,uEYq9BF,UZr9BE,kCYy9BF,aZn8Ba,gCYw8Bf,UZ99BI,kCYi+BF,aZ59BoB,gEYg+BpB,UVp+BE,mBFEgB,sEYs+BhB,kBACE,+CAQR,sBACE,qEAEA,aACE,qDAKN,aZ5+BkB,YY++BhB,eACA,uBAGF,aZn/BkB,qCYu/BlB,aACE,eACA,mBACA,eAGF,cACE,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,cZviCgB,CYyiChB,iBACA,eACA,kBACA,+CAEA,aZ9iCgB,uBYkjChB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cZxkCgB,4BY8kCtB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,kEAGF,gBACE,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cZzoCgB,eY2oChB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,2BAGF,UZprCQ,eYsrCN,6BAEA,aZnqCmB,SYwqCrB,YACE,gCACA,8BAEA,aACE,cACA,WVlsCI,qBUosCJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,UAGF,YACE,gCACA,kBAEA,SACE,gBACA,2CAEA,aACE,iCAIJ,aACE,cACA,cZttCgB,gBYwtChB,qBACA,eACA,mBAIJ,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,iBEtvCE,iCACA,wBACA,4BACA,kBFqvCA,yBAEA,oBACE,sBACA,iBACA,4BAGF,iBEhwCA,iCACA,wBACA,4BACA,kBF+vCE,gBACA,kBACA,eACA,gCAEA,UACE,kBACA,sBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WVjxCE,6BUmxCF,gBACA,eACA,oBAKN,cACE,0BAGF,UACuB,sCEvxCrB,+BFyxCA,iBElyCA,iCACA,wBACA,4BACA,WFiyCuB,sCE3xCvB,kCF8xCA,iBEvyCA,iCACA,wBACA,4BACA,WFsyCuB,sCEhyCvB,kBFkyCE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,sBAGF,YACE,6BACA,cZ3yCgB,6BY8yChB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,+BAGF,YACE,4CAEA,qBACE,oFAIA,QACE,WACA,uDAGF,WACE,iBACA,gBACA,WACA,4BAKN,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,+BACA,eACA,oCACA,kCAEA,+BACE,gCAGF,aACE,eACA,cZ13CgB,kCY83ClB,aACE,eACA,gBACA,WV94CI,CUm5CA,2NADF,eACE,oBAMR,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,6JAGF,oBAME,4DAKA,UVn7CM,kBUy7CN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,aZv8CuB,cYy8CrB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WVr+CI,kCU0+CR,UACE,kBACA,iBAGF,WACE,UACA,kBACA,SACA,WACA,iBAGF,UACE,kBACA,OACA,MACA,YACA,eACA,CZ/+CgB,gHYy/ChB,aZz/CgB,wBY6/ChB,UACE,wCAGF,kBVj/CsB,WF/BhB,8CYohDJ,kBACE,qBACA,wBAKN,oBACE,gBACA,eACA,cZhhDkB,eYkhDlB,iBACA,kBACA,4BAEA,aZ/hDwB,6BYmiDxB,cACE,gBACA,uBACA,uCAIJ,UACE,kBACA,CV5iDU,mEUmjDZ,aVnjDY,uBUujDZ,aVxjDc,4DU8jDV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UVllDM,0BUolDJ,8BAIJ,WACE,eAGF,aACE,eACA,gBACA,uBACA,mBACA,qBAGF,eACE,wBAGF,cACE,+DAKA,yBACE,eAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cVzkD4B,eAEC,0DU0kD3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cVjmD4B,eAEC,WUkmD3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,iBAIJ,YACE,aACA,mBACA,cACA,eACA,cZrpDkB,wBYwpDlB,aZtpDqB,mBY0pDrB,aACE,4BAGF,oBACE,0CAGF,iBACE,6DAEA,iBACE,oBACA,qCACA,UACA,4EAGF,mBACE,gCACA,UACA,0BAKN,aACE,gBACA,iBACA,gBACA,gBACA,kCAGF,aACE,gBACA,gBACA,uBACA,+BAGF,aACE,qBACA,WAGF,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBZnuD0B,cYquDxB,kBACA,uCACA,aACA,mBAEA,eACE,qBAGF,yBACE,oBAGF,yBACE,uBAGF,sBACE,sBAGF,sBACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BZxwDsB,2BY4wDxB,WACE,iBACA,uBACA,yBZ/wDsB,8BYmxDxB,QACE,iBACA,uBACA,4BZtxDsB,6BY0xDxB,SACE,gBACA,2BACA,2BZ7xDsB,wBYmyDxB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZzyDsB,WAJlB,gBYgzDJ,uBACA,mBACA,yFAEA,kBZxyDiB,cAIE,UYyyDjB,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBZn0DsB,cYq0DtB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZ51DsB,WAJlB,gBYm2DJ,uBACA,mBACA,oDAEA,SACE,oDAGF,kBZ/1DiB,cAIE,iBYk2DvB,qBACE,eAGF,YACE,cACA,mBACA,2BACA,gBACA,kBACA,4BAEA,iBACE,uBAGF,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,gKAMJ,WAIE,mCAIJ,YACE,mBACA,uBACA,YACA,SAGF,WACE,kBACA,sBACA,aACA,sBACA,qBAEA,kBZr9DmB,8BYu9DjB,+BACA,KAIJ,aACE,CACA,qBACA,WACA,YACA,aAJA,YAYA,CARA,QAGF,WACE,sBACA,CACA,qBACA,kBACA,cAGF,aACE,cACA,sBACA,cZn+DkB,qBYq+DlB,kBACA,eACA,oCACA,iBAGF,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WVxiEM,qBU0iEN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCAMA,mEAHF,kBAII,4BACA,yBAIJ,+BACE,cZ7jEsB,sBYikExB,eACE,aACA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,YACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,2BACE,gBACA,uCAEA,SACE,SACA,wCAGF,eACE,wCAGF,gBACE,iBACA,qDAGF,UACE,gLAGF,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,iBACA,6DAGF,UACE,CAIA,yFAGF,eACE,8DAGF,gBACE,kBACA,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WV/uEM,kBUivEN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,4DAGF,kBAGE,yBAGF,aACE,iBAGF,eAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,mBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBZ/yEiB,yBYizEjB,gBACA,kBACA,eACA,gBACA,iBACA,WVj0EI,mDUs0ER,oBACE,gBAGF,WACE,gBACA,aACA,sBACA,yBACA,kBACA,gCAEA,gBACE,oBACA,cACA,gBACA,6BAGF,sBACE,8BAGF,MACE,kBACA,aACA,sBACA,iBACA,oBACA,oBACA,mDAGF,eACE,sBVx2EI,0BU02EJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,gBAMF,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAiBA,CAhBA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,kBACA,uBAEA,kBZv6EmB,0BY46ErB,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,WACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,sCAGF,yBAjBF,aAkBI,iBAIJ,kBACE,eACA,gBACA,iBAGF,aACE,eACA,mBACA,mBACA,aACA,mBACA,kBACA,mBAEA,iCACE,yBAEA,kBACE,mCACA,aAKN,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,sBAIJ,qBACE,WACA,mBACA,cZ3/EwB,eY6/ExB,cACA,eACA,oBACA,SACA,iBACA,aACA,SACA,UACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cZhhFwB,eYkhFxB,mBACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,eAGF,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,0CACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBZxlFmB,qCY0lFnB,sEAGF,wBACE,4CAGF,wBZvlFqB,+EY2lFrB,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,yBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBZnpFmB,cYupFrB,kBACE,WVnqFM,cUqqFN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cZlrFsB,kGYqrFtB,sBAGE,WV3rFE,kCU+rFJ,aZprFiB,oBY0rFrB,oBACE,iBACA,qBAGF,oBACE,kBACA,eACA,iBACA,gBACA,mBZ9sFmB,gBYgtFnB,iBACA,oBAGF,kBZptFqB,cAaH,iBY0sFhB,eACA,gBACA,eACA,yDAGF,kBZ7tFqB,cYmuFrB,aACE,kBAGF,aZ1tFkB,cY4tFhB,8BACA,+BACA,4EAEA,0BAGE,CAHF,uBAGE,CAHF,kBAGE,kDAMA,sBACA,YACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,cACE,0DAEA,aZxvFY,0BY0vFV,sDAIJ,oBACE,cZhwFc,sMYmwFd,yBAGE,oDAKN,aZ1wFgB,0BYgxFhB,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,cZxxFc,aY0xFd,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA1BF,YA2BI,yCAGF,eACE,aACA,iDAEA,aZnzFc,qBY0zFpB,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,aACE,sBACA,WACA,SACA,WZj2FM,gBECA,aUm2FN,oBACA,eACA,gBACA,SACA,UACA,kBACA,qBAEA,SACE,qCAGF,cAnBF,cAoBI,oDAIJ,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAKJ,uBACE,2BACA,gDAGF,aZt3FsB,6BYw3FpB,uDAGF,aZx4F0B,cY44F1B,YACE,eACA,yBACA,kBACA,cZt4FgB,gBYw4FhB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cZj6FiB,uBYm6FjB,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UVz7FE,yBUg8FJ,cACE,kBACA,YACA,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACA,YACA,SACA,2BAIA,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cZt9FkB,gBYw9FlB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,aZp+FoB,oBYw+FpB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,YAGF,aACE,cZpjGgB,6BYsjGhB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,yBAGF,iBACE,eACA,gBACA,cZ9kGgB,mBAbG,eY8lGnB,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,cZ5mGY,qCYgnGd,cACE,gBACA,yBAKN,iBACE,cACA,uCAGE,aACE,WACA,kBACA,SACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,gFACA,gBAKN,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,2BACA,4BACA,uBAEA,QACE,SACA,yBACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,aZlrGwB,uBYsrGxB,sCACE,4CAEA,aZzrGsB,yCY2rGpB,4CAIJ,SAEE,yBAIJ,WACE,aACA,uBAGF,kBACE,iCAGF,iBACE,wBAGF,kBACE,SACA,cZ3sGkB,eY6sGlB,eACA,eACA,8BAEA,aACE,CAKA,kEAEA,UVtuGI,mBUwuGF,6BAKN,eACE,gBACA,gBACA,cZnuGkB,0DYquGlB,UACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,mCAIJ,kBACE,aACA,mCAIA,aZhwGkB,0BYkwGhB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,sBAGF,oBACE,iBACA,oBAGF,aZjyGkB,eYmyGhB,gBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,gCAGF,kBACE,gBVz6GM,WACA,eU26GN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,eVv7GQ,cFcY,SY46GlB,UACA,WACA,YACA,kBACA,wBACA,CADA,oBACA,CADA,eACA,iEAEA,SAGE,cACA,yBAIJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,iBAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,aACE,SACA,QACA,WACA,YACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,0BACA,kBACA,iBACA,WVt/GE,gBUw/GF,eACA,+LAMA,yBACE,mEAKF,yBACE,6BAMR,kBACE,iBAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,aZvhHoB,eYyhHlB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SEtiHF,sBACA,WACA,SACA,gBACA,oBACA,mBdhBmB,cAYD,ecOlB,SACA,+EFgiHI,aACE,CEjiHN,qEFgiHI,aACE,CEjiHN,yEFgiHI,aACE,CEjiHN,0EFgiHI,aACE,CEjiHN,gEFgiHI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,aZ9jHc,iBYgkHZ,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,aZxlHgB,0HY6lHhB,cAEE,gBACA,cZ/lHY,kZYkmHZ,aAGE,gEAIJ,wBACE,iDAGF,eV3nHI,kBY0BN,CAEA,eACA,cdRiB,uCcUjB,UF8lHI,mBZ1nHoB,oDc8BxB,adZiB,eccf,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,WdlDI,sDYkoHJ,WACE,mDAGF,UZtoHI,kBYwoHF,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UVxpHQ,kBU0pHN,cACA,mBACA,sBV7pHM,eU+pHN,gBACA,YACA,kBACA,WACA,yBAEA,SACE,iBAIJ,aACE,iBACA,wBAGF,aZjqHoB,qBYmqHlB,mBACA,gBACA,sBACA,uCAGF,aZxqHkB,mBAbG,kBYyrHnB,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBAEA,sCAdF,cAeI,kDAGF,eACE,2CAGF,aZxsHwB,qBY0sHtB,uDAEA,yBACE,eAKN,qBACE,8BAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA1BF,qBAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,mCAIJ,8BACE,2DACA,CADA,kDACA,iCAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,EA/BF,wBAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,kCAIJ,yBACE,8EACA,CADA,qEACA,8BAGF,eV/xHQ,kBUiyHN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBV3zHM,kBU6zHN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,+BAGE,2DAIJ,WACE,wBAKF,2BACE,cAIJ,kBACE,0BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBZ53HmB,kCY83HnB,uBAGF,MACE,aACA,mBACA,uBACA,cZv3HqB,eYy3HrB,gBACA,0BACA,kBACA,kBAGF,YACE,cZ33HmB,gBY63HnB,aACA,sBAEA,cACE,kBACA,uBAGF,cACE,gBACA,cACA,0BAIJ,aACE,4BAGF,UACE,WACA,kBACA,mBVz4HsB,kBU24HtB,eACA,2BAGF,iBACE,OACA,MACA,WACA,mBZt6HmB,kBYw6HnB,eAGF,aACE,eACA,iBACA,gBACA,WACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,CACA,UACA,YACA,eACA,CAQE,6GAKN,SACE,oBACA,CADA,WACA,6BAGF,iBACE,gBV99HM,uCUg+HN,kBACA,iBACA,gBACA,iCAEA,yBACE,oCAGF,sBACE,2BAIJ,UZ/+HQ,aYi/HN,eACA,aACA,kEAEA,kBZz+HmB,WEXb,UUw/HJ,CVx/HI,4RU6/HF,UV7/HE,wCUmgIN,kBACE,iCAIJ,YACE,mBACA,uBACA,kBACA,oCAGF,aACE,cZ5/HmB,2CY+/HnB,eACE,cACA,WZthII,CY2hIA,wQADF,eACE,mDAON,eVjiIM,0BUmiIJ,qCACA,gEAEA,eACE,0DAGF,kBZ/hIiB,uEYkiIf,UV7iIE,uDUmjIN,yBACE,sDAGF,aACE,sCACA,SAIJ,iBACE,gBAGF,SErjIE,sBACA,WACA,SACA,gBACA,oBACA,mBdhBmB,cAYD,ecOlB,SACA,cF+iIA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,sCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,sCACA,eACA,WACA,YACA,cZvmImB,eYymInB,oBACA,0BAEA,mBACE,WACA,0BAIJ,uBACE,iCAEA,mBACE,uBACA,gCAIJ,QACE,uBACA,cZ3nIkB,eY6nIlB,uCAEA,uBACE,sCAGF,aACE,yBAKN,aZ5oIkB,mBY8oIhB,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,cZpqIc,iCYuqId,oBACE,iBACA,8FAIJ,eAEE,0BAIJ,aACE,aACA,cZprIqB,qBYsrIrB,+FAEA,aAGE,0BACA,uBAIJ,YACE,cZnsIkB,kBYqsIlB,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,0BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,cV7tI0B,eAEC,CUuuI7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,yBACE,sBACA,SACA,WVzzIM,eU2zIN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,cZp2IsB,mFYu2ItB,yBAGE,wBAKN,oBACE,sBAGF,qBVt3IQ,YUw3IN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wBZ73I0B,qBYi4I1B,iBACE,UACA,QACA,YACA,6CAGF,kBZz4I0B,WAJlB,kBYk5IN,gBACA,aACA,sBACA,oBAGF,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,mDAGF,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,aZ/6ImB,SYk7IjB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,qiBAGF,UZx9II,qwDY49IF,aAGE,sBAMR,sBACE,eAGF,iBACE,eACA,mBACA,sBAEA,eACE,WZ/+II,kBYi/IJ,eACA,qBAGF,kBZn/ImB,cAcE,gBYw+InB,aACA,kBACA,kBAIJ,oBACE,eACA,gBACA,iBACA,wFAGF,kBAME,WZ3gJM,kBY6gJN,gBACA,eACA,YACA,kBACA,sBACA,4NAEA,aACE,eACA,mBACA,wLAGF,WACE,UACA,kBACA,SACA,WACA,kRAGF,UACE,wBAKF,eVviJM,CFGkB,gBYuiJtB,oBACA,iEV3iJI,2BFGkB,yBYgjJ1B,iBACE,aACA,iCAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,2GAIJ,YAIE,8BACA,mBZ/jJwB,aYikJxB,iBACA,2HAEA,aACE,iBACA,cZrjJiB,mBYujJjB,2IAGF,aACE,6BAIJ,cACE,2BAGF,WACE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,aZnoJwB,iLYuoJxB,UZ5oJM,qCYipJN,oDAjBF,eAkBI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,UZ3qJI,gBECA,aU6qJJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,eV7rJI,yBU+rJF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,UZ9sJE,oBYgtJA,eACA,gBVhtJA,+CUqtJJ,YACE,8BACA,mBACA,4CAIJ,aACE,WZ9tJI,eYguJJ,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,UZzuJI,eY2uJF,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eACE,eACA,wBAEA,eACE,iBACA,2CAGF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,UZrxJE,aYuxJA,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBZ1xJW,WEXb,uDU4yJA,iBACE,oMAUR,aACE,iIAIJ,4BAIE,cZ5yJmB,eY8yJnB,gBACA,6cAEA,aAGE,6BACA,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,UZj3JI,CYm3JF,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,wBZ73J0B,WY+3JxB,kBACA,MACA,OACA,aACA,6BAGF,aACE,kBACA,WV54JM,0BU84JN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,2DAKE,YACE,wDAKF,SACE,uBAKN,eACE,6BAEA,UACE,kBAIJ,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cZ76Jc,iBY+6Jd,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cZ38JY,gBY68JZ,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,aZ99Jc,gBYs+JhB,cACA,CACA,iBACA,CACA,UACA,qCANF,qBACE,CACA,eACA,CACA,iBAYA,CAVA,qBAGF,QACE,CACA,aACA,WACA,CACA,iBAEA,qEAGE,cACE,MACA,gCAKN,cACE,cACA,qBACA,cZjgKqB,kBYmgKrB,UACA,mEAEA,WAEE,WACA,CAIA,2DADF,mBACE,CADF,8BACE,CADF,gBV5hKM,CU6hKJ,wBAIJ,UACE,YACA,CACA,iBACA,MACA,OACA,UACA,gBVxiKM,iCU2iKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,qCAGF,cACE,YACA,oBACA,CADA,8BACA,CADA,gBACA,kBACA,QACA,2BACA,WACA,UACA,sCAGF,0BACE,2BACA,gBACA,kBACA,qKAMA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,oCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gBVxoKM,eU0oKN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,qBAGF,eACE,gBACA,UACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gBVrtKI,cFcY,gBY0sKhB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,0DAEA,aACE,wBAIJ,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,UVpxKE,+EU4xKN,cAGE,gBACA,6BAGF,UVnyKM,iBUqyKJ,yBAGF,oBACE,aACA,mDAGF,UV7yKM,uBUkzKN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,WVl2KE,sFUq2KF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,kBAON,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,mBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WV5/KF,gBU8/KE,gBACA,uBACA,0CAGF,aACE,eACA,cZx/KU,gBY0/KV,gBACA,uBACA,yBAKN,kBZ7gLiB,aY+gLf,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,6BAOV,YACE,eACA,gBACA,wBAGF,QACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cZhlLgB,eYklLhB,eACA,gBACA,kBACA,qBACA,kBACA,yJAEA,aZvlLmB,qWY0lLjB,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,cAOV,kBZjpLqB,sBYopLnB,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,2BAKN,eACE,gBAGF,eVvsLQ,kBY0BN,CACA,sBACA,gBACA,cdRiB,uCcUjB,mBAEA,adZiB,eccf,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,WdlDI,UY4sLR,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cZvsLmB,gBYysLnB,gBAEA,aZttLsB,0BYwtLpB,sBAEA,oBACE,4BAMR,GACE,cACA,eACA,WATM,mBAMR,GACE,cACA,eACA,qEAGF,kBAIE,sBAEE,8BACA,iBAGF,0BACE,kCACA,+BAIA,qDACE,uEACA,+CAGF,sBACE,8BACA,6DAIA,6BACE,6CACA,4EAIF,6BACE,6CACA,+CAOJ,gBAEE,+BAGF,gBACE,6CAEA,0BACE,wDAGF,eACE,6DAGF,iBACE,iBACA,2EAIA,mBACE,UACA,gCACA,WACA,0FAGF,mBACE,UACA,oCACA,eAOV,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBZr1Le,WEDb,eUy1LF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,sBAMJ,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cZt3Lc,CYy3Ld,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,qBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,uCAEA,SACE,kCAKN,aACE,cACA,mBAIJ,cACE,kBACA,MACA,OACA,WACA,YACA,0BACA,cAGF,kBZn8LqB,sBYq8LnB,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kBZz/LqB,sBY2/LnB,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,cAIJ,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBV3iMM,yDU8iMN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBVtjMI,uBU0jMN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UVvlMI,eUylMF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,4BAKN,aZpmMoB,eYsmMlB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WVruMA,gBUuuMA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cZjuMU,gBYmuMV,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,WVlwME,gDUswMJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,aVjxMU,yBUuxMd,cACE,gCAEA,cACE,cZ/wMc,eYixMd,kCAEA,oBACE,cZpxMY,qBYsxMZ,iBACA,gBACA,yCAEA,eACE,WVxyMF,iBUizMN,aZnyMgB,mBYqyMd,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cZ7zMY,gBY+zMZ,uBACA,mBACA,4BAEA,eACE,uBAGF,aZx0Mc,qBY00MZ,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cZj2MiB,0BYq2MnB,aACE,WACA,2CAEA,mCACE,yBACA,0CAGF,wBACE,eAMR,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,uBAGF,oBACE,mBZn5MsB,kBYq5MtB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cZh6Mc,kBYk6Md,+BAGF,aZr6MgB,eYu6Md,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UV57ME,qBU87MA,oHAEA,yBAGE,0BAKN,qBACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UVx9MI,OaFR,eACE,eACA,UAEA,kBACE,kBACA,cAGF,iBACE,MACA,OACA,YACA,qBACA,kBACA,mBACA,sBAEA,kBfLiB,aeUnB,iBACE,aACA,cACA,iBACA,eACA,gBACA,gEAEA,YAEE,gCAGF,aACE,8BAGF,aACE,sBACA,WACA,eACA,Wf3CE,Ue6CF,oBACA,gBb7CE,yBa+CF,kBACA,iBACA,oCAEA,oBf/CoB,wBeoDtB,cACE,sBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBbtFY,8Ea2FZ,gBAGE,gBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,CACA,oBACA,iBACA,gBACA,mBACA,cACA,mBAGF,UACE,iBACA,eAGF,eACE,mBACA,cfnHc,aeuHhB,cACE,uBACA,UACA,SACA,SACA,cf5Hc,0Be8Hd,kBACA,mBAEA,oBACE,sCAGF,qCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,4BACE,gCAEA,YACE,2CAGF,4BACE,aACA,aACA,mBACA,mGAEA,YAEE,+GAEA,oBf9KoB,sDeoLxB,cACE,gBACA,iBACA,YACA,oBACA,cf5KkB,sCe+KlB,gCAGF,YACE,mBACA,4CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WflNI,qBeoNJ,WACA,UACA,oBACA,qXACA,yBACA,kBACA,CACA,yBACA,mDAGF,aACE,cAIJ,afrNkB,qBewNhB,+BACE,6BAEA,6BACE,eC5ON,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,cCtBJ,cACE,qBACA,WjBDM,2BiBIN,qBAEE,iBACA,+BAGF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mBjBjBsB,4BiBqBxB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,cjBfmB,ciBiBnB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,ajBlD0B,mCiBqDxB,aACE,oDAGF,WACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBjBnEwB,uBiBwExB,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gBf5FM,sBe8FN,sGAEA,+BAEE,oBAKF,2BACA,gBfxGM,0Be2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,gCACA,WjBnHI,yBiBqHJ,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,sCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gBfpKI,mBeyKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,cjBlKiB,mDiBqKjB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,YCrMF,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,iDACE,eACA,gBACA,gBACA,qBACA,clBPkB,oBkBUlB,alBnBwB,0BkBqBtB,6EAEA,oBAGE,wCAIJ,alBrBkB,oBkB0BlB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,clBlCmB,qBkBsCrB,iBACE,clBvCmB,uBkB2CrB,eACE,mBACA,kBACA,kBACA,yHAGF,4CAME,mBACA,oBACA,gBACA,clB3DmB,qBkB+DrB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,clBxIc,iCkB4IhB,uBACE,gBACA,gBACA,clB9IY,qDkBkJd,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,kDACA,eACA,iBACA,WhBpNI,iBgBsNJ,kBACA,qEAEA,aAEE,6CAIA,alBhNiB,oCkBqNnB,4CACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,4CACE,eACA,iBACA,gBACA,clBlPc,mBkBoPd,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAEA,UACE,YACA,CACA,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iCAIJ,cACE,mCAEA,aACE,WhBzSA,qBgB2SA,uDAGE,yBACE,2CAKN,aACE,clBxSY,kCkBgTlB,iDAEE,CACA,eACA,eACA,iBACA,mBACA,clBvTgB,sCkB0ThB,alBnUsB,0BkBqUpB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,4CACE,eACA,iBACA,gBACA,mBACA,clB/UmB,wBkBkVnB,iDACE,cACA,eACA,gBACA,cACA,kBAIJ,4CACE,eACA,iBACA,gBACA,mBACA,clBhWmB,kBkBqWnB,clBrWmB,mCkBoWrB,4CACE,CACA,gBACA,gBACA,mBACA,clBzWmB,kBkB8WnB,clB9WmB,kBkBuXnB,clBvXmB,mCkBsXrB,4CACE,CACA,gBACA,gBACA,mBACA,clB3XmB,kBkBgYnB,clBhYmB,mCkBwYrB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,4CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBlBlcmB,kBkBocjB,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAGF,UACE,YACA,0BACA,mDAGF,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA7DF,iBA8DI,mFAIJ,qBAGE,mBlB3jBiB,kBkB6jBjB,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,alB7kBmB,qCkBilBnB,eACE,WhBjmBE,gBgBmmBF,2CAEA,alBxlBc,gDkB2lBZ,alBzlBe,+CkB+lBnB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,ShBvrBI,YgByrBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,gBACA,eACA,clBnsBc,6BkBusBhB,eACE,iBACA,+BAGF,kBlBxtBiB,akB0tBf,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,4CACE,eACA,gBACA,cACA,qCAGF,cACE,clBlvBY,uFkBwvBlB,eACE,cASA,ClBlwBgB,2CkB+vBhB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,clB12BsB,qBkB42BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,clBt2Bc,SmBhBlB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBnBxBmB,UmB6BnB,anB1BwB,0BmB4BtB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBnBjEiB,6BmBmEf,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+CACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,cnB/FkB,gBmBiGlB,0DAEA,UjBhHM,wDiBoHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBnB/JiB,sBmBiKjB,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBnB9KiB,gCmBiLjB,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBnBtMiB,uCmByMf,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,cnBlOY,gBmBoOZ,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,uCAEA,iBACE,sCAGF,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBC7RN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBpBfe,YoBiBf,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SlBxCA,YkB0CE,kBACA,YACA,uCAIJ,aACE,cpBpCY,qBoBsCZ,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,cpB9EY,qBoBgFZ,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UlBzGA,yBkB2GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UlBjIE,yBFWa,gBoByHb,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,apBrMmB,eoBuMjB,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,apBhNmB,eoBkNjB,iBACA,gBACA,mBACA,4BAGF,cACE,gBACA,cpB5Nc,mBoB8Nd,kBACA,gCACA,4BAGF,cACE,cpBlOiB,iBoBoOjB,gBACA,0CAGF,UlBvPI,gBkByPF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WlBvQE,oBkByQF,iBACA,gBACA,gBACA,2BAGF,cACE,iBACA,cpBlQiB,mBoBoQjB,kCAEA,UlBrRE,gBkBuRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,4CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA7SF,aA8SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BpBvUe,YoB8UrB,UACE,SACA,cACA,WACA,sDAKA,apBrVkB,0DoBwVhB,apBjWsB,4DoBsWxB,alBzWc,gBkB2WZ,4DAGF,alB7WU,gBkB+WR,0DAGF,apBtWgB,gBoBwWd,0DAGF,alBrXU,gBkBuXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,eACA,CAII,iNADF,eACE,2BAKN,oBACE,cpBpZc,qBoBsZd,eACA,gBACA,gCACA,iCAEA,UlBxaE,gCkB0aA,oCAGF,apBzaoB,gCoB2alB,CAkBJ,gBAIJ,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,cpBvdmB,CoB4df,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,apBjjBwB,qBoBmjBtB,oBAEA,yBACE,SAKN,aACE,YAGF,kBACE,iBACA,oBAEA,YACE,2BACA,mBACA,aACA,mBpB1kBiB,cAYD,0BoBikBhB,eACA,kBACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,apBzlBgB,oBoB6lBhB,kBACE,0BACA,aACA,cpBjmBgB,gDoBmmBhB,eACA,qBACA,gBACA,kBAGF,cACE,kBACA,cpB1mBc,2BoB8mBhB,iBACE,SACA,WACA,WACA,YACA,kBACA,oCAEA,kBlBnoBY,oCkBuoBZ,kBACE,mCAGF,kBpBjoBiB,sDoBsoBnB,apBloBqB,qBoBsoBnB,gBACA,sBAGF,aACE,0BAGF,apB9oBqB,sBoBkpBrB,alBhqBc,yDkBqqBhB,oBAIE,cpB3pBqB,iGoB8pBrB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBlBrtBc,yBkBytBd,yBACE,wBAGF,yBlB1tBU,wBkB+tBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,apB9tBgB,uBoBouBhB,wBACA,qBAGF,apBvuBgB,coB4uBlB,kBpBzvBqB,kBoB2vBnB,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,cpBnwBc,iBoBqwBd,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,alB7xBM,6BkBoyBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,cpBvyBY,mLoB0yBZ,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,apBrzBU,iBoBuzBR,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,cpBl0BY,WoBy0BpB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,alBn4BY,8CkBw4Bd,qBACE,aACA,WlB34BI,ckBg5BR,iBACE,sBCn5BF,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WnBrCI,6CmBuCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,crBpCgB,kBqBsChB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,arBnEwB,gBqBqEtB,qBACA,UC3EJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,0BAGF,SACE,WACA,0DAGF,iBAEE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,kEACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,kkEC7ZJ,kIACE,CADF,sIACE,qBACA,2GCEQ,SACE,CDHV,iGCEQ,SACE,CDHV,qGCEQ,SACE,CDHV,sGCEQ,SACE,CDHV,4FCEQ,SACE,mJAQZ,aAME,0BACA,mMAEA,oBACE,iOAGF,yBACE,CAKE,0zCAIJ,oBAGE,uUAGF,axB3BqB,qBwB6BnB,oCAIJ,yBACE,6HAEA,oBAGE,4BAIJ,yBACE,qGAEA,oBAGE,eAIJ,axBvDoB,yEwB2DpB,+BACE,0D","file":"skins/vanilla/contrast/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#313543 rgba(0,0,0,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#313543;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#353a49}::-webkit-scrollbar-thumb:active{background:#313543}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(0,0,0,.1)}::-webkit-scrollbar-track:hover{background:#282c37}::-webkit-scrollbar-track:active{background:#282c37}::-webkit-scrollbar-corner{background:transparent}body{font-family:\"mastodon-font-sans-serif\",sans-serif;background:#191b22;font-size:13px;line-height:18px;font-weight:400;color:#fff;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",\"mastodon-font-sans-serif\",sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#282c37}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.player{text-align:center}body.embed{background:#313543;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#1f232b;padding:0}body.error{position:absolute;text-align:center;color:#dde3ec;background:#282c37;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog__illustration img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div,.app-holder>noscript{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.app-holder>noscript{height:100vh}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.error-boundary,.app-holder noscript{flex-direction:column;font-size:16px;font-weight:400;line-height:1.7;color:#e25169;text-align:center}.error-boundary>div,.app-holder noscript>div{max-width:500px}.error-boundary p,.app-holder noscript p{margin-bottom:.85em}.error-boundary p:last-child,.app-holder noscript p:last-child{margin-bottom:0}.error-boundary a,.app-holder noscript a{color:#2b90d9}.error-boundary a:hover,.error-boundary a:focus,.error-boundary a:active,.app-holder noscript a:hover,.app-holder noscript a:focus,.app-holder noscript a:active{text-decoration:none}.error-boundary__footer,.app-holder noscript__footer{color:#c2cede;font-size:13px}.error-boundary__footer a,.app-holder noscript__footer a{color:#c2cede}.error-boundary button,.app-holder noscript button{display:inline;border:0;background:transparent;color:#c2cede;font:inherit;padding:0;margin:0;line-height:inherit;cursor:pointer;outline:0;transition:color 300ms linear;text-decoration:underline}.error-boundary button:hover,.error-boundary button:focus,.error-boundary button:active,.app-holder noscript button:hover,.app-holder noscript button:focus,.app-holder noscript button:active{text-decoration:none}.error-boundary button.copied,.app-holder noscript button.copied{color:#79bd9a;transition:none}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#fff;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#fff;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px}.account-header .name{flex:1 1 auto;color:#ecf0f4;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#fff}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#42485a}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#dde3ec;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#fff}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#4a5266;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#535b72}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#ecf0f4}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#0e1014}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#313543;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #313543;background:#17191f}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#313543;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#fff;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#dde3ec}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#dde3ec;padding:10px;border-right:1px solid #313543;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b90d9;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#ecf0f4}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#fff;font-family:\"mastodon-font-display\",sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #42485a}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#dde3ec}.public-layout .public-account-header__extra__links a{display:inline-block;color:#dde3ec;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#4e79df}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#fff}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#dde3ec}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #393f4f}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #393f4f}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#282c37}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#313543}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#737d99}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#737d99}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{font-weight:700;margin-bottom:8px;color:#dde3ec}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#737d99}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#737d99}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#7f88a2}.compact-header h1{font-size:24px;line-height:28px;color:#dde3ec;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#ecf0f4}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#282c37;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#dde3ec;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#fefefe}.hero-widget__text a{color:#ecf0f4;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;font-weight:700;font-size:14px;color:#dde3ec}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#dde3ec}.box-widget{padding:20px;border-radius:4px;background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #c2cede;text-align:center;color:#dde3ec;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#dde3ec;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;font-weight:700;font-size:14px;color:#dde3ec}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#dde3ec;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2);color:#ecf0f4;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#dde3ec}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#dde3ec;margin-bottom:10px}.page-header{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#fff;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#dde3ec}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#313543}.page-header h1{font-size:24px}}.directory{background:#282c37;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#282c37;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#393f4f}.directory__tag.active>a{background:#2b5fd9;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#dde3ec}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#dde3ec}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small,.directory__tag.active h4 .trends__item__current{color:#fff}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#2b5fd9}.directory__tag .trends__item__current{padding-right:0}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#17191f;border:2px solid #282c37}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;color:#dde3ec;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #393f4f}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#fff}.accounts-table__count small{display:block;color:#dde3ec;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #4a5266}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#dde3ec}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#2b5fd9}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#1f232b;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#fff;border-bottom:1px solid #313543}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #313543}code{font-family:\"mastodon-font-monospace\",monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#fff;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#2b90d9;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#dde3ec}.simple_form .hint a{color:#2b90d9}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#0e1014}.simple_form .hint li{list-style:disc;margin-left:18px}.simple_form ul.hint{margin-bottom:15px}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#dde3ec}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#fff;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .required abbr{text-decoration:none;color:#e87487}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#fff;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#fff;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #c2cede;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#131419;border:1px solid #0a0b0e;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#eaeef3}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#e87487}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#000}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#2b90d9;background:#17191f}.simple_form .input.field_with_errors label{color:#e87487}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#e87487}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#e87487;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#2b5fd9;color:#fff;font-size:18px;line-height:inherit;height:auto;padding:10px;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#416fdd}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#2454c7}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#e3566d}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#db2a47}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#131419 url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #0a0b0e;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#c2cede;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(19, 20, 25, 0), #131419)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(40,44,55,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#fff}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#393f4f;color:#dde3ec;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#dde3ec;text-decoration:none}.flash-message a:hover{color:#fff;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#282c37;color:#fff;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#313543}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#dde3ec;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#2b90d9;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#4ea2df}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#dde3ec}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#ecf0f4;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#ecf0f4;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#fff;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#dde3ec}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#fff;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:\"mastodon-font-monospace\",monospace}.input-copy{background:#131419;border:1px solid #0a0b0e;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:\"mastodon-font-monospace\",monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#1f232b;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#1f232b;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#393f4f}.card__img{height:130px;position:relative;background:#0e1014;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#313543;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#17191f;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#fff;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#000;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{color:#ecf0f4}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#1a1a1a}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2);color:#364861;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#d9e1e8;background-color:rgba(217,225,232,.1);border:1px solid rgba(217,225,232,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#e87487;background-color:rgba(232,116,135,.1);border-color:rgba(232,116,135,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #42485a;border-bottom:1px solid #42485a;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #42485a}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#ecf0f4;background:rgba(23,25,31,.5)}.account__header__fields dd{flex:1 1 auto;color:#dde3ec}.account__header__fields a{color:#2b90d9;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#dde3ec}.pending-account__header a{color:#d9e1e8;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#fff;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}.activity-stream--under-tabs{border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#282c37}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#393f4f}.button.logo-button{flex:0 auto;font-size:14px;background:#2b5fd9;color:#fff;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#fff}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#5680e1}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.link-button{display:block;font-size:15px;line-height:20px;color:#2b5fd9;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#2b5fd9;border:10px none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:15px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#5680e1;transition:all 200ms ease-out}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled,.button.disabled{background-color:#9baec8;cursor:default}.button::-moz-focus-inner{border:0}.button::-moz-focus-inner,.button:focus,.button:active{outline:0 !important}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#000;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#a8b9cf}.button.button-alternative-2{background:#606984}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#687390}.button.button-secondary{color:#dde3ec;background:transparent;padding:3px 15px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#a8b9cf;color:#eaeef3}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.icon-button{display:inline-block;padding:0;color:#8d9ac2;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#a4afce;background-color:rgba(141,154,194,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(141,154,194,.3)}.icon-button.disabled{color:#6274ab;background-color:transparent;cursor:default}.icon-button.active{color:#2b90d9}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#1b1e25}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#0c0d11;background-color:rgba(27,30,37,.15)}.icon-button.inverted:focus{background-color:rgba(27,30,37,.3)}.icon-button.inverted.disabled{color:#2a2e3a;background-color:transparent}.icon-button.inverted.active{color:#2b90d9}.icon-button.inverted.active.disabled{color:#63ade3}.icon-button.overlayed{box-sizing:content-box;background:rgba(0,0,0,.6);color:rgba(255,255,255,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(0,0,0,.9)}.text-icon-button{color:#1b1e25;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#0c0d11;background-color:rgba(27,30,37,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(27,30,37,.3)}.text-icon-button.disabled{color:#464d60;background-color:transparent;cursor:default}.text-icon-button.active{color:#2b90d9}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.compose-form{padding:10px}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#2b90d9}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#2b90d9;background:#2b90d9}.compose-form .compose-form__warning{color:#000;margin-bottom:10px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.compose-form .compose-form__warning strong{color:#000;font-weight:500}.compose-form .compose-form__warning strong:lang(ja){font-weight:700}.compose-form .compose-form__warning strong:lang(ko){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-CN){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-HK){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-TW){font-weight:700}.compose-form .compose-form__warning a{color:#1b1e25;font-weight:500;text-decoration:underline}.compose-form .compose-form__warning a:hover,.compose-form .compose-form__warning a:active,.compose-form .compose-form__warning a:focus{text-decoration:none}.compose-form .emoji-picker-dropdown{position:absolute;top:5px;right:5px}.compose-form .compose-form__autosuggest-wrapper{position:relative}.compose-form .autosuggest-textarea,.compose-form .autosuggest-input,.compose-form .spoiler-input{position:relative;width:100%}.compose-form .spoiler-input{height:0;transform-origin:bottom;opacity:0}.compose-form .spoiler-input.spoiler-input--visible{height:36px;margin-bottom:11px;opacity:1}.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0}.compose-form .autosuggest-textarea__textarea::placeholder,.compose-form .spoiler-input__input::placeholder{color:#c2cede}.compose-form .autosuggest-textarea__textarea:focus,.compose-form .spoiler-input__input:focus{outline:0}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{font-size:16px}}.compose-form .spoiler-input__input{border-radius:4px}.compose-form .autosuggest-textarea__textarea{min-height:100px;border-radius:4px 4px 0 0;padding-bottom:0;padding-right:32px;resize:none;scrollbar-color:initial}.compose-form .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.compose-form .autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.compose-form .autosuggest-textarea__suggestions{box-sizing:border-box;display:none;position:absolute;top:100%;width:100%;z-index:99;box-shadow:4px 4px 6px rgba(0,0,0,.4);background:#d9e1e8;border-radius:0 0 4px 4px;color:#000;font-size:14px;padding:6px}.compose-form .autosuggest-textarea__suggestions.autosuggest-textarea__suggestions--visible{display:block}.compose-form .autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.compose-form .autosuggest-textarea__suggestions__item:hover,.compose-form .autosuggest-textarea__suggestions__item:focus,.compose-form .autosuggest-textarea__suggestions__item:active,.compose-form .autosuggest-textarea__suggestions__item.selected{background:#b9c8d5}.compose-form .autosuggest-account,.compose-form .autosuggest-emoji,.compose-form .autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.compose-form .autosuggest-hashtag{justify-content:space-between}.compose-form .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-hashtag strong{font-weight:500}.compose-form .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-account-icon,.compose-form .autosuggest-emoji img{display:block;margin-right:8px;width:16px;height:16px}.compose-form .autosuggest-account .display-name__account{color:#1b1e25}.compose-form .compose-form__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.compose-form .compose-form__modifiers .compose-form__upload-wrapper{overflow:hidden}.compose-form .compose-form__modifiers .compose-form__uploads-wrapper{display:flex;flex-direction:row;padding:5px;flex-wrap:wrap}.compose-form .compose-form__modifiers .compose-form__upload{flex:1 1 0;min-width:40%;margin:5px}.compose-form .compose-form__modifiers .compose-form__upload__actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button{flex:0 1 auto;color:#ecf0f4;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:hover,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:focus,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:active{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload__actions.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-description{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);padding:10px;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload-description textarea{background:transparent;color:#ecf0f4;border:0;padding:0;margin:0;width:100%;font-family:inherit;font-size:14px;font-weight:500}.compose-form .compose-form__modifiers .compose-form__upload-description textarea:focus{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload-description textarea::placeholder{opacity:.75;color:#ecf0f4}.compose-form .compose-form__modifiers .compose-form__upload-description.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-thumbnail{border-radius:4px;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;height:140px;width:100%;overflow:hidden}.compose-form .compose-form__buttons-wrapper{padding:10px;background:#ebebeb;border-radius:0 0 4px 4px;display:flex;justify-content:space-between;flex:0 0 auto}.compose-form .compose-form__buttons-wrapper .compose-form__buttons{display:flex}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__upload-button-icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button{display:none}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button.compose-form__sensitive-button--visible{display:block}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button .compose-form__sensitive-button__icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .icon-button,.compose-form .compose-form__buttons-wrapper .text-icon-button{box-sizing:content-box;padding:0 3px}.compose-form .compose-form__buttons-wrapper .character-counter__wrapper{align-self:center;margin-right:4px}.compose-form .compose-form__publish{display:flex;justify-content:flex-end;min-width:0;flex:0 0 auto}.compose-form .compose-form__publish .compose-form__publish-button-wrapper{overflow:hidden;padding-top:10px}.character-counter{cursor:default;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:600;color:#1b1e25}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .spoiler-input{transition:height .4s ease,opacity .4s ease}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.reply-indicator{border-radius:4px;margin-bottom:10px;background:#9baec8;padding:10px;min-height:23px;overflow-y:auto;flex:0 2 auto}.reply-indicator__header{margin-bottom:5px;overflow:hidden}.reply-indicator__cancel{float:right;line-height:24px}.reply-indicator__display-name{color:#000;display:block;max-width:100%;line-height:24px;overflow:hidden;padding-right:25px;text-decoration:none}.reply-indicator__display-avatar{float:left;margin-right:5px}.status__content--with-action{cursor:pointer}.status__content,.reply-indicator__content{position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:hidden;text-overflow:ellipsis;padding-top:2px;color:#fff}.status__content:focus,.reply-indicator__content:focus{outline:0}.status__content.status__content--with-spoiler,.reply-indicator__content.status__content--with-spoiler{white-space:normal}.status__content.status__content--with-spoiler .status__content__text,.reply-indicator__content.status__content--with-spoiler .status__content__text{white-space:pre-wrap}.status__content .emojione,.reply-indicator__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img,.reply-indicator__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.reply-indicator__content p{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.reply-indicator__content p:last-child{margin-bottom:0}.status__content a,.reply-indicator__content a{color:#d8a070;text-decoration:none}.status__content a:hover,.reply-indicator__content a:hover{text-decoration:underline}.status__content a:hover .fa,.reply-indicator__content a:hover .fa{color:#dae1ea}.status__content a.mention:hover,.reply-indicator__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span,.reply-indicator__content a.mention:hover span{text-decoration:underline}.status__content a .fa,.reply-indicator__content a .fa{color:#c2cede}.status__content a.unhandled-link,.reply-indicator__content a.unhandled-link{color:#4e79df}.status__content .status__content__spoiler-link,.reply-indicator__content .status__content__spoiler-link{background:#8d9ac2}.status__content .status__content__spoiler-link:hover,.reply-indicator__content .status__content__spoiler-link:hover{background:#a4afce;text-decoration:none}.status__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner{border:0}.status__content .status__content__spoiler-link::-moz-focus-inner,.status__content .status__content__spoiler-link:focus,.status__content .status__content__spoiler-link:active,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link:focus,.reply-indicator__content .status__content__spoiler-link:active{outline:0 !important}.status__content .status__content__text,.reply-indicator__content .status__content__text{display:none}.status__content .status__content__text.status__content__text--visible,.reply-indicator__content .status__content__text.status__content__text--visible{display:block}.status__content.status__content--collapsed{max-height:300px}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#4e79df;border:0;background:transparent;padding:0;padding-top:8px}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:transparent;border:0;color:#000;font-weight:700;font-size:12px;padding:0 6px;line-height:20px;cursor:pointer;vertical-align:middle}.status__wrapper--filtered{color:#c2cede;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #393f4f}.status__prepend-icon-wrapper{left:-26px;position:absolute}.focusable:focus{outline:0;background:#313543}.focusable:focus .status.status-direct{background:#42485a}.focusable:focus .status.status-direct.muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#393f4f}.status{padding:8px 10px;padding-left:68px;position:relative;min-height:54px;border-bottom:1px solid #393f4f;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:26px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#393f4f;border-bottom-color:#42485a}.status.light .status__relative-time{color:#364861}.status.light .status__display-name{color:#000}.status.light .display-name strong{color:#000}.status.light .display-name span{color:#364861}.status.light .status__content{color:#000}.status.light .status__content a{color:#2b90d9}.status.light .status__content a.status__content__spoiler-link{color:#fff;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#b5c3d6}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#b8c0d9}.status__relative-time,.notification__relative_time{color:#c2cede;float:right;font-size:14px}.status__display-name{color:#c2cede}.status__info .status__display-name{display:block;max-width:100%;padding-right:25px}.status__info{font-size:15px}.status-check-box{border-bottom:1px solid #d9e1e8;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-left:68px;color:#c2cede;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#c2cede}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#8d9ac2}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#313543;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .status__content .status__content__spoiler-link{line-height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#c2cede;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.reply-indicator__content{color:#000;font-size:14px}.reply-indicator__content a{color:#1b1e25}.domain{padding:10px;border-bottom:1px solid #393f4f}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#fff;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}.account{padding:10px;border-bottom:1px solid #393f4f}.account.compact{padding:0;border-bottom:0}.account.compact .account__avatar-wrapper{margin-left:0}.account .account__display-name{flex:1 1 auto;display:block;color:#dde3ec;overflow:hidden;text-decoration:none;font-size:14px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;position:relative}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;border-radius:50%;overflow:hidden;position:relative;cursor:default}.account__avatar-composite>div{float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}a .account__avatar{cursor:pointer}.account__avatar-overlay{width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__disclaimer{padding:10px;border-top:1px solid #393f4f;color:#c2cede}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-dropdown{padding:10px}.account__action-bar-dropdown .icon-button{vertical-align:middle}.account__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__right{left:6px;right:initial}.account__action-bar-dropdown .dropdown--active::after{bottom:initial;margin-left:11px;margin-top:-7px;right:initial}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-right:1px solid #393f4f;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab.active{border-bottom:4px solid #2b5fd9}.account__action-bar__tab>span{display:block;font-size:12px;color:#dde3ec}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#fff}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#fff}.muted .emojione{opacity:.5}.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,a.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#ecf0f4;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#fff}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{height:48px;left:10px;position:absolute;top:10px;width:48px}.status__expand{width:68px;position:absolute;left:0;top:0;height:100%;cursor:pointer}.muted .status__content,.muted .status__content p,.muted .status__content a{color:#c2cede}.muted .status__display-name strong{color:#c2cede}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#606984;color:#000}.muted a.status__content__spoiler-link:hover{background:#707b97;text-decoration:none}.notification__message{margin:0 10px 0 68px;padding:8px 0 0;cursor:default;color:#dde3ec;font-size:15px;line-height:22px;position:relative}.notification__message .fa{color:#2b90d9}.notification__message>span{display:inline;overflow:hidden;text-overflow:ellipsis}.notification__favourite-icon-wrapper{left:-26px;position:absolute}.notification__favourite-icon-wrapper .star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#fff;text-decoration:underline}.notification__relative_time{float:right}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.navigation-bar{padding:10px;display:flex;align-items:center;flex-shrink:0;cursor:default;color:#dde3ec}.navigation-bar strong{color:#ecf0f4}.navigation-bar a{color:inherit}.navigation-bar .permalink{text-decoration:none}.navigation-bar .navigation-bar__actions{position:relative}.navigation-bar .navigation-bar__actions .icon-button.close{position:absolute;pointer-events:none;transform:scale(0, 1) translate(-100%, 0);opacity:0}.navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:auto;transform:scale(1, 1) translate(0, 0);opacity:1}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;line-height:20px;margin-top:-1px;overflow:hidden}.navigation-bar__profile-account{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile-edit{color:inherit;text-decoration:none}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #c0cdd9;margin:5px 7px 6px;height:0}.dropdown-menu{background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);z-index:9999}.dropdown-menu ul{list-style:none}.dropdown-menu.left{transform-origin:100% 50%}.dropdown-menu.top{transform-origin:50% 100%}.dropdown-menu.bottom{transform-origin:50% 0}.dropdown-menu.right{transform-origin:0 50%}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#d9e1e8}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#d9e1e8}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#2b5fd9;color:#ecf0f4;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#2b5fd9;color:#ecf0f4}.dropdown__icon{vertical-align:middle}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area.unscrollable{overflow-x:hidden}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#17191f;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .drawer,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:350px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#282c37;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.drawer{width:330px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden}.drawer__tab{display:block;flex:1 1 auto;padding:15px 5px 13px;color:#dde3ec;text-decoration:none;text-align:center;font-size:16px;border-bottom:2px solid transparent}.column,.drawer{flex:1 1 auto;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#393f4f;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#fff;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #393f4f;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.tabs-bar__link:hover,.tabs-bar__link:focus,.tabs-bar__link:active{background:#464d60;border-bottom-color:#464d60}}.tabs-bar__link.active{border-bottom:2px solid #2b90d9;color:#2b90d9}.tabs-bar__link span{margin-left:5px;display:none}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;height:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px 15px 15px 78px;min-height:50px}.columns-area--mobile .status__avatar{left:15px;top:17px}.columns-area--mobile .status__content{padding-top:5px}.columns-area--mobile .status__prepend{margin-left:78px;padding-top:15px}.columns-area--mobile .status__prepend-icon-wrapper{left:-32px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{margin-left:78px;padding-top:15px}.columns-area--mobile .notification__favourite-icon-wrapper{left:-32px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}.columns-area--mobile .notification .account__avatar-wrapper{margin-left:17px;margin-right:15px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#2558d0;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#4976de}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.getting-started__trends,.search{margin-bottom:10px}.getting-started__panel{margin:10px 0}.column,.drawer{min-width:330px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#2b5fd9;border:2px solid #393f4f;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#fff}.column-link--transparent .icon-with-badge__badge{border-color:#17191f}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .navigation-bar{padding-top:20px;padding-bottom:20px;flex:0 1 48px;min-height:20px}.compose-panel .flex-spacer{background:transparent}.compose-panel .compose-form{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px;padding-bottom:71px;margin-bottom:-71px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #313543;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#444b5d;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%;border-radius:2px}.drawer__inner.darker{background:#282c37}.drawer__inner__mastodon{background:#444b5d url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:100%;height:100%;pointer-events:none;user-drag:none;user-select:none}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#444b5d;font-size:13px;text-align:left}.drawer__header{flex:0 0 auto;font-size:16px;background:#393f4f;margin-bottom:10px;display:flex;flex-direction:row;border-radius:2px}.drawer__header a{transition:background 100ms ease-in}.drawer__header a:hover{background:#2e3340;transition:background 200ms ease-out}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.column-back-button{box-sizing:border-box;width:100%;background:#313543;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;line-height:inherit;border:0;text-align:unset;padding:15px;margin:0;z-index:3;outline:0}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#313543;border:0;font-family:inherit;color:#2b90d9;cursor:pointer;white-space:nowrap;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#282c37;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#131419}.react-toggle--checked .react-toggle-track{background-color:#2b5fd9}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#5680e1}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #282c37;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#2b5fd9}.column-link{background:#393f4f;color:#fff;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#404657}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#d9e1e8}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#fff}.column-link--transparent.active{color:#2b5fd9}.column-link__icon{display:inline-block;margin-right:5px}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#282c37;padding:4px 8px;margin:-6px 10px}.column-subheading{background:#282c37;color:#c2cede;padding:8px 20px;font-size:13px;font-weight:500;cursor:default}.getting-started__wrapper,.getting-started,.flex-spacer{background:#282c37}.flex-spacer{flex:1 1 auto}.getting-started{color:#c2cede;overflow:auto;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.getting-started__wrapper,.getting-started__panel,.getting-started__footer{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex-grow:0}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#c2cede;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#dde3ec}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__wrapper,.getting-started__footer{color:#c2cede}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:13px;color:#dde3ec;padding:10px;font-weight:500;border-bottom:1px solid #393f4f}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#dde3ec}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#393f4f;border:1px solid #1f232b}.setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0;border-radius:4px}.setting-text:focus{outline:0}@media screen and (max-width: 600px){.setting-text{font-size:16px}}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#8d9ac2;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#2b90d9}.status-card{display:flex;font-size:14px;border:1px solid #393f4f;border-radius:4px;color:#c2cede;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#ecf0f4;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}a.status-card{cursor:pointer}a.status-card:hover{background:#393f4f}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#dde3ec;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#dde3ec}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#393f4f;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#313543}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#313543}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.load-more{display:block;color:#c2cede;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#2c313d}.load-gap{border-bottom:1px solid #393f4f}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#c2cede;background:#282c37;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#c2cede}.regeneration-indicator__label span{font-size:15px;font-weight:400}.column-header__wrapper{position:relative;flex:0 0 auto}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;top:35px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(43, 95, 217, 0.23) 0%, rgba(43, 95, 217, 0) 60%)}.column-header{display:flex;font-size:16px;background:#313543;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden;border-top-left-radius:2px;border-top-right-radius:2px}.column-header>button{margin:0;border:0;padding:15px 0 15px 15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#2b90d9}.column-header.active{box-shadow:0 1px 0 rgba(43,144,217,.3)}.column-header.active .column-header__icon{color:#2b90d9;text-shadow:0 0 10px rgba(43,144,217,.4)}.column-header:focus,.column-header:active{outline:0}.column-header__buttons{height:48px;display:flex}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button{background:#313543;border:0;color:#dde3ec;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover{color:#f4f6f9}.column-header__button.active{color:#fff;background:#393f4f}.column-header__button.active:hover{color:#fff;background:#393f4f}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#dde3ec;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #42485a;margin:10px 0}.column-header__collapsible-inner{background:#393f4f;padding:15px}.column-header__setting-btn:hover{color:#dde3ec;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.column-header__icon{display:inline-block;margin-right:5px}.loading-indicator{color:#c2cede;font-size:13px;font-weight:400;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #606984;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#606984}29%{background-color:#606984}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.video-error-cover{align-items:center;background:#000;color:#fff;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#000;color:#dde3ec;border:0;padding:0;width:100%;height:100%;border-radius:4px;appearance:none}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{padding:0;color:#f7f9fb}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:700}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:block;left:4px;top:4px;width:auto;height:auto}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(0,0,0,.5);border-radius:8px;padding:8px 12px;color:#fff;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(0,0,0,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(0,0,0,.5)}.modal-container--preloader{background:#393f4f}.account--panel{background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#393f4f;padding:15px}.column-settings__section{color:#dde3ec;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#282c37;color:#dde3ec;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#eaeef3}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#313543}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#c2cede;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#393f4f}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#42485a;color:#eaeef3}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#dde3ec}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#c2cede}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#d0d9e5}.column-settings__hashtags .column-select__indicator-separator{background-color:#393f4f}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#364861;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#d9e1e8}.column-settings__hashtags .column-select__menu h4{color:#364861;font-size:14px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#000}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#000;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#b9c8d5}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#fff;margin-bottom:4px;display:block;vertical-align:top;background-color:#000;font-size:12px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.setting-toggle{display:block;line-height:24px}.setting-toggle__label{color:#dde3ec;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.empty-column-indicator,.error-column{color:#c2cede;background:#282c37;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column{contain:strict}}.empty-column-indicator>span,.error-column>span{max-width:400px}.empty-column-indicator a,.error-column a{color:#2b90d9;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover{text-decoration:underline}.error-column{flex-direction:column}@keyframes heartbeat{from{transform:scale(1);animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.no-reduce-motion .pulse-loading{transform-origin:center center;animation:heartbeat 1.5s ease-in-out infinite both}@keyframes shake-bottom{0%,100%{transform:rotate(0deg);transform-origin:50% 100%}10%{transform:rotate(2deg)}20%,40%,60%{transform:rotate(-4deg)}30%,50%,70%{transform:rotate(4deg)}80%{transform:rotate(-2deg)}90%{transform:rotate(2deg)}}.no-reduce-motion .shake-bottom{transform-origin:50% 100%;animation:shake-bottom .8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(217,225,232,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.upload-area{align-items:center;background:rgba(0,0,0,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#282c37;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#ecf0f4;font-size:18px;font-weight:500;border:2px dashed #606984;border-radius:4px}.upload-progress{padding:10px;color:#1b1e25;overflow:hidden;display:flex}.upload-progress .fa{font-size:34px;margin-right:10px}.upload-progress span{font-size:13px;font-weight:500;display:block}.upload-progess__message{flex:1 1 auto}.upload-progress__backdrop{width:100%;height:6px;border-radius:6px;background:#606984;position:relative;margin-top:5px}.upload-progress__tracker{position:absolute;left:0;top:0;height:6px;background:#2b5fd9;border-radius:6px}.emoji-button{display:block;font-size:24px;line-height:24px;margin-left:2px;width:24px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px;margin-top:2px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.dropdown--active .emoji-button img{opacity:1;filter:none}.privacy-dropdown__dropdown{position:absolute;background:#fff;box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:4px;margin-left:40px;overflow:hidden}.privacy-dropdown__dropdown.top{transform-origin:50% 100%}.privacy-dropdown__dropdown.bottom{transform-origin:50% 0}.privacy-dropdown__option{color:#000;padding:10px;cursor:pointer;display:flex}.privacy-dropdown__option:hover,.privacy-dropdown__option.active{background:#2b5fd9;color:#fff;outline:0}.privacy-dropdown__option:hover .privacy-dropdown__option__content,.privacy-dropdown__option.active .privacy-dropdown__option__content{color:#fff}.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,.privacy-dropdown__option.active .privacy-dropdown__option__content strong{color:#fff}.privacy-dropdown__option.active:hover{background:#3c6cdc}.privacy-dropdown__option__icon{display:flex;align-items:center;justify-content:center;margin-right:10px}.privacy-dropdown__option__content{flex:1 1 auto;color:#1b1e25}.privacy-dropdown__option__content strong{font-weight:500;display:block;color:#000}.privacy-dropdown__option__content strong:lang(ja){font-weight:700}.privacy-dropdown__option__content strong:lang(ko){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-CN){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-HK){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-TW){font-weight:700}.privacy-dropdown.active .privacy-dropdown__value{background:#fff;border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1)}.privacy-dropdown.active .privacy-dropdown__value .icon-button{transition:none}.privacy-dropdown.active .privacy-dropdown__value.active{background:#2b5fd9}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#fff}.privacy-dropdown.active.top .privacy-dropdown__value{border-radius:0 0 4px 4px}.privacy-dropdown.active .privacy-dropdown__dropdown{display:block;box-shadow:2px 4px 6px rgba(0,0,0,.1)}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#282c37;color:#dde3ec;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#eaeef3}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#313543}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:transform,opacity;font-size:18px;width:18px;height:18px;color:#ecf0f4;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(90deg)}.search__icon .fa-search.active{pointer-events:none;transform:rotate(0deg)}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#8d9ac2;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#a4afce}.search-results__header{color:#c2cede;background:#2c313d;padding:15px;font-weight:500;font-size:16px;cursor:default}.search-results__header .fa{display:inline-block;margin-right:5px}.search-results__section{margin-bottom:5px}.search-results__section h5{background:#1f232b;border-bottom:1px solid #393f4f;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#c2cede}.search-results__section h5 .fa{display:inline-block;margin-right:5px}.search-results__section .account:last-child,.search-results__section>div:last-child .status{border-bottom:0}.search-results__hashtag{display:block;padding:10px;color:#ecf0f4;text-decoration:none}.search-results__hashtag:hover,.search-results__hashtag:active,.search-results__hashtag:focus{color:#f9fafb;text-decoration:underline}.search-results__info{padding:20px;color:#dde3ec;text-align:center}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(0,0,0,.5);box-sizing:border-box;border:0;color:#fff;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#d9e1e8}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#2b90d9}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.onboarding-modal,.error-modal,.embed-modal{background:#d9e1e8;color:#000;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#c0cdd9;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#1b1e25;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#131419;background-color:#a6b9c9}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#000}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#0a0a0a}.error-modal__footer{justify-content:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#000;margin-bottom:5px;font-size:13px}.display-case__case{background:#282c37;color:#ecf0f4;font-weight:500;padding:10px;border-radius:4px}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#f2f5f7;color:#000;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:block;max-width:100%;padding-right:25px}.boost-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:28px;left:10px;position:absolute;top:10px;width:48px}.boost-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#fff}.actions-modal .status{background:#fff;border-bottom-color:#d9e1e8;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#d9e1e8}.boost-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#d9e1e8;padding:10px;line-height:36px}.boost-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#1b1e25;padding-right:10px}.boost-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header{font-size:15px}.boost-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #d9e1e8}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#2b90d9}.report-modal__statuses .status__content,.report-modal__statuses .status__content p,.focal-point-modal__content .status__content,.focal-point-modal__content .status__content p{color:#000}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #d9e1e8;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #d9e1e8;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #c0cdd9}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #d9e1e8;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#000;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#000;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#000;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#2b5fd9;color:#fff}.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#1b1e25;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#131419;background-color:transparent}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#000;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.loading-bar{background-color:#2b90d9;height:3px;position:absolute;top:0;left:0;z-index:9999}.media-gallery__gifv__label{display:block;position:absolute;color:#fff;background:rgba(0,0,0,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv.autoplay .media-gallery__gifv__label{display:none}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{margin-top:32px}.media-gallery__audio audio{width:100%}.attachment-list{display:flex;font-size:14px;border:1px solid #393f4f;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#c2cede;padding:8px 18px;cursor:default;border-right:1px solid #393f4f;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#c2cede;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#c2cede}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%}.media-gallery__item{border:0;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#ecf0f4;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%}.media-gallery__item-thumbnail img{object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#000}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;object-fit:cover;position:relative;top:50%;transform:translateY(-50%);width:100%;z-index:1}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#17191f;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #313543;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(78,121,223,.5)}.audio-player__wave-placeholder{background-color:#4a5266}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#17191f;border-top:1px solid #313543;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.video-player video{max-width:100vw;max-height:80vh;z-index:1}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#dde3ec;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#f4f6f9}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#4e79df}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#4e79df;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#4e79df}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#4e79df;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#0e1014;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#313543;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#17191f;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#282c37;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #393f4f;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:0;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#1f232b;border-bottom:1px solid #393f4f;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#1f232b;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#dde3ec;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#ecf0f4}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #393f4f}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #282c37}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#242731;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #191b22}.filter-form{background:#282c37}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#4e79df;background:#4e79df}::-webkit-scrollbar-thumb{border-radius:0}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#364861;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{color:#364861;font-size:14px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#000}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#ecf0f4;max-width:400px}noscript div a{color:#2b90d9;text-decoration:underline}noscript div a:hover{text-decoration:none}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}@media screen and (max-width: 630px)and (max-height: 400px){.tabs-bar,.search{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar{will-change:padding-bottom;transition:padding-bottom 400ms 100ms}.navigation-bar>a:first-child{will-change:margin-top,margin-left,margin-right,width;transition:margin-top 400ms 100ms,margin-left 400ms 500ms,margin-right 400ms 500ms}.navigation-bar>.navigation-bar__profile-edit{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar .navigation-bar__actions>.icon-button.close{will-change:opacity transform;transition:opacity 200ms 100ms,transform 400ms 100ms}.navigation-bar .navigation-bar__actions>.compose__action-bar .icon-button{will-change:opacity transform;transition:opacity 200ms 300ms,transform 400ms 100ms}.is-composing .tabs-bar,.is-composing .search{margin-top:-50px}.is-composing .navigation-bar{padding-bottom:0}.is-composing .navigation-bar>a:first-child{margin:-100px 10px 0 -50px}.is-composing .navigation-bar .navigation-bar__profile{padding-top:2px}.is-composing .navigation-bar .navigation-bar__profile-edit{position:absolute;margin-top:-60px}.is-composing .navigation-bar .navigation-bar__actions .icon-button.close{pointer-events:auto;opacity:1;transform:scale(1, 1) translate(0, 0);bottom:5px}.is-composing .navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:none;opacity:0;transform:scale(0, 1) translate(100%, 0)}}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#282c37;color:#fff;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#313543}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f}.account__moved-note__message{position:relative;margin-left:58px;color:#c2cede;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.column-inline-form{padding:15px;padding-right:0;display:flex;justify-content:flex-start;align-items:center;background:#313543}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 10px}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.list-editor{background:#282c37;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#444b5d;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#282c37;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#444b5d}.list-adder__lists{background:#444b5d;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #393f4f}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#fff;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.account__header__content{color:#dde3ec;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#1f232b}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#313543;padding:5px;border-bottom:1px solid #42485a}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#17191f;border:2px solid #313543}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #42485a;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#fff}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #42485a}.account__header__bio .account__header__fields a{color:#4e79df}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#dde3ec;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#dde3ec;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#fff}.trends__header{color:#c2cede;background:#2c313d;border-bottom:1px solid #1f232b;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #393f4f}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#c2cede;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#dde3ec;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#ecf0f4}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(43,144,217,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#459ede !important}.conversation{display:flex;border-bottom:1px solid #393f4f;padding:5px;padding-bottom:0}.conversation:focus{background:#2c313d;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative}.conversation__unread{display:inline-block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#dde3ec;padding-left:15px}.conversation__content__names{color:#dde3ec;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#fff;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content a{word-break:break-word}.conversation--unread{background:#2c313d}.conversation--unread:focus{background:#313543}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#fff}.poll{margin-top:16px;font-size:14px}.poll li{margin-bottom:10px;position:relative}.poll__chart{position:absolute;top:0;left:0;height:100%;display:inline-block;border-radius:4px;background:#6d89af}.poll__chart.leading{background:#2b5fd9}.poll__text{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__text input[type=radio],.poll__text input[type=checkbox]{display:none}.poll__text .autossugest-input{flex:1 1 auto}.poll__text input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#000;outline:0;font-family:inherit;background:#fff;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px}.poll__text input[type=text]:focus{border-color:#2b90d9}.poll__text.selectable{cursor:pointer}.poll__text.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-width:4px;background:none}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:52px;font-weight:700;padding:0 10px;padding-left:8px;text-align:right;margin-top:auto;margin-bottom:auto;flex:0 0 52px}.poll__vote__mark{float:left;line-height:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#c2cede}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#c2cede;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(194,206,222,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #ebebeb}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #ebebeb;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#2b90d9}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#8d9ac2;border-color:#8d9ac2;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__text{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#000;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#dbdbdb}.muted .poll{color:#c2cede}.muted .poll__chart{background:rgba(109,137,175,.2)}.muted .poll__chart.leading{background:rgba(43,95,217,.2)}.modal-layout{background:#282c37 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.emoji-mart{font-size:13px;display:inline-block;color:#000}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #c0cdd9}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#d9e1e8}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#1b1e25;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#131419}.emoji-mart-anchor-selected{color:#2b90d9}.emoji-mart-anchor-selected:hover{color:#2485cb}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:-1px}.emoji-mart-anchor-bar{position:absolute;bottom:-5px;left:0;width:100%;height:4px;background-color:#2b90d9}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(217,225,232,.3);color:#000;border:1px solid #d9e1e8;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(217,225,232,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#364861}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#dde3ec}.rich-formatting a{color:#2b90d9;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#dde3ec}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#ecf0f4}.rich-formatting em{font-style:italic;color:#ecf0f4}.rich-formatting code{font-size:.85em;background:#17191f;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:\"mastodon-font-display\",sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#ecf0f4}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #313543;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #313543;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#dde3ec}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#c2cede}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#1f232b;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;line-height:28px;color:#fff;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#ecf0f4}.information-board__section strong{font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#17191f;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#dde3ec;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #313543;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#bcc9da}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#fff;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#dde3ec}.landing-page p,.landing-page li{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#dde3ec}.landing-page p a,.landing-page li a{color:#2b90d9;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#fefefe}.landing-page h1{font-family:\"mastodon-font-display\",sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h1 small{font-family:\"mastodon-font-sans-serif\",sans-serif;display:block;font-size:18px;font-weight:400;color:#fefefe}.landing-page h2{font-family:\"mastodon-font-display\",sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h3{font-family:\"mastodon-font-display\",sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h4{font-family:\"mastodon-font-display\",sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h5{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h6{font-family:\"mastodon-font-display\",sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(96,105,132,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#282c37;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#fefefe}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#282c37;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#ecf0f4}.landing-page__short-description h1{font-weight:500;color:#fff;margin-bottom:0}.landing-page__short-description h1 small{color:#dde3ec}.landing-page__short-description h1 small span{color:#ecf0f4}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#fff;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;font-weight:700;font-size:14px;color:#dde3ec}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#282c37;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:\"mastodon-font-display\",sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#dde3ec}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#dde3ec}.landing .simple_form p.lead{color:#dde3ec;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #393f4f}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#c2cede}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #282c37;text-align:left;background:#1f232b}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #282c37;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#282c37}.table a{color:#2b90d9;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#282c37;border-top:1px solid #17191f;border-bottom:1px solid #17191f}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #17191f}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #17191f}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:\"mastodon-font-monospace\",monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#dde3ec;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#fff}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #17191f;background:#282c37;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #17191f;border-top:0;background:#282c37}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #17191f;border-top:0;background:#1f232b}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #17191f}}.batch-table__row:hover{background:#242731}.batch-table__row:nth-child(even){background:#282c37}.batch-table__row:nth-child(even):hover{background:#2c313d}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#dde3ec;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content summary{display:list-item}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #17191f;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #17191f}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#282c37;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#393f4f;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#fff;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#dde3ec;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#42485a}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#dde3ec;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#fff;background-color:#1d2028;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#242731;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#1f232b;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#fff;background-color:#2b5fd9;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#416fdd}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #393f4f;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#ecf0f4;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#ecf0f4;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{font-size:14px;font-weight:700;color:#dde3ec;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #393f4f}.admin-wrapper .content h6{font-size:16px;color:#ecf0f4;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#fff;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#fff;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:0}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#ecf0f4;margin-bottom:20px}.admin-wrapper .content>p strong{color:#fff;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(96,105,132,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #313543;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#2b5fd9}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#dde3ec}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#2b90d9}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#c2cede;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;font-size:13px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset a{display:inline-block;color:#dde3ec;text-decoration:none;font-size:13px;font-weight:500;border-bottom:2px solid #282c37}.filters .filter-subset a:hover{color:#fff;border-bottom:2px solid #333846}.filters .filter-subset a.selected{color:#2b90d9;border-bottom:2px solid #2b5fd9}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#ecf0f4}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#2b90d9;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{margin-bottom:20px;line-height:20px}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;padding:10px;background:#282c37;color:#dde3ec;border-radius:4px 4px 0 0;font-size:14px;position:relative}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#c2cede}.log-entry__extras{background:#353a49;border-radius:0 0 4px 4px;padding:10px;color:#dde3ec;font-family:\"mastodon-font-monospace\",monospace;font-size:12px;word-wrap:break-word;min-height:20px}.log-entry__icon{font-size:28px;margin-right:10px;color:#c2cede}.log-entry__icon__overlay{position:absolute;top:10px;right:10px;width:10px;height:10px;border-radius:50%}.log-entry__icon__overlay.positive{background:#79bd9a}.log-entry__icon__overlay.negative{background:#e87487}.log-entry__icon__overlay.neutral{background:#2b5fd9}.log-entry a,.log-entry .username,.log-entry .target{color:#ecf0f4;text-decoration:none;font-weight:500}.log-entry .diff-old{color:#e87487}.log-entry .diff-neutral{color:#ecf0f4}.log-entry .diff-new{color:#79bd9a}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#ecf0f4}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#e87487}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #2b5fd9}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#e87487}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#dde3ec}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#c2cede}.report-card{background:#282c37;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#dde3ec;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#f7f9fb}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #1f232b}.report-card__summary__item:hover{background:#2c313d}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#dde3ec}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#c2cede;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#dde3ec}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#393f4f;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#4e79df}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#fff}.center-text{text-align:center}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#313543;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#393f4f}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#fff;font-family:\"mastodon-font-display\",sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#dde3ec;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#d9e1e8;font-weight:500;text-decoration:none}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .status__avatar{left:auto;right:10px}body.rtl .status,body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:68px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(19, 20, 25, 0), #131419)}body.rtl .simple_form select{background:#131419 url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff);transform:scale(0.71)}.compose-form .compose-form__modifiers .compose-form__upload-description input::placeholder{opacity:1}.rich-formatting a,.rich-formatting p a,.rich-formatting li a,.landing-page__short-description p a,.status__content a,.reply-indicator__content a{color:#5f86e2;text-decoration:underline}.rich-formatting a.mention,.rich-formatting p a.mention,.rich-formatting li a.mention,.landing-page__short-description p a.mention,.status__content a.mention,.reply-indicator__content a.mention{text-decoration:none}.rich-formatting a.mention span,.rich-formatting p a.mention span,.rich-formatting li a.mention span,.landing-page__short-description p a.mention span,.status__content a.mention span,.reply-indicator__content a.mention span{text-decoration:underline}.rich-formatting a.mention span:hover,.rich-formatting a.mention span:focus,.rich-formatting a.mention span:active,.rich-formatting p a.mention span:hover,.rich-formatting p a.mention span:focus,.rich-formatting p a.mention span:active,.rich-formatting li a.mention span:hover,.rich-formatting li a.mention span:focus,.rich-formatting li a.mention span:active,.landing-page__short-description p a.mention span:hover,.landing-page__short-description p a.mention span:focus,.landing-page__short-description p a.mention span:active,.status__content a.mention span:hover,.status__content a.mention span:focus,.status__content a.mention span:active,.reply-indicator__content a.mention span:hover,.reply-indicator__content a.mention span:focus,.reply-indicator__content a.mention span:active{text-decoration:none}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active,.rich-formatting p a:hover,.rich-formatting p a:focus,.rich-formatting p a:active,.rich-formatting li a:hover,.rich-formatting li a:focus,.rich-formatting li a:active,.landing-page__short-description p a:hover,.landing-page__short-description p a:focus,.landing-page__short-description p a:active,.status__content a:hover,.status__content a:focus,.status__content a:active,.reply-indicator__content a:hover,.reply-indicator__content a:focus,.reply-indicator__content a:active{text-decoration:none}.rich-formatting a.status__content__spoiler-link,.rich-formatting p a.status__content__spoiler-link,.rich-formatting li a.status__content__spoiler-link,.landing-page__short-description p a.status__content__spoiler-link,.status__content a.status__content__spoiler-link,.reply-indicator__content a.status__content__spoiler-link{color:#ecf0f4;text-decoration:none}.status__content__read-more-button{text-decoration:underline}.status__content__read-more-button:hover,.status__content__read-more-button:focus,.status__content__read-more-button:active{text-decoration:none}.getting-started__footer a{text-decoration:underline}.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:none}.nothing-here{color:#dde3ec}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b5fd9}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Dependent colors\n$black: #000000;\n\n$classic-base-color: #282c37;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #2b90d9;\n\n$ui-base-color: $classic-base-color !default;\n$ui-primary-color: $classic-primary-color !default;\n$ui-secondary-color: $classic-secondary-color !default;\n\n// Differences\n$ui-highlight-color: #2b5fd9;\n\n$darker-text-color: lighten($ui-primary-color, 20%) !default;\n$dark-text-color: lighten($ui-primary-color, 12%) !default;\n$secondary-text-color: lighten($ui-secondary-color, 6%) !default;\n$highlight-text-color: $classic-highlight-color !default;\n$action-button-color: #8d9ac2;\n\n$inverted-text-color: $black !default;\n$lighter-text-color: darken($ui-base-color, 6%) !default;\n$light-text-color: darken($ui-primary-color, 40%) !default;\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n\n @return '%23' + unquote($color);\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.player {\n text-align: center;\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n &__illustration {\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div,\n & > noscript {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n\n & > noscript {\n height: 100vh;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n\n.error-boundary,\n.app-holder noscript {\n flex-direction: column;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.7;\n color: lighten($error-red, 4%);\n text-align: center;\n\n & > div {\n max-width: 500px;\n }\n\n p {\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &__footer {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n }\n }\n\n button {\n display: inline;\n border: 0;\n background: transparent;\n color: $dark-text-color;\n font: inherit;\n padding: 0;\n margin: 0;\n line-height: inherit;\n cursor: pointer;\n outline: 0;\n transition: color 300ms linear;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.copied {\n color: $valid-value-color;\n transition: none;\n }\n }\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a !default; // Padua\n$error-red: #df405a !default; // Cerise\n$warning-red: #ff5050 !default; // Sunset Orange\n$gold-star: #ca8f04 !default; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: 'mastodon-font-sans-serif' !default;\n$font-display: 'mastodon-font-display' !default;\n$font-monospace: 'mastodon-font-monospace' !default;\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1 / 3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n font-weight: 700;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n font-weight: 700;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small,\n .trends__item__current {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n\n .trends__item__current {\n padding-right: 0;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n\n li {\n list-style: disc;\n margin-left: 18px;\n }\n }\n\n ul.hint {\n margin-bottom: 15px;\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\nbutton.icon-button.disabled i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: $ui-highlight-color;\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 15px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 10%);\n transition: all 200ms ease-out;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled,\n &.disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n color: $darker-text-color;\n background: transparent;\n padding: 3px 15px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.compose-form {\n padding: 10px;\n\n &__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n }\n\n .compose-form__warning {\n color: $inverted-text-color;\n margin-bottom: 10px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n strong {\n color: $inverted-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 5px;\n right: 5px;\n }\n\n .compose-form__autosuggest-wrapper {\n position: relative;\n }\n\n .autosuggest-textarea,\n .autosuggest-input,\n .spoiler-input {\n position: relative;\n width: 100%;\n }\n\n .spoiler-input {\n height: 0;\n transform-origin: bottom;\n opacity: 0;\n\n &.spoiler-input--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1;\n }\n }\n\n .autosuggest-textarea__textarea,\n .spoiler-input__input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .spoiler-input__input {\n border-radius: 4px;\n }\n\n .autosuggest-textarea__textarea {\n min-height: 100px;\n border-radius: 4px 4px 0 0;\n padding-bottom: 0;\n padding-right: 10px + 22px;\n resize: none;\n scrollbar-color: initial;\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n @media screen and (max-width: 600px) {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n\n .autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n }\n\n .autosuggest-textarea__suggestions {\n box-sizing: border-box;\n display: none;\n position: absolute;\n top: 100%;\n width: 100%;\n z-index: 99;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n background: $ui-secondary-color;\n border-radius: 0 0 4px 4px;\n color: $inverted-text-color;\n font-size: 14px;\n padding: 6px;\n\n &.autosuggest-textarea__suggestions--visible {\n display: block;\n }\n }\n\n .autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n\n .autosuggest-account,\n .autosuggest-emoji,\n .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .autosuggest-account-icon,\n .autosuggest-emoji img {\n display: block;\n margin-right: 8px;\n width: 16px;\n height: 16px;\n }\n\n .autosuggest-account .display-name__account {\n color: $lighter-text-color;\n }\n\n .compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n\n .compose-form__upload-wrapper {\n overflow: hidden;\n }\n\n .compose-form__uploads-wrapper {\n display: flex;\n flex-direction: row;\n padding: 5px;\n flex-wrap: wrap;\n }\n\n .compose-form__upload {\n flex: 1 1 0;\n min-width: 40%;\n margin: 5px;\n\n &__actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $secondary-text-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($secondary-text-color, 7%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n\n &-description {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n padding: 10px;\n opacity: 0;\n transition: opacity .1s ease;\n\n textarea {\n background: transparent;\n color: $secondary-text-color;\n border: 0;\n padding: 0;\n margin: 0;\n width: 100%;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n\n &:focus {\n color: $white;\n }\n\n &::placeholder {\n opacity: 0.75;\n color: $secondary-text-color;\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n }\n\n .compose-form__upload-thumbnail {\n border-radius: 4px;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 140px;\n width: 100%;\n overflow: hidden;\n }\n }\n\n .compose-form__buttons-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n\n .compose-form__buttons {\n display: flex;\n\n .compose-form__upload-button-icon {\n line-height: 27px;\n }\n\n .compose-form__sensitive-button {\n display: none;\n\n &.compose-form__sensitive-button--visible {\n display: block;\n }\n\n .compose-form__sensitive-button__icon {\n line-height: 27px;\n }\n }\n }\n\n .icon-button,\n .text-icon-button {\n box-sizing: content-box;\n padding: 0 3px;\n }\n\n .character-counter__wrapper {\n align-self: center;\n margin-right: 4px;\n }\n }\n\n .compose-form__publish {\n display: flex;\n justify-content: flex-end;\n min-width: 0;\n flex: 0 0 auto;\n\n .compose-form__publish-button-wrapper {\n overflow: hidden;\n padding-top: 10px;\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .spoiler-input {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.reply-indicator {\n border-radius: 4px;\n margin-bottom: 10px;\n background: $ui-primary-color;\n padding: 10px;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n}\n\n.reply-indicator__header {\n margin-bottom: 5px;\n overflow: hidden;\n}\n\n.reply-indicator__cancel {\n float: right;\n line-height: 24px;\n}\n\n.reply-indicator__display-name {\n color: $inverted-text-color;\n display: block;\n max-width: 100%;\n line-height: 24px;\n overflow: hidden;\n padding-right: 25px;\n text-decoration: none;\n}\n\n.reply-indicator__display-avatar {\n float: left;\n margin-right: 5px;\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content,\n.reply-indicator__content {\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n color: $primary-text-color;\n\n &:focus {\n outline: 0;\n }\n\n &.status__content--with-spoiler {\n white-space: normal;\n\n .status__content__text {\n white-space: pre-wrap;\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n\n .status__content__spoiler-link {\n background: $action-button-color;\n\n &:hover {\n background: lighten($action-button-color, 7%);\n text-decoration: none;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n .status__content__text {\n display: none;\n\n &.status__content__text--visible {\n display: block;\n }\n }\n}\n\n.status__content.status__content--collapsed {\n max-height: 20px * 15; // 15 lines is roughly above 500 characters\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: transparent;\n border: 0;\n color: $inverted-text-color;\n font-weight: 700;\n font-size: 12px;\n padding: 0 6px;\n line-height: 20px;\n cursor: pointer;\n vertical-align: middle;\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n .status.status-direct {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 8px 10px;\n padding-left: 68px;\n position: relative;\n min-height: 54px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 26px; // 10px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $light-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n strong {\n color: $inverted-text-color;\n }\n\n span {\n color: $light-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time,\n.notification__relative_time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n}\n\n.status__display-name {\n color: $dark-text-color;\n}\n\n.status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n}\n\n.status__info {\n font-size: 15px;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-left: 68px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.reply-indicator__content {\n color: $inverted-text-color;\n font-size: 14px;\n\n a {\n color: $lighter-text-color;\n }\n}\n\n.domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &.compact {\n padding: 0;\n border-bottom: 0;\n\n .account__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius;\n position: relative;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n border-radius: 50%;\n overflow: hidden;\n position: relative;\n cursor: default;\n\n & > div {\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\na .account__avatar {\n cursor: pointer;\n}\n\n.account__avatar-overlay {\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius;\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius;\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__disclaimer {\n padding: 10px;\n border-top: 1px solid lighten($ui-base-color, 8%);\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-dropdown {\n padding: 10px;\n\n .icon-button {\n vertical-align: middle;\n }\n\n .dropdown--active {\n .dropdown__content.dropdown__right {\n left: 6px;\n right: initial;\n }\n\n &::after {\n bottom: initial;\n margin-left: 11px;\n margin-top: -7px;\n right: initial;\n }\n }\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-right: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n font-size: 12px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\n.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\na.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n height: 48px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n}\n\n.status__expand {\n width: 68px;\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n cursor: pointer;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-lighter-color, 7%);\n text-decoration: none;\n }\n }\n}\n\n.notification__message {\n margin: 0 10px 0 68px;\n padding: 8px 0 0;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n line-height: 22px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: inline;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: -26px;\n position: absolute;\n\n .star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.notification__relative_time {\n float: right;\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.navigation-bar {\n padding: 10px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n cursor: default;\n color: $darker-text-color;\n\n strong {\n color: $secondary-text-color;\n }\n\n a {\n color: inherit;\n }\n\n .permalink {\n text-decoration: none;\n }\n\n .navigation-bar__actions {\n position: relative;\n\n .icon-button.close {\n position: absolute;\n pointer-events: none;\n transform: scale(0, 1) translate(-100%, 0);\n opacity: 0;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: auto;\n transform: scale(1, 1) translate(0, 0);\n opacity: 1;\n }\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n line-height: 20px;\n margin-top: -1px;\n overflow: hidden;\n}\n\n.navigation-bar__profile-account {\n display: block;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.navigation-bar__profile-edit {\n color: inherit;\n text-decoration: none;\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n z-index: 9999;\n\n ul {\n list-style: none;\n }\n\n &.left {\n transform-origin: 100% 50%;\n }\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n\n &.right {\n transform-origin: 0 50%;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &.unscrollable {\n overflow-x: hidden;\n }\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .drawer,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 350px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.drawer {\n width: 330px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n}\n\n.drawer__tab {\n display: block;\n flex: 1 1 auto;\n padding: 15px 5px 13px;\n color: $darker-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 16px;\n border-bottom: 2px solid transparent;\n}\n\n.column,\n.drawer {\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @media screen and (min-width: 631px) {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $highlight-text-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__favourite-icon-wrapper {\n left: -32px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n\n .account__avatar-wrapper {\n margin-left: 17px;\n margin-right: 15px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .getting-started__trends,\n .search {\n margin-bottom: 10px;\n }\n\n .getting-started__panel {\n margin: 10px 0;\n }\n\n .column,\n .drawer {\n min-width: 330px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .navigation-bar {\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 0 1 48px;\n min-height: 20px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .compose-form {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n padding-bottom: 71px;\n margin-bottom: -71px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n border-radius: 2px;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 100%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__header {\n flex: 0 0 auto;\n font-size: 16px;\n background: lighten($ui-base-color, 8%);\n margin-bottom: 10px;\n display: flex;\n flex-direction: row;\n border-radius: 2px;\n\n a {\n transition: background 100ms ease-in;\n\n &:hover {\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n line-height: inherit;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n outline: 0;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n white-space: nowrap;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 13px;\n font-weight: 500;\n cursor: default;\n}\n\n.getting-started__wrapper,\n.getting-started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n color: $dark-text-color;\n overflow: auto;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n\n &__wrapper,\n &__panel,\n &__footer {\n height: min-content;\n }\n\n &__panel,\n &__footer\n {\n padding: 10px;\n padding-top: 20px;\n flex-grow: 0;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__wrapper,\n &__footer\n {\n color: $dark-text-color;\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 13px;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n border-radius: 4px;\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n\n &.active {\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n top: 35px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n\n & > button {\n margin: 0;\n border: 0;\n padding: 15px 0 15px 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($highlight-text-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 13px;\n font-weight: 400;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n border-radius: 4px;\n appearance: none;\n\n &:hover,\n &:active,\n &:focus {\n padding: 0;\n color: lighten($darker-text-color, 8%);\n }\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 700;\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: block;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout;\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n font-size: 12px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.empty-column-indicator,\n.error-column {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.error-column {\n flex-direction: column;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.no-reduce-motion .pulse-loading {\n transform-origin: center center;\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n@keyframes shake-bottom {\n 0%,\n 100% {\n transform: rotate(0deg);\n transform-origin: 50% 100%;\n }\n\n 10% {\n transform: rotate(2deg);\n }\n\n 20%,\n 40%,\n 60% {\n transform: rotate(-4deg);\n }\n\n 30%,\n 50%,\n 70% {\n transform: rotate(4deg);\n }\n\n 80% {\n transform: rotate(-2deg);\n }\n\n 90% {\n transform: rotate(2deg);\n }\n}\n\n.no-reduce-motion .shake-bottom {\n transform-origin: 50% 100%;\n animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.upload-progress {\n padding: 10px;\n color: $lighter-text-color;\n overflow: hidden;\n display: flex;\n\n .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n span {\n font-size: 13px;\n font-weight: 500;\n display: block;\n }\n}\n\n.upload-progess__message {\n flex: 1 1 auto;\n}\n\n.upload-progress__backdrop {\n width: 100%;\n height: 6px;\n border-radius: 6px;\n background: $ui-base-lighter-color;\n position: relative;\n margin-top: 5px;\n}\n\n.upload-progress__tracker {\n position: absolute;\n left: 0;\n top: 0;\n height: 6px;\n background: $ui-highlight-color;\n border-radius: 6px;\n}\n\n.emoji-button {\n display: block;\n font-size: 24px;\n line-height: 24px;\n margin-left: 2px;\n width: 24px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n margin-top: 2px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.privacy-dropdown__dropdown {\n position: absolute;\n background: $simple-background-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-left: 40px;\n overflow: hidden;\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n}\n\n.privacy-dropdown__option {\n color: $inverted-text-color;\n padding: 10px;\n cursor: pointer;\n display: flex;\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n outline: 0;\n\n .privacy-dropdown__option__content {\n color: $primary-text-color;\n\n strong {\n color: $primary-text-color;\n }\n }\n }\n\n &.active:hover {\n background: lighten($ui-highlight-color, 4%);\n }\n}\n\n.privacy-dropdown__option__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 10px;\n}\n\n.privacy-dropdown__option__content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n strong {\n font-weight: 500;\n display: block;\n color: $inverted-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.privacy-dropdown.active {\n .privacy-dropdown__value {\n background: $simple-background-color;\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n\n .icon-button {\n transition: none;\n }\n\n &.active {\n background: $ui-highlight-color;\n\n .icon-button {\n color: $primary-text-color;\n }\n }\n }\n\n &.top .privacy-dropdown__value {\n border-radius: 0 0 4px 4px;\n }\n\n .privacy-dropdown__dropdown {\n display: block;\n box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);\n }\n}\n\n.search {\n position: relative;\n}\n\n.search__input {\n @include search-input;\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(90deg);\n\n &.active {\n pointer-events: none;\n transform: rotate(0deg);\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n}\n\n.search-results__section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n}\n\n.search-results__hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $primary-text-color;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $highlight-text-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n font-size: 13px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n }\n\n .status__avatar {\n height: 28px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n .status__content,\n .status__content p {\n color: $inverted-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n max-height: 80vh;\n max-width: 80vw;\n\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.loading-bar {\n background-color: $highlight-text-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &.autoplay {\n .media-gallery__gifv__label {\n display: none;\n }\n }\n\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n margin-top: 32px;\n\n audio {\n width: 100%;\n }\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n/* Media Gallery */\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n }\n\n img {\n object-fit: cover;\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n object-fit: cover;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n z-index: 1;\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n/* End Media Gallery */\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-overlay-background;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n\n.directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\n.search-popout {\n @include search-popout;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@media screen and (max-width: 630px) and (max-height: 400px) {\n $duration: 400ms;\n $delay: 100ms;\n\n .tabs-bar,\n .search {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar {\n will-change: padding-bottom;\n transition: padding-bottom $duration $delay;\n }\n\n .navigation-bar {\n & > a:first-child {\n will-change: margin-top, margin-left, margin-right, width;\n transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay);\n }\n\n & > .navigation-bar__profile-edit {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar__actions {\n & > .icon-button.close {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay,\n transform $duration $delay;\n }\n\n & > .compose__action-bar .icon-button {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay + $duration * 0.5,\n transform $duration $delay;\n }\n }\n }\n\n .is-composing {\n .tabs-bar,\n .search {\n margin-top: -50px;\n }\n\n .navigation-bar {\n padding-bottom: 0;\n\n & > a:first-child {\n margin: -100px 10px 0 -50px;\n }\n\n .navigation-bar__profile {\n padding-top: 2px;\n }\n\n .navigation-bar__profile-edit {\n position: absolute;\n margin-top: -60px;\n }\n\n .navigation-bar__actions {\n .icon-button.close {\n pointer-events: auto;\n opacity: 1;\n transform: scale(1, 1) translate(0, 0);\n bottom: 5px;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: none;\n opacity: 0;\n transform: scale(0, 1) translate(100%, 0);\n }\n }\n }\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.column-inline-form {\n padding: 15px;\n padding-right: 0;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 10px;\n }\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n\n.list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n",null,"@mixin avatar-radius {\n border-radius: 4px;\n background: transparent no-repeat;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size: 48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin search-input {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: 0;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n display: inline-block;\n border-radius: 4px;\n background: darken($ui-primary-color, 14%);\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__text {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-width: 4px;\n background: none;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 52px;\n font-weight: 700;\n padding: 0 10px;\n padding-left: 8px;\n text-align: right;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 52px;\n }\n\n &__vote__mark {\n float: left;\n line-height: 18px;\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__text {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".emoji-mart {\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: -1px;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -5px;\n left: 0;\n width: 100%;\n height: 4px;\n background-color: $highlight-text-color;\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n font-weight: 700;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n summary {\n display: list-item;\n }\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n font-size: 14px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: 0;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n font-size: 13px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n font-size: 13px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n margin-bottom: 20px;\n line-height: 20px;\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n padding: 10px;\n background: $ui-base-color;\n color: $darker-text-color;\n border-radius: 4px 4px 0 0;\n font-size: 14px;\n position: relative;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n &__extras {\n background: lighten($ui-base-color, 6%);\n border-radius: 0 0 4px 4px;\n padding: 10px;\n color: $darker-text-color;\n font-family: $font-monospace, monospace;\n font-size: 12px;\n word-wrap: break-word;\n min-height: 20px;\n }\n\n &__icon {\n font-size: 28px;\n margin-right: 10px;\n color: $dark-text-color;\n }\n\n &__icon__overlay {\n position: absolute;\n top: 10px;\n right: 10px;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n\n &.positive {\n background: $success-green;\n }\n\n &.negative {\n background: lighten($error-red, 12%);\n }\n\n &.neutral {\n background: $ui-highlight-color;\n }\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n\n .diff-old {\n color: lighten($error-red, 12%);\n }\n\n .diff-neutral {\n color: $secondary-text-color;\n }\n\n .diff-new {\n color: $success-green;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .status__avatar {\n left: auto;\n right: 10px;\n }\n\n .status,\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n","$black-emojis: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash';\n\n%white-emoji-outline {\n filter: drop-shadow(1px 1px 0 $white) drop-shadow(-1px 1px 0 $white) drop-shadow(1px -1px 0 $white) drop-shadow(-1px -1px 0 $white);\n transform: scale(.71);\n}\n\n.emojione {\n @each $emoji in $black-emojis {\n &[title=':#{$emoji}:'] {\n @extend %white-emoji-outline;\n }\n }\n}\n","// components.scss\n.compose-form {\n .compose-form__modifiers {\n .compose-form__upload {\n &-description {\n input {\n &::placeholder {\n opacity: 1;\n }\n }\n }\n }\n }\n}\n\n.rich-formatting a,\n.rich-formatting p a,\n.rich-formatting li a,\n.landing-page__short-description p a,\n.status__content a,\n.reply-indicator__content a {\n color: lighten($ui-highlight-color, 12%);\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n }\n\n &.mention span {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.status__content__spoiler-link {\n color: $secondary-text-color;\n text-decoration: none;\n }\n}\n\n.status__content__read-more-button {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n}\n\n.getting-started__footer a {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n}\n\n.nothing-here {\n color: $darker-text-color;\n}\n\n.public-layout .public-account-header__tabs__tabs .counter.active::after {\n border-bottom: 4px solid $ui-highlight-color;\n}\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///common.scss","webpack:///./app/javascript/styles/mastodon/reset.scss","webpack:///./app/javascript/styles/contrast/variables.scss","webpack:///./app/javascript/styles/mastodon/basics.scss","webpack:///./app/javascript/styles/mastodon/variables.scss","webpack:///./app/javascript/styles/mastodon/containers.scss","webpack:///./app/javascript/styles/mastodon/lists.scss","webpack:///./app/javascript/styles/mastodon/footer.scss","webpack:///./app/javascript/styles/mastodon/compact_header.scss","webpack:///./app/javascript/styles/mastodon/widgets.scss","webpack:///./app/javascript/styles/mastodon/forms.scss","webpack:///./app/javascript/styles/mastodon/accounts.scss","webpack:///./app/javascript/styles/mastodon/statuses.scss","webpack:///./app/javascript/styles/mastodon/boost.scss","webpack:///./app/javascript/styles/mastodon/components.scss","webpack:///","webpack:///./app/javascript/styles/mastodon/_mixins.scss","webpack:///./app/javascript/styles/mastodon/polls.scss","webpack:///./app/javascript/styles/mastodon/modal.scss","webpack:///./app/javascript/styles/mastodon/emoji_picker.scss","webpack:///./app/javascript/styles/mastodon/about.scss","webpack:///./app/javascript/styles/mastodon/tables.scss","webpack:///./app/javascript/styles/mastodon/admin.scss","webpack:///./app/javascript/styles/mastodon/dashboard.scss","webpack:///./app/javascript/styles/mastodon/rtl.scss","webpack:///./app/javascript/styles/mastodon/accessibility.scss","webpack:///./app/javascript/styles/contrast/diff.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,sCACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,0BACA,CC9EmB,iEDqFrB,kBCrFqB,4BDyFrB,sBACE,MErFF,iDACE,mBACA,eACA,iBACA,gBACA,WCXM,kCDaN,6BACA,8BACA,CADA,0BACA,CADA,qBACA,0CACA,wCACA,kBAEA,iKAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBDrDmB,kBCyDnB,iBACE,kBACA,0BAEA,iBACE,aAIJ,iBACE,YAGF,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cD9EgB,mBAZC,WC6FjB,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,sCAGE,aACE,gBACA,WACA,YACA,kBACA,uBAIJ,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,kDAKF,YAGE,WACA,mBACA,uBACA,oBACA,sBAGF,YACE,yEAKF,gBAEE,+EAKF,WAEE,sCAIJ,qBAEE,eACA,gBACA,gBACA,cACA,kBACA,8CAEA,eACE,0CAGF,mBACE,gEAEA,eACE,0CAIJ,aDpLwB,kKCuLtB,oBAGE,sDAIJ,aDpLgB,eCsLd,0DAEA,aDxLc,oDC6LhB,cACE,SACA,uBACA,cDhMc,aCkMd,UACA,SACA,oBACA,eACA,UACA,4BACA,0BACA,gMAEA,oBAGE,kEAGF,aC9NY,gBDgOV,gBEnON,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SDrBI,YCuBF,kBACA,sBAGF,YACE,uBACA,mBACA,WD9BE,qBCgCF,UACA,kBACA,iBACA,6CACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAGF,UACE,YACA,iBACA,6BAEA,UACE,YACA,cACA,SACA,kBACA,uBAIJ,aACE,cH/EmB,wBGiFnB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UDxUA,qCC2UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cHhVc,mBGkVd,kBACA,uHAEA,yBAGE,WDrWA,qCCyWF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBHxaiB,8CG6anB,yBACE,gBACA,aACA,kBACA,mBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,YACA,aACA,kBACA,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,qCAIJ,2CArCF,YAsCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAGF,UACE,YACA,CACA,sBACA,wDAEA,QACE,kBACA,2DAGF,mDAXF,YAYI,sCAKN,2CAhEF,eAiEI,sCAGF,2CApEF,cAqEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WD1kBF,gBC4kBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WDplBJ,gBCslBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aH/lBQ,oDGsmBd,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cH3nBU,aG6nBV,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BH3pBW,wEGiqBX,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WDnsBJ,6CCqsBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cH5tBY,uDG+tBZ,oBACE,cHhuBU,qBGkuBV,aACA,gBACA,8DAEA,eACE,WDpvBJ,qCC0vBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aDryBU,8DC2yBV,mBACA,WD7yBE,qFCizBJ,YAEE,eACA,cHvyBc,2CG2yBhB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBHn3Ba,+IGs3BX,kBAGE,WC53BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,wBCfF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cLnFc,6BKsFd,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cNYgB,gBMVhB,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cNJiB,wBMQnB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBLPI,uBKUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBPlBmB,aOoBjB,0BACA,eACA,cPVgB,iBOYhB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aPxCmB,qBO0CjB,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cPjEgB,+BOqElB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aP9FkB,aOmGpB,YACE,kBACA,mBPjHmB,mCOmHnB,qBAGF,YACE,kBACA,0BACA,kBACA,cP9GkB,mBOgHlB,iBAGF,eACE,eACA,cPrHkB,iBOuHlB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cPhIgB,0BOoIlB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cP7IgB,qBO+IhB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBP3KmB,mCO6KnB,cP/JqB,gBOiKrB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cP5Mc,8DOkNhB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eLlPM,CKoPN,cACA,cPvOkB,mBOyOlB,+BANA,iBACA,CLlPM,kCKgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,ULjQM,eKmQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cP7PgB,qCOiQlB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBPvRqB,kBOyRnB,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBPpSe,kBOsSf,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBP3SiB,eO6Sf,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WLnUE,mBKqUF,gBACA,uBACA,wBAEA,aP5Tc,0BOgUd,aACE,gBACA,eACA,eACA,cPpUY,0IO0Ud,ULvVE,+BK+VJ,aACE,YACA,uDAGF,oBPzViB,wCO6VjB,eACE,eAKN,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cP3YgB,gBO6YhB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WLhbI,8BKmbJ,aACE,cPvac,gBOyad,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aPxgBkB,iCOugBpB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cP/hBiB,4JOkiBjB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WLnkBI,gCKqkBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MCplBJ,+CACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WNhDA,cMkDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aRjEoB,0BQmElB,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aRvFkB,sBQ0FhB,aRnGsB,yBQuGtB,iBACE,kBACA,mBACA,uBAGF,eACE,iBACA,sBAIJ,kBACE,wBAGF,aACE,eACA,eACA,qBAGF,kBACE,cRrHgB,iCQwHhB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WNlKA,gBMoKA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WNxLE,cM0LF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WN9ME,cMgNF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,kDAIJ,oBACE,WACA,OACA,6BAGF,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WNlSI,cMoSJ,WACA,2CAKE,mBACE,eACA,WN5SA,qBM8SA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WN5UI,cM8UJ,WACA,UACA,oBACA,gBACA,mBACA,yBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBNnWY,oLMuWZ,iBACE,4WAGF,oBRxWsB,mBQ2WpB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBRlZiB,WEXb,eMgaJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBRzboB,gGQ6bpB,kBN7bQ,kHMgcN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WNhdI,cMkdJ,WACA,UACA,oBACA,gBACA,wXACA,yBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cRheY,oBQkeZ,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,iEACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,8BACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UN9hBF,aMwiBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cRniBkB,kBQqiBlB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cNxjBY,sBM4jBd,mCACE,+BACA,cN7jBQ,kBMikBV,oBACE,cRvjBgB,qBQyjBhB,wBAEA,UNxkBI,0BM0kBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBRxlBiB,WEDb,eM4lBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aRpnBkB,qBQsnBhB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aRjpBwB,yBQmpBtB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cRxpBkB,oCQ2pBlB,cACE,mBACA,kBACA,4CAGF,aR/pBqB,gBQiqBnB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBNrsBM,YMusBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cRpsBqB,WQssBrB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WNjvBI,qCMmvBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UNzvBI,0BM2vBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cR3xBkB,0BQ8xBlB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WNrzBI,kBMuzBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aN/zBc,0SMy0BZ,+CACE,aAIJ,kBACE,yBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gDACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBNn3Bc,gBMq3BZ,2BAEA,kBNv3BY,gBMy3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SC17BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,mBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,WACA,YACA,gBACA,wBAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WP7EA,gBO+EA,gBACA,uBACA,+BAGF,aACE,eACA,cTzEY,gBS2EZ,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WP3GI,gBO6GJ,qBACA,iBACA,qBACA,sBAGF,ePnHM,oBOqHJ,WTtHI,eSwHJ,cACA,kBAGF,cACE,uCAGF,wBAEE,cTlHmB,oBSsHrB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,cACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBT3KqB,mCS6KnB,cTzJiB,eS2JjB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cT1MwB,sCS4MxB,sCACA,6DAEA,aPjNc,sCOmNZ,kCACA,qDAGF,aACE,sCACA,kCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cT7OmB,6BS+OnB,6BAGF,aACE,cTrPgB,4BSyPlB,aTlQwB,qBSoQtB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aPpRY,gBOsRV,0CAGF,aPzRY,wCO8Rd,eACE,wCAIJ,UACE,0BAIA,aT5RkB,4BS+RhB,aTzSsB,qBS2SpB,qGAEA,yBAGE,iCAIJ,UPvTI,gBOyTF,wBAIJ,eACE,kBChUJ,kCACE,kBACA,gBACA,mBACA,8BAEA,yBACE,qCAGF,iBAVF,eAWI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBV5BmB,6GU+BjB,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBVpEmB,WEXb,oBQkFN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UR5FI,gFQgGN,kBAGE,qNAKA,kBVtGoB,4IU8GpB,kBR9GQ,qCQqHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAGF,gBACE,iBACA,mFAGF,UACE,qMAGF,eAGE,iCC/JN,u+KACE,uCAEA,u+KACE,0CAIJ,u+KACE,WCTF,gCACE,4CACA,kBAGF,mBACE,sBACA,oBACA,gBACA,kBACA,cAGF,aACE,eACA,iBACA,cZHmB,SYKnB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,aZxBsB,eY0BpB,SAIJ,wBZrBqB,YYuBnB,kBACA,sBACA,WVpCM,eUsCN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,mBACA,WACA,4CAEA,wBAGE,4BACA,sBAGF,eACE,mFAEA,wBVjEQ,gBUqEN,mCAIJ,wBZzEsB,eY4EpB,2BAGF,QACE,wDAGF,mBAGE,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,UZvGM,mBAGgB,qGYwGpB,wBAGE,8BAIJ,kBVnFsB,2GUsFpB,wBAGE,0BAIJ,aZ9GkB,uBYgHhB,iBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,kBAIJ,YACE,cACA,kBACA,cAGF,oBACE,UACA,cZ1IoB,SY4IpB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,uCACA,4BACA,2CACA,oBAGF,qCACE,uBAGF,aACE,6BACA,eACA,qBAGF,aZnLwB,gCYuLxB,QACE,uEAGF,mBAGE,uBAGF,aZjLmB,sFYoLjB,aAGE,oCACA,6BAGF,kCACE,gCAGF,aACE,6BACA,8BAGF,aZpNsB,uCYuNpB,aACE,wBAKN,sBACE,0BACA,yBACA,kBACA,YACA,8BAEA,yBACE,mBAKN,aZ1NqB,SY4NnB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,oCACA,4BACA,2CACA,yBAGF,kCACE,4BAGF,aACE,6BACA,eACA,0BAGF,aZ3QwB,qCY+QxB,QACE,sFAGF,mBAGE,CAKF,0BADF,iBAUE,CATA,WAGF,WACE,cACA,qBACA,QACA,SAEA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,eAIJ,YACE,iCAGE,mBACA,eAEA,gBACA,wCAEA,aZhUsB,sDYoUtB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBZrVoB,yDY4VxB,UZjWM,mBYmWJ,mBZhWoB,oCYkWpB,iBACA,kBACA,eACA,gBACA,6CAEA,UZ3WI,gBY6WF,CAII,kRADF,eACE,wCAKN,aZjWiB,gBYmWf,0BACA,yIAEA,oBAGE,sCAKN,iBACE,MACA,QACA,kDAGF,iBACE,mGAGF,iBAGE,WACA,8BAGF,QACE,wBACA,UACA,qDAEA,WACE,mBACA,UACA,mFAIJ,aAEE,sBACA,WACA,SACA,WZraI,gBECA,aUuaJ,oBACA,eACA,gBACA,SACA,UACA,yIAEA,aZhac,CY8Zd,sHAEA,aZhac,CY8Zd,8HAEA,aZhac,CY8Zd,4GAEA,aZhac,+FYoad,SACE,qCAGF,kFAvBF,cAwBI,sCAIJ,iBACE,+CAGF,gBACE,0BACA,iBACA,mBACA,YACA,qBACA,kEAEA,SACE,qCAGF,8CAZF,sBAaI,gBACA,2DAIJ,iBACE,SACA,kDAGF,qBACE,aACA,kBACA,SACA,WACA,WACA,sCACA,mBZ1dsB,0BY4dtB,WZheI,eYkeJ,YACA,6FAEA,aACE,wDAIJ,YACE,eACA,kBACA,yPAEA,kBAIE,wGAIJ,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,oCAGF,6BACE,0CAEA,aACE,gBACA,uBACA,mBACA,2CAGF,eACE,0CAGF,aACE,iBACA,gBACA,uBACA,mBACA,8EAIJ,aAEE,iBACA,WACA,YACA,2DAGF,aZ5gBmB,wCYghBnB,UZriBM,oBYuiBJ,eACA,gBVviBI,sEU0iBJ,eACE,uEAGF,YACE,mBACA,YACA,eACA,8DAGF,UACE,cACA,WACA,uEAEA,iFACE,aACA,uBACA,8BACA,UACA,4BACA,oFAEA,aACE,cZpjBa,eYsjBb,gBACA,aACA,oBACA,6QAEA,UAGE,8EAIJ,SACE,0EAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,gFACA,aACA,UACA,4BACA,mFAEA,sBACE,cZplBa,SYslBb,UACA,SACA,WACA,oBACA,eACA,gBACA,yFAEA,UV7mBF,8GUinBE,WACE,cZnmBW,CEff,oGUinBE,WACE,cZnmBW,CEff,wGUinBE,WACE,cZnmBW,CEff,+FUinBE,WACE,cZnmBW,iFYwmBf,SACE,wEAKN,iBACE,sBV/nBE,wBUioBF,sBACA,4BACA,aACA,WACA,gBACA,8CAIJ,YACE,mBACA,0BACA,aACA,8BACA,cACA,qEAEA,YACE,uGAEA,gBACE,qGAGF,YACE,6IAEA,aACE,2IAGF,gBACE,0HAKN,sBAEE,cACA,0EAGF,iBACE,iBACA,sCAIJ,YACE,yBACA,YACA,cACA,4EAEA,eACE,iBACA,oBAKN,cACE,kDACA,eACA,gBACA,cZ9qBmB,4CYirBnB,aVlsBY,kCUusBd,2CACE,WC7sBF,8DDktBE,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,kBAIJ,iBACE,mBACA,mBZ3tBsB,aY6tBtB,gBACA,gBACA,cACA,0BAGF,iBACE,gBACA,0BAGF,WACE,iBACA,gCAGF,UZhvBQ,cYkvBN,eACA,iBACA,gBACA,mBACA,qBACA,kCAGF,UACE,iBACA,+BAGF,cACE,4CAGF,iBAEE,eACA,iBACA,qBACA,gBACA,gBACA,uBACA,gBACA,WV3wBM,wDU8wBN,SACE,wGAGF,kBACE,sJAEA,oBACE,gEAIJ,UACE,YACA,gBACA,oDAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,gDAGF,kBACE,qBACA,sEAEA,eACE,gDAIJ,aVnyBc,qBUqyBZ,4DAEA,yBACE,oEAEA,aACE,4EAKF,oBACE,sFAEA,yBACE,wDAKN,aZvzBc,8EY4zBhB,aACE,0GAGF,kBZ7zBoB,sHYg0BlB,kBACE,qBACA,8IAGF,QACE,0XAGF,mBAGE,0FAIJ,YACE,wJAEA,aACE,+BAKN,oBACE,gBACA,yCAEA,UACE,YACA,gBACA,iCAGF,kBACE,qBACA,4CAEA,eACE,iCAIJ,aZ92BqB,qBYg3BnB,uCAEA,yBACE,+CAIA,oBACE,oDAEA,yBACE,gDAKN,aACE,6CAKN,gBACE,oCAGF,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,qBACA,oFAEA,yBAEE,gCAIJ,oBACE,kBACA,uBACA,SACA,WZ/6BM,gBYi7BN,eACA,cACA,yBACA,iBACA,eACA,sBACA,4BAGF,aZ36BkB,SY66BhB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,kBAIA,SACE,mBACA,wCAEA,kBACE,8CAEA,sBACE,iFAIJ,kBAEE,SAMJ,yBACA,kBACA,gBACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QARF,kBAWI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,aZ5+Be,qCYg/Bf,UZtgCI,6BY0gCJ,aZp/Be,CAtBX,kEYkhCJ,UZlhCI,kCYqhCF,aZhhCoB,gEYohCpB,UVxhCE,mBFEgB,sEY0hChB,kBACE,+CAQR,sBACE,qEAEA,aACE,qDAKN,aZhiCkB,YYmiChB,eACA,uBAGF,aZviCkB,qCY2iClB,aACE,eACA,mBACA,eAGF,cACE,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,gBACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,cZ5lCgB,CY8lChB,iBACA,eACA,kBACA,+CAEA,aZnmCgB,uBYumChB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cZ7nCgB,4BYmoCtB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,kEAGF,gBACE,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cZ9rCgB,eYgsChB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,2BAGF,UZzuCQ,eY2uCN,6BAEA,aZxtCmB,SY6tCrB,YACE,gCACA,8BAEA,aACE,cACA,WVvvCI,qBUyvCJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,UAGF,YACE,gCACA,kBAEA,SACE,gBACA,2CAEA,aACE,iCAIJ,aACE,cACA,cZ3wCgB,gBY6wChB,qBACA,eACA,mBAIJ,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,iBE3yCE,iCACA,wBACA,4BACA,kBF0yCA,yBAEA,oBACE,sBACA,iBACA,4BAGF,iBErzCA,iCACA,wBACA,4BACA,kBFozCE,gBACA,kBACA,gCAEA,UACE,kBACA,sBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WVr0CE,6BUu0CF,gBACA,eACA,oBAKN,cACE,0BAGF,UACuB,sCE30CrB,+BF60CA,iBEt1CA,iCACA,wBACA,4BACA,WFq1CuB,sCE/0CvB,kCFk1CA,iBE31CA,iCACA,wBACA,4BACA,WF01CuB,sCEp1CvB,kBFs1CE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,sBAGF,YACE,6BACA,cZ/1CgB,6BYk2ChB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,+BAGF,YACE,4CAEA,qBACE,oFAIA,QACE,WACA,uDAGF,WACE,iBACA,gBACA,WACA,4BAKN,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,+BACA,eACA,oCACA,kCAEA,+BACE,gCAGF,aACE,yBACA,eACA,cZ/6CgB,kCYm7ClB,aACE,eACA,gBACA,WVn8CI,CUw8CA,2NADF,eACE,oBAMR,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,6JAGF,oBAME,4DAKA,UVx+CM,kBU8+CN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,aZ5/CuB,cY8/CrB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WV1hDI,kCU+hDR,UACE,kBACA,iBAGF,WACE,UACA,kBACA,SACA,WACA,iBAGF,UACE,kBACA,OACA,MACA,YACA,eACA,CZpiDgB,gHY8iDhB,aZ9iDgB,wBYkjDhB,UACE,wCAGF,kBVtiDsB,WF/BhB,8CYykDJ,kBACE,qBACA,wBAKN,oBACE,gBACA,eACA,cZrkDkB,eYukDlB,iBACA,kBACA,4BAEA,aZplDwB,6BYwlDxB,cACE,gBACA,uBACA,uCAIJ,UACE,kBACA,CVjmDU,mEUwmDZ,aVxmDY,uBU4mDZ,aV7mDc,4DUmnDV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UVvoDM,0BUyoDJ,8BAIJ,WACE,eAGF,aACE,eACA,gBACA,uBACA,mBACA,qBAGF,eACE,wBAGF,cACE,+DAKA,yBACE,eAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cV9nD4B,eAEC,0DU+nD3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cVtpD4B,eAEC,WUupD3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,iBAIJ,YACE,aACA,mBACA,cACA,eACA,cZ1sDkB,wBY6sDlB,aZ3sDqB,mBY+sDrB,aACE,4BAGF,oBACE,0CAGF,iBACE,6DAEA,iBACE,oBACA,qCACA,UACA,4EAGF,mBACE,gCACA,UACA,0BAKN,aACE,gBACA,iBACA,gBACA,gBACA,kCAGF,aACE,gBACA,gBACA,uBACA,+BAGF,aACE,qBACA,WAGF,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBZxxD0B,cY0xDxB,kBACA,uCACA,aACA,mBAEA,eACE,qBAGF,yBACE,oBAGF,yBACE,uBAGF,sBACE,sBAGF,sBACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BZ7zDsB,2BYi0DxB,WACE,iBACA,uBACA,yBZp0DsB,8BYw0DxB,QACE,iBACA,uBACA,4BZ30DsB,6BY+0DxB,SACE,gBACA,2BACA,2BZl1DsB,wBYw1DxB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZ91DsB,WAJlB,gBYq2DJ,uBACA,mBACA,yFAEA,kBZ71DiB,cAIE,UY81DjB,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBZx3DsB,cY03DtB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZj5DsB,WAJlB,gBYw5DJ,uBACA,mBACA,oDAEA,SACE,oDAGF,kBZp5DiB,cAIE,iBYu5DvB,qBACE,eAGF,YACE,cACA,mBACA,2BACA,gBACA,kBACA,4BAEA,iBACE,uBAGF,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,gKAMJ,WAIE,mCAIJ,YACE,mBACA,uBACA,YACA,SAGF,WACE,kBACA,sBACA,aACA,sBACA,qBAEA,kBZ1gEmB,8BY4gEjB,+BACA,KAIJ,aACE,CACA,qBACA,WACA,YACA,aAJA,YAYA,CARA,QAGF,WACE,sBACA,CACA,qBACA,kBACA,cAGF,aACE,cACA,sBACA,cZxhEkB,qBY0hElB,kBACA,eACA,oCACA,iBAGF,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WV7lEM,qBU+lEN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCAMA,mEAHF,kBAII,4BACA,yBAIJ,+BACE,cZlnEsB,sBYsnExB,eACE,aACA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,YACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,2BACE,gBACA,uCAEA,SACE,SACA,wCAGF,eACE,wCAGF,gBACE,iBACA,qDAGF,UACE,gLAGF,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,iBACA,6DAGF,UACE,CAIA,yFAGF,eACE,8DAGF,gBACE,kBACA,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WVpyEM,kBUsyEN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,4DAGF,kBAGE,yBAGF,aACE,iBAGF,eAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,mBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBZp2EiB,yBYs2EjB,gBACA,kBACA,eACA,gBACA,iBACA,WVt3EI,mDU23ER,oBACE,gBAGF,WACE,gBACA,aACA,sBACA,yBACA,kBACA,gCAEA,gBACE,oBACA,cACA,gBACA,6BAGF,sBACE,8BAGF,MACE,kBACA,aACA,sBACA,iBACA,oBACA,oBACA,mDAGF,eACE,sBV75EI,0BU+5EJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,gBAMF,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAiBA,CAhBA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,kBACA,uBAEA,kBZ59EmB,0BYi+ErB,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,UACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,sCAGF,yBAjBF,aAkBI,iBAIJ,kBACE,eACA,gBACA,iBAGF,aACE,eACA,mBACA,mBACA,aACA,mBACA,kBACA,mBAEA,iCACE,yBAEA,kBACE,mCACA,aAKN,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,sBAIJ,qBACE,WACA,mBACA,cZhjFwB,eYkjFxB,cACA,eACA,oBACA,SACA,iBACA,aACA,SACA,UACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cZrkFwB,eYukFxB,mBACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,eAGF,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,0CACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBZ7oFmB,qCY+oFnB,sEAGF,wBACE,4CAGF,wBZ5oFqB,+EYgpFrB,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,yBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBZxsFmB,cY4sFrB,kBACE,WVxtFM,cU0tFN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cZvuFsB,kGY0uFtB,sBAGE,WVhvFE,kCUovFJ,aZzuFiB,oBY+uFrB,oBACE,iBACA,qBAGF,oBACE,kBACA,CACA,gBACA,CZlwFmB,eYqwFnB,iBACA,wCANA,cACA,CACA,eACA,mBAaA,CAVA,mBZtwFmB,aAaH,iBY+vFhB,CAEA,wBACA,eACA,yDAGF,kBZnxFqB,cYyxFrB,aACE,kBAGF,aZhxFkB,cYkxFhB,8BACA,+BACA,4EAEA,0BAGE,CAHF,uBAGE,CAHF,kBAGE,kDAMA,sBACA,YACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,cACE,0DAEA,aZ9yFY,0BYgzFV,sDAIJ,oBACE,cZtzFc,sMYyzFd,yBAGE,oDAKN,aZh0FgB,0BYs0FhB,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cZ/0Fc,aYi1Fd,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,aZ12Fc,qBYi3FpB,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,aACE,sBACA,WACA,SACA,WZx5FM,gBECA,aU05FN,oBACA,eACA,gBACA,SACA,UACA,kBACA,qBAEA,SACE,qCAGF,cAnBF,cAoBI,oDAIJ,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAKJ,uBACE,2BACA,gDAGF,aZ76FsB,6BY+6FpB,uDAGF,aZ/7F0B,cYm8F1B,YACE,eACA,yBACA,kBACA,cZ77FgB,gBY+7FhB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cZx9FiB,uBY09FjB,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UVh/FE,yBUu/FJ,cACE,kBACA,YACA,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACA,YACA,SACA,2BAIA,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cZ7gGkB,gBY+gGlB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,aZ3hGoB,oBY+hGpB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,YAGF,aACE,cZ3mGgB,6BY6mGhB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,yBAGF,iBACE,eACA,gBACA,cZroGgB,mBAbG,eYqpGnB,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,cZnqGY,qCYuqGd,cACE,gBACA,yBAKN,iBACE,cACA,UACA,gCAEA,sCACE,uCAEA,aACE,WACA,kBACA,aACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,gFACA,wCAIJ,SACE,kBACA,gBAIJ,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,2BACA,4BACA,uBAEA,QACE,SACA,yBACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,aZjvGwB,4CYsvGtB,aZtvGsB,yCYwvGpB,4CAIJ,SAEE,yBAIJ,WACE,aACA,uBAGF,kBACE,iCAGF,iBACE,wBAGF,kBACE,SACA,cZxwGkB,eY0wGlB,eACA,eACA,8BAEA,aACE,CAKA,kEAEA,UVnyGI,mBUqyGF,6BAKN,eACE,gBACA,gBACA,cZhyGkB,0DYkyGlB,UACA,UACA,kBACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,mCAIJ,kBACE,aACA,mCAIA,aZ/zGkB,0BYi0GhB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,sBAGF,oBACE,iBACA,oBAGF,aZh2GkB,eYk2GhB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,gCAGF,kBACE,gBVz+GM,WACA,eU2+GN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,eVv/GQ,cFcY,SY4+GlB,UACA,WACA,YACA,kBACA,wBACA,CADA,oBACA,CADA,eACA,iEAEA,SAGE,cACA,yBAIJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,iBAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,aACE,SACA,QACA,WACA,YACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,0BACA,kBACA,iBACA,WVtjHE,gBUwjHF,eACA,+LAMA,yBACE,mEAKF,yBACE,6BAMR,kBACE,iBAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,aZvlHoB,eYylHlB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SEtmHF,sBACA,WACA,SACA,gBACA,oBACA,mBdhBmB,cAYD,ecOlB,SACA,+EFgmHI,aACE,CEjmHN,qEFgmHI,aACE,CEjmHN,yEFgmHI,aACE,CEjmHN,gEFgmHI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,aZ9nHc,iBYgoHZ,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,aZxpHgB,0HY6pHhB,cAEE,gBACA,cZ/pHY,kZYkqHZ,aAGE,gEAIJ,wBACE,iDAGF,eV3rHI,kBY0BN,CAEA,eACA,cdRiB,uCcUjB,UF8pHI,mBZ1rHoB,oDc8BxB,wBACE,cdbe,ecef,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,WdnDI,sDYksHJ,WACE,mDAGF,UZtsHI,kBYwsHF,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UVxtHQ,kBU0tHN,cACA,mBACA,sBV7tHM,yBU+tHN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,iBAIJ,aACE,iBACA,wBAGF,aZluHoB,qBYouHlB,mBACA,gBACA,sBACA,6EAGF,aZzuHkB,mBAbG,kBY2vHnB,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBAEA,4EAfF,cAgBI,6FAGF,eACE,mFAGF,aZ1wHwB,qBY4wHtB,qGAEA,yBACE,uCAKN,kBACE,aACA,eAGF,qBACE,8BAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA1BF,qBAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,mCAIJ,8BACE,2DACA,CADA,kDACA,iCAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,EA/BF,wBAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,kCAIJ,yBACE,8EACA,CADA,qEACA,8BAGF,eVt2HQ,kBUw2HN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBVl4HM,kBUo4HN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,+BAGE,2DAIJ,WACE,wBAKF,2BACE,cAIJ,kBACE,0BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBZn8HmB,kCYq8HnB,uBAGF,MACE,aACA,mBACA,uBACA,cZ97HqB,eYg8HrB,gBACA,0BACA,kBACA,kBAGF,YACE,cZl8HmB,gBYo8HnB,aACA,sBAEA,cACE,kBACA,uBAGF,cACE,yBACA,gBACA,cACA,0BAIJ,aACE,4BAGF,UACE,WACA,kBACA,mBVj9HsB,kBUm9HtB,eACA,2BAGF,iBACE,OACA,MACA,WACA,mBZ9+HmB,kBYg/HnB,eAGF,aACE,wBACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,SACA,WACA,YACA,CAQE,6GAKN,SACE,oBACA,CADA,WACA,6BAGF,iBACE,gBVliIM,uCUoiIN,kBACA,iBACA,gBACA,iCAEA,yBACE,oCAGF,sBACE,2BAIJ,UZnjIQ,aYqjIN,eACA,aACA,kEAEA,kBZ7iImB,WEXb,UU4jIJ,CV5jII,4RUikIF,UVjkIE,wCUukIN,kBACE,iCAIJ,YACE,mBACA,uBACA,kBACA,oCAGF,aACE,cZhkImB,2CYmkInB,eACE,cACA,WZ1lII,CY+lIA,wQADF,eACE,mDAON,eVrmIM,0BUumIJ,qCACA,gEAEA,eACE,0DAGF,kBZnmIiB,uEYsmIf,UVjnIE,uDUunIN,yBACE,sDAGF,aACE,sCACA,SAIJ,iBACE,gBAGF,SEznIE,sBACA,WACA,SACA,gBACA,oBACA,mBdhBmB,cAYD,ecOlB,SACA,cFmnIA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,sCACA,eACA,WACA,YACA,cZ3qImB,eY6qInB,oBACA,0BAEA,mBACE,WACA,0BAIJ,uBACE,iCAEA,mBACE,uBACA,gCAIJ,QACE,uBACA,cZ/rIkB,eYisIlB,uCAEA,uBACE,sCAGF,aACE,yBAKN,aZhtIkB,mBYktIhB,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,cZxuIc,iCY2uId,oBACE,iBACA,8FAIJ,eAEE,0BAIJ,aACE,aACA,cZxvIqB,qBY0vIrB,+FAEA,aAGE,0BACA,uBAIJ,YACE,cZvwIkB,kBYywIlB,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,0BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,cVjyI0B,eAEC,CU2yI7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,yBACE,sBACA,SACA,WV73IM,eU+3IN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,cZx6IsB,mFY26ItB,yBAGE,wBAKN,oBACE,sBAGF,qBV17IQ,YU47IN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wBZj8I0B,qBYq8I1B,iBACE,UACA,QACA,YACA,6CAGF,kBZ78I0B,WAJlB,kBYs9IN,gBACA,aACA,sBACA,oBAGF,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,mDAGF,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,aZn/ImB,SYs/IjB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,qiBAGF,UZ5hJI,qwDYgiJF,aAGE,sBAMR,sBACE,eAGF,iBACE,eACA,mBACA,sBAEA,eACE,WZnjJI,kBYqjJJ,yBACA,eACA,qBAGF,kBZxjJmB,cAcE,gBY6iJnB,aACA,kBACA,kBAIJ,oBACE,eACA,gBACA,iBACA,wFAGF,kBAME,WZhlJM,kBYklJN,gBACA,eACA,YACA,kBACA,sBACA,4NAEA,aACE,eACA,mBACA,wLAGF,WACE,UACA,kBACA,SACA,WACA,kRAGF,UACE,wBAKF,eV5mJM,CFGkB,gBY4mJtB,oBACA,iEVhnJI,2BFGkB,yBYqnJ1B,iBACE,aACA,iCAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,2GAIJ,YAIE,8BACA,mBZpoJwB,aYsoJxB,iBACA,2HAEA,aACE,iBACA,cZ1nJiB,mBY4nJjB,2IAGF,aACE,6BAIJ,cACE,2BAGF,WACE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,aZxsJwB,iLY4sJxB,UZjtJM,qCYstJN,oDAjBF,eAkBI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,UZhvJI,gBECA,aUkvJJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,eVlwJI,yBUowJF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,UZnxJE,oBYqxJA,eACA,gBVrxJA,+CU0xJJ,YACE,8BACA,mBACA,4CAIJ,aACE,WZnyJI,eYqyJJ,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,UZ9yJI,eYgzJF,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eACE,eACA,wBAEA,eACE,iBACA,2CAGF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,UZ11JE,aY41JA,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBZ/1JW,WEXb,uDUi3JA,iBACE,oMAUR,aACE,iIAIJ,4BAIE,cZj3JmB,eYm3JnB,gBACA,6cAEA,aAGE,6BACA,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,UZt7JI,CYw7JF,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,wBZl8J0B,WYo8JxB,kBACA,MACA,OACA,aACA,6BAGF,aACE,kBACA,WVj9JM,0BUm9JN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,wDAKE,SACE,uBAKN,eACE,6BAEA,UACE,kBAIJ,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cZ5+Jc,iBY8+Jd,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cZ1gKY,gBY4gKZ,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,aZ7hKc,gBYqiKhB,cACA,CACA,iBACA,CACA,UACA,qCANF,qBACE,CACA,eACA,CACA,iBAYA,CAVA,qBAGF,QACE,CACA,aACA,WACA,CACA,iBAEA,qEAGE,cACE,MACA,gCAKN,cACE,cACA,qBACA,cZhkKqB,kBYkkKrB,UACA,mEAEA,WAEE,WACA,CAIA,2DADF,mBACE,CADF,8BACE,CADF,gBV3lKM,CU4lKJ,wBAIJ,UACE,YACA,CACA,iBACA,MACA,OACA,UACA,gBVvmKM,iCU0mKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,qCAGF,cACE,YACA,oBACA,CADA,8BACA,CADA,gBACA,kBACA,QACA,2BACA,WACA,UACA,sCAGF,0BACE,2BACA,gBACA,kBACA,qKAMA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,oCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gBVvsKM,eUysKN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,qBAGF,eACE,gBACA,UACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gBVpxKI,cFcY,gBYywKhB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,0DAEA,aACE,wBAIJ,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,UVn1KE,+EU21KN,cAGE,gBACA,6BAGF,UVl2KM,iBUo2KJ,yBAGF,oBACE,aACA,mDAGF,UV52KM,uBUi3KN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,WVj6KE,sFUo6KF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,kBAON,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,mBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WV3jLF,gBU6jLE,gBACA,uBACA,0CAGF,aACE,eACA,cZvjLU,gBYyjLV,gBACA,uBACA,yBAKN,kBZ5kLiB,aY8kLf,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,6BAOV,YACE,eACA,gBACA,wBAGF,QACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cZ/oLgB,eYipLhB,eACA,gBACA,kBACA,qBACA,kBACA,WACA,mBACA,yJAEA,aZxpLmB,qWY2pLjB,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,cAOV,kBZltLqB,sBYqtLnB,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,2BAKN,eACE,gBAGF,eVxwLQ,kBY0BN,CACA,sBACA,gBACA,cdRiB,uCcUjB,mBAEA,wBACE,cdbe,ecef,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,WdnDI,UY6wLR,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cZxwLmB,gBY0wLnB,gBAEA,aZvxLsB,0BYyxLpB,sBAEA,oBACE,4BAMR,GACE,cACA,eACA,WATM,mBAMR,GACE,cACA,eACA,qEAGF,kBAIE,sBAEE,8BACA,iBAGF,0BACE,kCACA,+BAIA,qDACE,uEACA,+CAGF,sBACE,8BACA,6DAIA,6BACE,6CACA,4EAIF,6BACE,6CACA,+CAOJ,gBAEE,+BAGF,gBACE,6CAEA,0BACE,wDAGF,eACE,6DAGF,iBACE,iBACA,2EAIA,mBACE,UACA,gCACA,WACA,0FAGF,mBACE,UACA,oCACA,eAOV,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBZt5Le,WEDb,eU05LF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,sBAMJ,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cZv7Lc,CY07Ld,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,qBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,uCAEA,SACE,kCAKN,aACE,cACA,mBAIJ,cACE,kBACA,MACA,OACA,WACA,YACA,0BACA,cAGF,kBZpgMqB,sBYsgMnB,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kBZ1jMqB,sBY4jMnB,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,cAIJ,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBV5mMM,yDU+mMN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBVvnMI,uBU2nMN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UVxpMI,eU0pMF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,4BAKN,aZrqMoB,eYuqMlB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WVtyMA,gBUwyMA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cZlyMU,gBYoyMV,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,WVn0ME,gDUu0MJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,aVl1MU,yBUw1Md,cACE,gCAEA,cACE,cZh1Mc,eYk1Md,kCAEA,oBACE,cZr1MY,qBYu1MZ,iBACA,gBACA,yCAEA,eACE,WVz2MF,iBUk3MN,aZp2MgB,mBYs2Md,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cZ93MY,gBYg4MZ,uBACA,mBACA,4BAEA,eACE,uBAGF,aZz4Mc,qBY24MZ,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cZl6MiB,0BYs6MnB,aACE,WACA,2CAEA,mCACE,yBACA,0CAGF,wBACE,eAMR,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,eACA,uBAGF,oBACE,mBZr9MsB,kBYu9MtB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cZl+Mc,kBYo+Md,+BAGF,aZv+MgB,eYy+Md,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UV9/ME,qBUggNA,oHAEA,yBAGE,0BAKN,qBACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UV1hNI,gBUgiNR,kBACE,eACA,aACA,qBACA,0BAEA,WACE,cACA,qCAEA,yBAJF,YAKI,4BAIJ,wBACE,cACA,kBACA,qCAEA,0BALF,UAMI,uBAIJ,qBACE,WACA,aACA,kBACA,eACA,iBACA,qBACA,gBACA,gBACA,gBACA,aACA,sBACA,6BAEA,aACE,gBACA,mBACA,mBACA,8BAGF,iBACE,SACA,WACA,cACA,mBZ9kNoB,kBYglNpB,cACA,eACA,4BAIJ,YACE,cZ9kNgB,kBYglNhB,WACA,QACA,mDAIJ,YACE,oDAGF,UACE,gBAGF,YACE,eACA,mBACA,gBACA,iBACA,wBACA,sBAEA,aACE,mBACA,SACA,kBACA,WACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,cACA,aACA,mBACA,2BACA,2CACA,6BAEA,aACE,aACA,WACA,YACA,iCAEA,aACE,SACA,WACA,YACA,eACA,gBACA,sBACA,sBACA,CADA,gCACA,CADA,kBACA,6BAIJ,aACE,cACA,eACA,gBACA,kBACA,gBACA,cZ5oNc,mFYgpNhB,kBAGE,4BACA,2CACA,wGAEA,aACE,6BAIJ,0BACE,2CACA,yBACA,yDAEA,aACE,uCAKN,UACE,oCAGF,WACE,8BAGF,aZ/qNkB,SYirNhB,eACA,WACA,cACA,cACA,YACA,aACA,mBACA,WACA,2BACA,2CACA,2GAEA,SAGE,cACA,4BACA,2CACA,qCAKF,SACE,OGxtNN,eACE,eACA,UAEA,kBACE,kBACA,cAGF,iBACE,cACA,mBACA,WACA,aACA,sBAEA,kBfHiB,eeQnB,iBACE,aACA,cACA,iBACA,eACA,gBACA,qBAEA,oBACE,qBACA,yBACA,4BACA,oEAGF,YAEE,kCAGF,aACE,gCAGF,aACE,sBACA,WACA,eACA,WfhDE,UekDF,oBACA,gBblDE,yBaoDF,kBACA,iBACA,sCAEA,oBfpDoB,0BeyDtB,cACE,wBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBb3FY,8EagGZ,oBAGE,iBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,cACA,cAGF,aACE,qBACA,oBAEA,cACE,eAIJ,eACE,mBACA,cfvHc,ae2HhB,cACE,uBACA,UACA,SACA,SACA,cfhIc,0BekId,kBACA,mBAEA,oBACE,sCAGF,qCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,4BACE,gCAEA,YACE,2CAGF,4BACE,aACA,aACA,mBACA,mGAEA,YAEE,+GAEA,oBflLoB,sDewLxB,cACE,gBACA,iBACA,YACA,oBACA,cfhLkB,sCemLlB,gCAGF,YACE,mBACA,8CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WftNI,qBewNJ,WACA,UACA,oBACA,qXACA,yBACA,kBACA,CACA,yBACA,mDAGF,aACE,cAIJ,afzNkB,qBe4NhB,+BACE,6BAEA,6BACE,eChPN,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,cCtBJ,cACE,qBACA,WjBDM,2BiBIN,qBAEE,iBACA,+BAGF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mBjBjBsB,4BiBqBxB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,cjBfmB,ciBiBnB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,ajBlD0B,mCiBqDxB,aACE,oDAGF,WACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBjBnEwB,uBiBwExB,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gBf5FM,sBe8FN,sGAEA,+BAEE,oBAKF,2BACA,gBfxGM,0Be2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,gCACA,WjBnHI,yBiBqHJ,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,sCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gBfpKI,mBeyKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,cjBlKiB,mDiBqKjB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,YCrMF,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,iDACE,eACA,gBACA,gBACA,qBACA,clBPkB,oBkBUlB,alBnBwB,0BkBqBtB,6EAEA,oBAGE,wCAIJ,alBrBkB,oBkB0BlB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,clBlCmB,qBkBsCrB,iBACE,clBvCmB,uBkB2CrB,eACE,mBACA,kBACA,kBACA,yHAGF,4CAME,mBACA,oBACA,gBACA,clB3DmB,qBkB+DrB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,clBxIc,iCkB4IhB,uBACE,gBACA,gBACA,clB9IY,qDkBkJd,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,kDACA,eACA,iBACA,WhBpNI,iBgBsNJ,kBACA,qEAEA,aAEE,6CAIA,alBhNiB,oCkBqNnB,4CACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,4CACE,eACA,iBACA,gBACA,clBlPc,mBkBoPd,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAEA,UACE,YACA,CACA,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iCAIJ,cACE,mCAEA,aACE,WhBzSA,qBgB2SA,uDAGE,yBACE,2CAKN,aACE,clBxSY,kCkBgTlB,iDAEE,CACA,eACA,eACA,iBACA,mBACA,clBvTgB,sCkB0ThB,alBnUsB,0BkBqUpB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,4CACE,eACA,iBACA,gBACA,mBACA,clB/UmB,wBkBkVnB,iDACE,cACA,eACA,gBACA,cACA,kBAIJ,4CACE,eACA,iBACA,gBACA,mBACA,clBhWmB,kBkBqWnB,clBrWmB,mCkBoWrB,4CACE,CACA,gBACA,gBACA,mBACA,clBzWmB,kBkB8WnB,clB9WmB,kBkBuXnB,clBvXmB,mCkBsXrB,4CACE,CACA,gBACA,gBACA,mBACA,clB3XmB,kBkBgYnB,clBhYmB,mCkBwYrB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,4CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBlBlcmB,kBkBocjB,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAGF,UACE,YACA,0BACA,mDAGF,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA7DF,iBA8DI,mFAIJ,qBAGE,mBlB3jBiB,kBkB6jBjB,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,alB7kBmB,qCkBilBnB,eACE,WhBjmBE,gBgBmmBF,2CAEA,alBxlBc,gDkB2lBZ,alBzlBe,+CkB+lBnB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,ShBvrBI,YgByrBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,clBpsBc,6BkBwsBhB,eACE,iBACA,+BAGF,kBlBztBiB,akB2tBf,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,4CACE,eACA,gBACA,cACA,qCAGF,cACE,clBnvBY,uFkByvBlB,eACE,cASA,ClBnwBgB,2CkBgwBhB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,clB32BsB,qBkB62BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,clBv2Bc,SmBhBlB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBnBxBmB,UmB6BnB,anB1BwB,0BmB4BtB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBnBjEiB,6BmBmEf,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+CACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,cnB/FkB,gBmBiGlB,0DAEA,UjBhHM,wDiBoHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBnB/JiB,sBmBiKjB,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBnB9KiB,gCmBiLjB,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBnBtMiB,uCmByMf,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,cnBlOY,gBmBoOZ,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,uCAEA,iBACE,sCAGF,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBC7RN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBpBfe,YoBiBf,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SlBxCA,YkB0CE,kBACA,YACA,uCAIJ,aACE,cpBpCY,qBoBsCZ,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,cpB9EY,qBoBgFZ,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UlBzGA,yBkB2GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UlBjIE,yBFWa,gBoByHb,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,apBrMmB,eoBuMjB,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,apBhNmB,eoBkNjB,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,cpB7Nc,mBoB+Nd,kBACA,gCACA,4BAGF,cACE,cpBnOiB,iBoBqOjB,gBACA,0CAGF,UlBxPI,gBkB0PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WlBxQE,oBkB0QF,iBACA,gBACA,gBACA,2BAGF,cACE,iBACA,cpBnQiB,mBoBqQjB,kCAEA,UlBtRE,gBkBwRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,4CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BpBxUe,YoB+UrB,UACE,SACA,cACA,WACA,sDAKA,apBtVkB,0DoByVhB,apBlWsB,4DoBuWxB,alB1Wc,gBkB4WZ,4DAGF,alB9WU,gBkBgXR,0DAGF,apBvWgB,gBoByWd,0DAGF,alBtXU,gBkBwXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,6CAKN,aACE,mBACA,2BAGF,oBACE,cpB3Zc,qBoB6Zd,yBACA,eACA,gBACA,gCACA,iCAEA,UlBhbE,gCkBkbA,oCAGF,apBjboB,gCoBmblB,CAkBJ,gBAIJ,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,cpB/dmB,CoBoef,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,apBzjBwB,qBoB2jBtB,oBAEA,yBACE,SAKN,aACE,YAGF,gBACE,eACA,mBpB5kBmB,gCoB8kBnB,uBAEA,eACE,oBAGF,YACE,2BACA,mBACA,cpB3kBgB,eoB6kBhB,eACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,apBpmBgB,sDoBwmBhB,apBvmBqB,qBoB2mBnB,gBACA,yDAIJ,oBAIE,cpBpnBqB,iGoBunBrB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBlB9qBc,yBkBkrBd,yBACE,wBAGF,yBlBnrBU,wBkBwrBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,apBvrBgB,uBoB6rBhB,wBACA,qBAGF,apBhsBgB,coBqsBlB,kBpBltBqB,kBoBotBnB,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,cpB5tBc,yBoB8tBd,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,alBvvBM,6BkB8vBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,cpBjwBY,mLoBowBZ,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,apB/wBU,iBoBixBR,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,cpB5xBY,WoBmyBpB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,alB71BY,8CkBk2Bd,qBACE,aACA,WlBr2BI,ckB02BR,iBACE,qBAGF,wBACE,kBACA,2BAEA,cACE,mBpBl3BiB,gCoBo3BjB,kCAEA,cACE,cACA,gBACA,eACA,gBACA,cpB72BiB,qBoB+2BjB,mBACA,uHAEA,UlBj4BE,iCkBw4BJ,cACE,cpB33BY,uCoB+3Bd,YACE,8BACA,mBACA,sCAGF,eACE,sBCt5BN,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WnBrCI,6CmBuCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,crBpCgB,kBqBsChB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,arBnEwB,gBqBqEtB,qBACA,UC3EJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,0BAGF,SACE,WACA,0DAGF,iBAEE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,kEACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,kkEC7ZJ,kIACE,CADF,sIACE,qBACA,2GCEQ,SACE,CDHV,iGCEQ,SACE,CDHV,qGCEQ,SACE,CDHV,4FCEQ,SACE,mJAQZ,aAME,0BACA,mMAEA,oBACE,iOAGF,yBACE,CAKE,0zCAIJ,oBAGE,uUAGF,axB3BqB,qBwB6BnB,oCAIJ,yBACE,6HAEA,oBAGE,4BAIJ,yBACE,qGAEA,oBAGE,eAIJ,axBvDoB,yEwB2DpB,+BACE,0D","file":"skins/vanilla/contrast/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#313543 rgba(0,0,0,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#313543;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#353a49}::-webkit-scrollbar-thumb:active{background:#313543}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(0,0,0,.1)}::-webkit-scrollbar-track:hover{background:#282c37}::-webkit-scrollbar-track:active{background:#282c37}::-webkit-scrollbar-corner{background:transparent}body{font-family:\"mastodon-font-sans-serif\",sans-serif;background:#191b22;font-size:13px;line-height:18px;font-weight:400;color:#fff;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",\"mastodon-font-sans-serif\",sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#282c37}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.player{text-align:center}body.embed{background:#313543;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#1f232b;padding:0}body.error{position:absolute;text-align:center;color:#dde3ec;background:#282c37;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog__illustration img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div,.app-holder>noscript{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.app-holder>noscript{height:100vh}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.error-boundary,.app-holder noscript{flex-direction:column;font-size:16px;font-weight:400;line-height:1.7;color:#e25169;text-align:center}.error-boundary>div,.app-holder noscript>div{max-width:500px}.error-boundary p,.app-holder noscript p{margin-bottom:.85em}.error-boundary p:last-child,.app-holder noscript p:last-child{margin-bottom:0}.error-boundary a,.app-holder noscript a{color:#2b90d9}.error-boundary a:hover,.error-boundary a:focus,.error-boundary a:active,.app-holder noscript a:hover,.app-holder noscript a:focus,.app-holder noscript a:active{text-decoration:none}.error-boundary__footer,.app-holder noscript__footer{color:#c2cede;font-size:13px}.error-boundary__footer a,.app-holder noscript__footer a{color:#c2cede}.error-boundary button,.app-holder noscript button{display:inline;border:0;background:transparent;color:#c2cede;font:inherit;padding:0;margin:0;line-height:inherit;cursor:pointer;outline:0;transition:color 300ms linear;text-decoration:underline}.error-boundary button:hover,.error-boundary button:focus,.error-boundary button:active,.app-holder noscript button:hover,.app-holder noscript button:focus,.app-holder noscript button:active{text-decoration:none}.error-boundary button.copied,.app-holder noscript button.copied{color:#79bd9a;transition:none}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#fff;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#fff;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px}.account-header .name{flex:1 1 auto;color:#ecf0f4;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#fff}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#42485a}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#dde3ec;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#fff}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#4a5266;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#535b72}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#ecf0f4}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#0e1014}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#313543;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #313543;background:#17191f}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#313543;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#fff;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#dde3ec}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#dde3ec;padding:10px;border-right:1px solid #313543;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b90d9;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#ecf0f4}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#fff;font-family:\"mastodon-font-display\",sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #42485a}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#dde3ec}.public-layout .public-account-header__extra__links a{display:inline-block;color:#dde3ec;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#4e79df}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#fff}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#dde3ec}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #393f4f}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #393f4f}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#282c37}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#313543}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#737d99}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#737d99}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#dde3ec}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#737d99}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#737d99}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#7f88a2}.compact-header h1{font-size:24px;line-height:28px;color:#dde3ec;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#ecf0f4}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#282c37;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#dde3ec;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#fefefe}.hero-widget__text a{color:#ecf0f4;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#dde3ec}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#dde3ec}.box-widget{padding:20px;border-radius:4px;background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #c2cede;text-align:center;color:#dde3ec;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#dde3ec;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#dde3ec}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#dde3ec;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2);color:#ecf0f4;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#dde3ec}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#dde3ec;margin-bottom:10px}.page-header{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#fff;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#dde3ec}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#313543}.page-header h1{font-size:24px}}.directory{background:#282c37;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#282c37;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#393f4f}.directory__tag.active>a{background:#2b5fd9;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#dde3ec}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#dde3ec}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small,.directory__tag.active h4 .trends__item__current{color:#fff}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#2b5fd9}.directory__tag .trends__item__current{padding-right:0}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#17191f;border:2px solid #282c37}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#dde3ec;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #393f4f}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#fff}.accounts-table__count small{display:block;color:#dde3ec;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #4a5266}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#dde3ec}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#2b5fd9}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#1f232b;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#fff;border-bottom:1px solid #313543}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #313543}code{font-family:\"mastodon-font-monospace\",monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#fff;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#2b90d9;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#dde3ec}.simple_form .hint a{color:#2b90d9}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#0e1014}.simple_form .hint li{list-style:disc;margin-left:18px}.simple_form ul.hint{margin-bottom:15px}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#dde3ec}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#fff;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .input.datetime .label_input select{display:inline-block;width:auto;flex:0}.simple_form .required abbr{text-decoration:none;color:#e87487}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#fff;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#fff;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #c2cede;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#131419;border:1px solid #0a0b0e;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#eaeef3}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#e87487}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#000}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#2b90d9;background:#17191f}.simple_form .input.field_with_errors label{color:#e87487}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#e87487}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#e87487;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#2b5fd9;color:#fff;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#416fdd}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#2454c7}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#e3566d}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#db2a47}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#131419 url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #0a0b0e;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#c2cede;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(19, 20, 25, 0), #131419)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(40,44,55,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#fff}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#393f4f;color:#dde3ec;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#dde3ec;text-decoration:none}.flash-message a:hover{color:#fff;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#282c37;color:#fff;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#313543}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#dde3ec;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#2b90d9;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#4ea2df}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#dde3ec}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#ecf0f4;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#ecf0f4;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#fff;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#dde3ec}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#fff;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:\"mastodon-font-monospace\",monospace}.input-copy{background:#131419;border:1px solid #0a0b0e;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:\"mastodon-font-monospace\",monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#1f232b;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#1f232b;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#393f4f}.card__img{height:130px;position:relative;background:#0e1014;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#313543;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#17191f;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#fff;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#000;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#ecf0f4}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#1a1a1a}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2);color:#364861;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#d9e1e8;background-color:rgba(217,225,232,.1);border:1px solid rgba(217,225,232,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#e87487;background-color:rgba(232,116,135,.1);border-color:rgba(232,116,135,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #42485a;border-bottom:1px solid #42485a;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #42485a}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#ecf0f4;background:rgba(23,25,31,.5)}.account__header__fields dd{flex:1 1 auto;color:#dde3ec}.account__header__fields a{color:#2b90d9;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#dde3ec}.pending-account__header a{color:#d9e1e8;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#fff;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}.activity-stream--under-tabs{border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#282c37}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#393f4f}.button.logo-button{flex:0 auto;font-size:14px;background:#2b5fd9;color:#fff;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#fff}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#5680e1}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.animated-number{display:inline-flex;flex-direction:column;align-items:stretch;overflow:hidden;position:relative}.link-button{display:block;font-size:15px;line-height:20px;color:#2b5fd9;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#2b5fd9;border:10px none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#5680e1;transition:all 200ms ease-out}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled,.button.disabled{background-color:#9baec8;cursor:default}.button::-moz-focus-inner{border:0}.button::-moz-focus-inner,.button:focus,.button:active{outline:0 !important}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#000;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#a8b9cf}.button.button-alternative-2{background:#606984}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#687390}.button.button-secondary{color:#dde3ec;background:transparent;padding:3px 15px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#a8b9cf;color:#eaeef3}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.icon-button{display:inline-block;padding:0;color:#8d9ac2;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#a4afce;background-color:rgba(141,154,194,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(141,154,194,.3)}.icon-button.disabled{color:#6274ab;background-color:transparent;cursor:default}.icon-button.active{color:#2b90d9}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#1b1e25}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#0c0d11;background-color:rgba(27,30,37,.15)}.icon-button.inverted:focus{background-color:rgba(27,30,37,.3)}.icon-button.inverted.disabled{color:#2a2e3a;background-color:transparent}.icon-button.inverted.active{color:#2b90d9}.icon-button.inverted.active.disabled{color:#63ade3}.icon-button.overlayed{box-sizing:content-box;background:rgba(0,0,0,.6);color:rgba(255,255,255,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(0,0,0,.9)}.text-icon-button{color:#1b1e25;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#0c0d11;background-color:rgba(27,30,37,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(27,30,37,.3)}.text-icon-button.disabled{color:#464d60;background-color:transparent;cursor:default}.text-icon-button.active{color:#2b90d9}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.compose-form{padding:10px}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#2b90d9}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#2b90d9;background:#2b90d9}.compose-form .compose-form__warning{color:#000;margin-bottom:10px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.compose-form .compose-form__warning strong{color:#000;font-weight:500}.compose-form .compose-form__warning strong:lang(ja){font-weight:700}.compose-form .compose-form__warning strong:lang(ko){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-CN){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-HK){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-TW){font-weight:700}.compose-form .compose-form__warning a{color:#1b1e25;font-weight:500;text-decoration:underline}.compose-form .compose-form__warning a:hover,.compose-form .compose-form__warning a:active,.compose-form .compose-form__warning a:focus{text-decoration:none}.compose-form .emoji-picker-dropdown{position:absolute;top:0;right:0}.compose-form .compose-form__autosuggest-wrapper{position:relative}.compose-form .autosuggest-textarea,.compose-form .autosuggest-input,.compose-form .spoiler-input{position:relative;width:100%}.compose-form .spoiler-input{height:0;transform-origin:bottom;opacity:0}.compose-form .spoiler-input.spoiler-input--visible{height:36px;margin-bottom:11px;opacity:1}.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0}.compose-form .autosuggest-textarea__textarea::placeholder,.compose-form .spoiler-input__input::placeholder{color:#c2cede}.compose-form .autosuggest-textarea__textarea:focus,.compose-form .spoiler-input__input:focus{outline:0}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{font-size:16px}}.compose-form .spoiler-input__input{border-radius:4px}.compose-form .autosuggest-textarea__textarea{min-height:100px;border-radius:4px 4px 0 0;padding-bottom:0;padding-right:32px;resize:none;scrollbar-color:initial}.compose-form .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.compose-form .autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.compose-form .autosuggest-textarea__suggestions{box-sizing:border-box;display:none;position:absolute;top:100%;width:100%;z-index:99;box-shadow:4px 4px 6px rgba(0,0,0,.4);background:#d9e1e8;border-radius:0 0 4px 4px;color:#000;font-size:14px;padding:6px}.compose-form .autosuggest-textarea__suggestions.autosuggest-textarea__suggestions--visible{display:block}.compose-form .autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.compose-form .autosuggest-textarea__suggestions__item:hover,.compose-form .autosuggest-textarea__suggestions__item:focus,.compose-form .autosuggest-textarea__suggestions__item:active,.compose-form .autosuggest-textarea__suggestions__item.selected{background:#b9c8d5}.compose-form .autosuggest-account,.compose-form .autosuggest-emoji,.compose-form .autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.compose-form .autosuggest-hashtag{justify-content:space-between}.compose-form .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-hashtag strong{font-weight:500}.compose-form .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-account-icon,.compose-form .autosuggest-emoji img{display:block;margin-right:8px;width:16px;height:16px}.compose-form .autosuggest-account .display-name__account{color:#1b1e25}.compose-form .compose-form__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.compose-form .compose-form__modifiers .compose-form__upload-wrapper{overflow:hidden}.compose-form .compose-form__modifiers .compose-form__uploads-wrapper{display:flex;flex-direction:row;padding:5px;flex-wrap:wrap}.compose-form .compose-form__modifiers .compose-form__upload{flex:1 1 0;min-width:40%;margin:5px}.compose-form .compose-form__modifiers .compose-form__upload__actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button{flex:0 1 auto;color:#ecf0f4;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:hover,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:focus,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:active{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload__actions.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-description{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);padding:10px;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload-description textarea{background:transparent;color:#ecf0f4;border:0;padding:0;margin:0;width:100%;font-family:inherit;font-size:14px;font-weight:500}.compose-form .compose-form__modifiers .compose-form__upload-description textarea:focus{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload-description textarea::placeholder{opacity:.75;color:#ecf0f4}.compose-form .compose-form__modifiers .compose-form__upload-description.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-thumbnail{border-radius:4px;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;height:140px;width:100%;overflow:hidden}.compose-form .compose-form__buttons-wrapper{padding:10px;background:#ebebeb;border-radius:0 0 4px 4px;display:flex;justify-content:space-between;flex:0 0 auto}.compose-form .compose-form__buttons-wrapper .compose-form__buttons{display:flex}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__upload-button-icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button{display:none}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button.compose-form__sensitive-button--visible{display:block}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button .compose-form__sensitive-button__icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .icon-button,.compose-form .compose-form__buttons-wrapper .text-icon-button{box-sizing:content-box;padding:0 3px}.compose-form .compose-form__buttons-wrapper .character-counter__wrapper{align-self:center;margin-right:4px}.compose-form .compose-form__publish{display:flex;justify-content:flex-end;min-width:0;flex:0 0 auto}.compose-form .compose-form__publish .compose-form__publish-button-wrapper{overflow:hidden;padding-top:10px}.character-counter{cursor:default;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:600;color:#1b1e25}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .spoiler-input{transition:height .4s ease,opacity .4s ease}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.reply-indicator{border-radius:4px;margin-bottom:10px;background:#9baec8;padding:10px;min-height:23px;overflow-y:auto;flex:0 2 auto}.reply-indicator__header{margin-bottom:5px;overflow:hidden}.reply-indicator__cancel{float:right;line-height:24px}.reply-indicator__display-name{color:#000;display:block;max-width:100%;line-height:24px;overflow:hidden;padding-right:25px;text-decoration:none}.reply-indicator__display-avatar{float:left;margin-right:5px}.status__content--with-action{cursor:pointer}.status__content,.reply-indicator__content{position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:hidden;text-overflow:ellipsis;padding-top:2px;color:#fff}.status__content:focus,.reply-indicator__content:focus{outline:0}.status__content.status__content--with-spoiler,.reply-indicator__content.status__content--with-spoiler{white-space:normal}.status__content.status__content--with-spoiler .status__content__text,.reply-indicator__content.status__content--with-spoiler .status__content__text{white-space:pre-wrap}.status__content .emojione,.reply-indicator__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img,.reply-indicator__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.reply-indicator__content p{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.reply-indicator__content p:last-child{margin-bottom:0}.status__content a,.reply-indicator__content a{color:#d8a070;text-decoration:none}.status__content a:hover,.reply-indicator__content a:hover{text-decoration:underline}.status__content a:hover .fa,.reply-indicator__content a:hover .fa{color:#dae1ea}.status__content a.mention:hover,.reply-indicator__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span,.reply-indicator__content a.mention:hover span{text-decoration:underline}.status__content a .fa,.reply-indicator__content a .fa{color:#c2cede}.status__content a.unhandled-link,.reply-indicator__content a.unhandled-link{color:#4e79df}.status__content .status__content__spoiler-link,.reply-indicator__content .status__content__spoiler-link{background:#8d9ac2}.status__content .status__content__spoiler-link:hover,.reply-indicator__content .status__content__spoiler-link:hover{background:#a4afce;text-decoration:none}.status__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner{border:0}.status__content .status__content__spoiler-link::-moz-focus-inner,.status__content .status__content__spoiler-link:focus,.status__content .status__content__spoiler-link:active,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link:focus,.reply-indicator__content .status__content__spoiler-link:active{outline:0 !important}.status__content .status__content__text,.reply-indicator__content .status__content__text{display:none}.status__content .status__content__text.status__content__text--visible,.reply-indicator__content .status__content__text.status__content__text--visible{display:block}.announcements__item__content{word-wrap:break-word;overflow-y:auto}.announcements__item__content .emojione{width:20px;height:20px;margin:-3px 0 0}.announcements__item__content p{margin-bottom:10px;white-space:pre-wrap}.announcements__item__content p:last-child{margin-bottom:0}.announcements__item__content a{color:#ecf0f4;text-decoration:none}.announcements__item__content a:hover{text-decoration:underline}.announcements__item__content a.mention:hover{text-decoration:none}.announcements__item__content a.mention:hover span{text-decoration:underline}.announcements__item__content a.unhandled-link{color:#4e79df}.status__content.status__content--collapsed{max-height:300px}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#4e79df;border:0;background:transparent;padding:0;padding-top:8px;text-decoration:none}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:transparent;border:0;color:#000;font-weight:700;font-size:11px;padding:0 6px;text-transform:uppercase;line-height:20px;cursor:pointer;vertical-align:middle}.status__wrapper--filtered{color:#c2cede;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #393f4f}.status__prepend-icon-wrapper{left:-26px;position:absolute}.focusable:focus{outline:0;background:#313543}.focusable:focus .status.status-direct{background:#42485a}.focusable:focus .status.status-direct.muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#393f4f}.status{padding:8px 10px;padding-left:68px;position:relative;min-height:54px;border-bottom:1px solid #393f4f;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:26px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#393f4f;border-bottom-color:#42485a}.status.light .status__relative-time{color:#364861}.status.light .status__display-name{color:#000}.status.light .display-name{color:#364861}.status.light .display-name strong{color:#000}.status.light .status__content{color:#000}.status.light .status__content a{color:#2b90d9}.status.light .status__content a.status__content__spoiler-link{color:#fff;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#b5c3d6}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#b8c0d9}.status__relative-time,.notification__relative_time{color:#c2cede;float:right;font-size:14px}.status__display-name{color:#c2cede}.status__info .status__display-name{display:block;max-width:100%;padding-right:25px}.status__info{font-size:15px}.status-check-box{border-bottom:1px solid #d9e1e8;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1;overflow:hidden}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-left:68px;color:#c2cede;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#c2cede}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#8d9ac2}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#313543;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .status__content .status__content__spoiler-link{line-height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#c2cede;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.reply-indicator__content{color:#000;font-size:14px}.reply-indicator__content a{color:#1b1e25}.domain{padding:10px;border-bottom:1px solid #393f4f}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#fff;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}.account{padding:10px;border-bottom:1px solid #393f4f}.account.compact{padding:0;border-bottom:0}.account.compact .account__avatar-wrapper{margin-left:0}.account .account__display-name{flex:1 1 auto;display:block;color:#dde3ec;overflow:hidden;text-decoration:none;font-size:14px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;position:relative}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;border-radius:50%;overflow:hidden;position:relative}.account__avatar-composite>div{float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}a .account__avatar{cursor:pointer}.account__avatar-overlay{width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__disclaimer{padding:10px;border-top:1px solid #393f4f;color:#c2cede}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-dropdown{padding:10px}.account__action-bar-dropdown .icon-button{vertical-align:middle}.account__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__right{left:6px;right:initial}.account__action-bar-dropdown .dropdown--active::after{bottom:initial;margin-left:11px;margin-top:-7px;right:initial}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-right:1px solid #393f4f;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab.active{border-bottom:4px solid #2b5fd9}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#dde3ec}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#fff}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#fff}.muted .emojione{opacity:.5}.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,a.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#ecf0f4;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#fff}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{height:48px;left:10px;position:absolute;top:10px;width:48px}.status__expand{width:68px;position:absolute;left:0;top:0;height:100%;cursor:pointer}.muted .status__content,.muted .status__content p,.muted .status__content a{color:#c2cede}.muted .status__display-name strong{color:#c2cede}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#606984;color:#000}.muted a.status__content__spoiler-link:hover{background:#707b97;text-decoration:none}.notification__message{margin:0 10px 0 68px;padding:8px 0 0;cursor:default;color:#dde3ec;font-size:15px;line-height:22px;position:relative}.notification__message .fa{color:#2b90d9}.notification__message>span{display:inline;overflow:hidden;text-overflow:ellipsis}.notification__favourite-icon-wrapper{left:-26px;position:absolute}.notification__favourite-icon-wrapper .star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#fff;text-decoration:underline}.notification__relative_time{float:right}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.navigation-bar{padding:10px;display:flex;align-items:center;flex-shrink:0;cursor:default;color:#dde3ec}.navigation-bar strong{color:#ecf0f4}.navigation-bar a{color:inherit}.navigation-bar .permalink{text-decoration:none}.navigation-bar .navigation-bar__actions{position:relative}.navigation-bar .navigation-bar__actions .icon-button.close{position:absolute;pointer-events:none;transform:scale(0, 1) translate(-100%, 0);opacity:0}.navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:auto;transform:scale(1, 1) translate(0, 0);opacity:1}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;line-height:20px;margin-top:-1px;overflow:hidden}.navigation-bar__profile-account{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile-edit{color:inherit;text-decoration:none}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #c0cdd9;margin:5px 7px 6px;height:0}.dropdown-menu{background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);z-index:9999}.dropdown-menu ul{list-style:none}.dropdown-menu.left{transform-origin:100% 50%}.dropdown-menu.top{transform-origin:50% 100%}.dropdown-menu.bottom{transform-origin:50% 0}.dropdown-menu.right{transform-origin:0 50%}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#d9e1e8}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#d9e1e8}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#2b5fd9;color:#ecf0f4;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#2b5fd9;color:#ecf0f4}.dropdown__icon{vertical-align:middle}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area.unscrollable{overflow-x:hidden}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#17191f;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .drawer,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:350px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#282c37;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.drawer{width:330px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden}.drawer__tab{display:block;flex:1 1 auto;padding:15px 5px 13px;color:#dde3ec;text-decoration:none;text-align:center;font-size:16px;border-bottom:2px solid transparent}.column,.drawer{flex:1 1 auto;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#393f4f;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#fff;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #393f4f;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.tabs-bar__link:hover,.tabs-bar__link:focus,.tabs-bar__link:active{background:#464d60;border-bottom-color:#464d60}}.tabs-bar__link.active{border-bottom:2px solid #2b90d9;color:#2b90d9}.tabs-bar__link span{margin-left:5px;display:none}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;height:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px 15px 15px 78px;min-height:50px}.columns-area--mobile .status__avatar{left:15px;top:17px}.columns-area--mobile .status__content{padding-top:5px}.columns-area--mobile .status__prepend{margin-left:78px;padding-top:15px}.columns-area--mobile .status__prepend-icon-wrapper{left:-32px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{margin-left:78px;padding-top:15px}.columns-area--mobile .notification__favourite-icon-wrapper{left:-32px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}.columns-area--mobile .notification .account__avatar-wrapper{margin-left:17px;margin-right:15px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#2558d0;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#4976de}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.getting-started__trends,.search{margin-bottom:10px}.getting-started__panel{margin:10px 0}.column,.drawer{min-width:330px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#2b5fd9;border:2px solid #393f4f;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#fff}.column-link--transparent .icon-with-badge__badge{border-color:#17191f}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .navigation-bar{padding-top:20px;padding-bottom:20px;flex:0 1 48px;min-height:20px}.compose-panel .flex-spacer{background:transparent}.compose-panel .compose-form{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px;padding-bottom:71px;margin-bottom:-71px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #313543;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#444b5d;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%;border-radius:2px}.drawer__inner.darker{background:#282c37}.drawer__inner__mastodon{background:#444b5d url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:85%;height:100%;pointer-events:none;user-drag:none;user-select:none}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#444b5d;font-size:13px;text-align:left}.drawer__header{flex:0 0 auto;font-size:16px;background:#393f4f;margin-bottom:10px;display:flex;flex-direction:row;border-radius:2px}.drawer__header a{transition:background 100ms ease-in}.drawer__header a:hover{background:#2e3340;transition:background 200ms ease-out}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.column-back-button{box-sizing:border-box;width:100%;background:#313543;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;line-height:inherit;border:0;text-align:unset;padding:15px;margin:0;z-index:3;outline:0}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#313543;border:0;font-family:inherit;color:#2b90d9;cursor:pointer;white-space:nowrap;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#282c37;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#131419}.react-toggle--checked .react-toggle-track{background-color:#2b5fd9}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#5680e1}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #282c37;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#2b5fd9}.column-link{background:#393f4f;color:#fff;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#404657}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#d9e1e8}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#fff}.column-link--transparent.active{color:#2b5fd9}.column-link__icon{display:inline-block;margin-right:5px}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#282c37;padding:4px 8px;margin:-6px 10px}.column-subheading{background:#282c37;color:#c2cede;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.getting-started__wrapper,.getting-started,.flex-spacer{background:#282c37}.flex-spacer{flex:1 1 auto}.getting-started{color:#c2cede;overflow:auto;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.getting-started__wrapper,.getting-started__panel,.getting-started__footer{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex-grow:0}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#c2cede;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#dde3ec}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__wrapper,.getting-started__footer{color:#c2cede}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#dde3ec;padding:10px;font-weight:500;border-bottom:1px solid #393f4f}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#dde3ec}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#393f4f;border:1px solid #1f232b}.setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0;border-radius:4px}.setting-text:focus{outline:0}@media screen and (max-width: 600px){.setting-text{font-size:16px}}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#8d9ac2;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#2b90d9}.status-card{display:flex;font-size:14px;border:1px solid #393f4f;border-radius:4px;color:#c2cede;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#ecf0f4;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}a.status-card{cursor:pointer}a.status-card:hover{background:#393f4f}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#dde3ec;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#dde3ec}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#393f4f;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#313543}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#313543}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.load-more{display:block;color:#c2cede;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#2c313d}.load-gap{border-bottom:1px solid #393f4f}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#c2cede;background:#282c37;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#c2cede}.regeneration-indicator__label span{font-size:15px;font-weight:400}.column-header__wrapper{position:relative;flex:0 0 auto;z-index:1}.column-header__wrapper.active{box-shadow:0 1px 0 rgba(43,144,217,.3)}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;bottom:-13px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(43, 95, 217, 0.23) 0%, rgba(43, 95, 217, 0) 60%)}.column-header__wrapper .announcements{z-index:1;position:relative}.column-header{display:flex;font-size:16px;background:#313543;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden;border-top-left-radius:2px;border-top-right-radius:2px}.column-header>button{margin:0;border:0;padding:15px 0 15px 15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#2b90d9}.column-header.active .column-header__icon{color:#2b90d9;text-shadow:0 0 10px rgba(43,144,217,.4)}.column-header:focus,.column-header:active{outline:0}.column-header__buttons{height:48px;display:flex}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button{background:#313543;border:0;color:#dde3ec;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover{color:#f4f6f9}.column-header__button.active{color:#fff;background:#393f4f}.column-header__button.active:hover{color:#fff;background:#393f4f}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#dde3ec;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1;z-index:1;position:relative}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #42485a;margin:10px 0}.column-header__collapsible-inner{background:#393f4f;padding:15px}.column-header__setting-btn:hover{color:#dde3ec;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.column-header__icon{display:inline-block;margin-right:5px}.loading-indicator{color:#c2cede;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #606984;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#606984}29%{background-color:#606984}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.video-error-cover{align-items:center;background:#000;color:#fff;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#000;color:#dde3ec;border:0;padding:0;width:100%;height:100%;border-radius:4px;appearance:none}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{padding:0;color:#f7f9fb}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:700}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:block;left:4px;top:4px;width:auto;height:auto}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(0,0,0,.5);border-radius:8px;padding:8px 12px;color:#fff;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(0,0,0,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(0,0,0,.5)}.modal-container--preloader{background:#393f4f}.account--panel{background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#393f4f;padding:15px}.column-settings__section{color:#dde3ec;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#282c37;color:#dde3ec;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#eaeef3}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#313543}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#c2cede;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#393f4f}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#42485a;color:#eaeef3}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#dde3ec}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#c2cede}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#d0d9e5}.column-settings__hashtags .column-select__indicator-separator{background-color:#393f4f}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#364861;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#d9e1e8}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#364861;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#000}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#000;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#b9c8d5}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#fff;margin-bottom:4px;display:block;vertical-align:top;background-color:#000;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.setting-toggle{display:block;line-height:24px}.setting-toggle__label{color:#dde3ec;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{color:#c2cede;background:#282c37;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{contain:strict}}.empty-column-indicator>span,.error-column>span,.follow_requests-unlocked_explanation>span{max-width:400px}.empty-column-indicator a,.error-column a,.follow_requests-unlocked_explanation a{color:#2b90d9;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover,.follow_requests-unlocked_explanation a:hover{text-decoration:underline}.follow_requests-unlocked_explanation{background:#1f232b;contain:initial}.error-column{flex-direction:column}@keyframes heartbeat{from{transform:scale(1);animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.no-reduce-motion .pulse-loading{transform-origin:center center;animation:heartbeat 1.5s ease-in-out infinite both}@keyframes shake-bottom{0%,100%{transform:rotate(0deg);transform-origin:50% 100%}10%{transform:rotate(2deg)}20%,40%,60%{transform:rotate(-4deg)}30%,50%,70%{transform:rotate(4deg)}80%{transform:rotate(-2deg)}90%{transform:rotate(2deg)}}.no-reduce-motion .shake-bottom{transform-origin:50% 100%;animation:shake-bottom .8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(217,225,232,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.upload-area{align-items:center;background:rgba(0,0,0,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#282c37;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#ecf0f4;font-size:18px;font-weight:500;border:2px dashed #606984;border-radius:4px}.upload-progress{padding:10px;color:#1b1e25;overflow:hidden;display:flex}.upload-progress .fa{font-size:34px;margin-right:10px}.upload-progress span{font-size:12px;text-transform:uppercase;font-weight:500;display:block}.upload-progess__message{flex:1 1 auto}.upload-progress__backdrop{width:100%;height:6px;border-radius:6px;background:#606984;position:relative;margin-top:5px}.upload-progress__tracker{position:absolute;left:0;top:0;height:6px;background:#2b5fd9;border-radius:6px}.emoji-button{display:block;padding:5px 5px 2px 2px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.dropdown--active .emoji-button img{opacity:1;filter:none}.privacy-dropdown__dropdown{position:absolute;background:#fff;box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:4px;margin-left:40px;overflow:hidden}.privacy-dropdown__dropdown.top{transform-origin:50% 100%}.privacy-dropdown__dropdown.bottom{transform-origin:50% 0}.privacy-dropdown__option{color:#000;padding:10px;cursor:pointer;display:flex}.privacy-dropdown__option:hover,.privacy-dropdown__option.active{background:#2b5fd9;color:#fff;outline:0}.privacy-dropdown__option:hover .privacy-dropdown__option__content,.privacy-dropdown__option.active .privacy-dropdown__option__content{color:#fff}.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,.privacy-dropdown__option.active .privacy-dropdown__option__content strong{color:#fff}.privacy-dropdown__option.active:hover{background:#3c6cdc}.privacy-dropdown__option__icon{display:flex;align-items:center;justify-content:center;margin-right:10px}.privacy-dropdown__option__content{flex:1 1 auto;color:#1b1e25}.privacy-dropdown__option__content strong{font-weight:500;display:block;color:#000}.privacy-dropdown__option__content strong:lang(ja){font-weight:700}.privacy-dropdown__option__content strong:lang(ko){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-CN){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-HK){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-TW){font-weight:700}.privacy-dropdown.active .privacy-dropdown__value{background:#fff;border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1)}.privacy-dropdown.active .privacy-dropdown__value .icon-button{transition:none}.privacy-dropdown.active .privacy-dropdown__value.active{background:#2b5fd9}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#fff}.privacy-dropdown.active.top .privacy-dropdown__value{border-radius:0 0 4px 4px}.privacy-dropdown.active .privacy-dropdown__dropdown{display:block;box-shadow:2px 4px 6px rgba(0,0,0,.1)}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#282c37;color:#dde3ec;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#eaeef3}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#313543}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:transform,opacity;font-size:18px;width:18px;height:18px;color:#ecf0f4;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(90deg)}.search__icon .fa-search.active{pointer-events:none;transform:rotate(0deg)}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#8d9ac2;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#a4afce}.search-results__header{color:#c2cede;background:#2c313d;padding:15px;font-weight:500;font-size:16px;cursor:default}.search-results__header .fa{display:inline-block;margin-right:5px}.search-results__section{margin-bottom:5px}.search-results__section h5{background:#1f232b;border-bottom:1px solid #393f4f;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#c2cede}.search-results__section h5 .fa{display:inline-block;margin-right:5px}.search-results__section .account:last-child,.search-results__section>div:last-child .status{border-bottom:0}.search-results__hashtag{display:block;padding:10px;color:#ecf0f4;text-decoration:none}.search-results__hashtag:hover,.search-results__hashtag:active,.search-results__hashtag:focus{color:#f9fafb;text-decoration:underline}.search-results__info{padding:20px;color:#dde3ec;text-align:center}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(0,0,0,.5);box-sizing:border-box;border:0;color:#fff;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#d9e1e8}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#2b90d9}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.onboarding-modal,.error-modal,.embed-modal{background:#d9e1e8;color:#000;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#c0cdd9;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#1b1e25;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#131419;background-color:#a6b9c9}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#000}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#0a0a0a}.error-modal__footer{justify-content:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#000;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#282c37;color:#ecf0f4;font-weight:500;padding:10px;border-radius:4px}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#f2f5f7;color:#000;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:block;max-width:100%;padding-right:25px}.boost-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:28px;left:10px;position:absolute;top:10px;width:48px}.boost-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#fff}.actions-modal .status{background:#fff;border-bottom-color:#d9e1e8;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#d9e1e8}.boost-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#d9e1e8;padding:10px;line-height:36px}.boost-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#1b1e25;padding-right:10px}.boost-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header{font-size:15px}.boost-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #d9e1e8}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#2b90d9}.report-modal__statuses .status__content,.report-modal__statuses .status__content p,.focal-point-modal__content .status__content,.focal-point-modal__content .status__content p{color:#000}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #d9e1e8;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #d9e1e8;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #c0cdd9}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #d9e1e8;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#000;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#000;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#000;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#2b5fd9;color:#fff}.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#1b1e25;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#131419;background-color:transparent}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#000;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.loading-bar{background-color:#2b90d9;height:3px;position:absolute;top:0;left:0;z-index:9999}.media-gallery__gifv__label{display:block;position:absolute;color:#fff;background:rgba(0,0,0,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{margin-top:32px}.media-gallery__audio audio{width:100%}.attachment-list{display:flex;font-size:14px;border:1px solid #393f4f;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#c2cede;padding:8px 18px;cursor:default;border-right:1px solid #393f4f;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#c2cede;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#c2cede}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%}.media-gallery__item{border:0;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#ecf0f4;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%}.media-gallery__item-thumbnail img{object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#000}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;object-fit:cover;position:relative;top:50%;transform:translateY(-50%);width:100%;z-index:1}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#17191f;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #313543;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(78,121,223,.5)}.audio-player__wave-placeholder{background-color:#4a5266}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#17191f;border-top:1px solid #313543;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.video-player video{max-width:100vw;max-height:80vh;z-index:1}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#dde3ec;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#f4f6f9}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#4e79df}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#4e79df;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#4e79df}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#4e79df;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#0e1014;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#313543;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#17191f;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#282c37;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #393f4f;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:0;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#1f232b;border-bottom:1px solid #393f4f;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#1f232b;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#dde3ec;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative;width:100%;white-space:nowrap}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#ecf0f4}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #393f4f}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #282c37}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#242731;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #191b22}.filter-form{background:#282c37}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#4e79df;background:#4e79df}::-webkit-scrollbar-thumb{border-radius:0}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#364861;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#364861;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#000}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#ecf0f4;max-width:400px}noscript div a{color:#2b90d9;text-decoration:underline}noscript div a:hover{text-decoration:none}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}@media screen and (max-width: 630px)and (max-height: 400px){.tabs-bar,.search{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar{will-change:padding-bottom;transition:padding-bottom 400ms 100ms}.navigation-bar>a:first-child{will-change:margin-top,margin-left,margin-right,width;transition:margin-top 400ms 100ms,margin-left 400ms 500ms,margin-right 400ms 500ms}.navigation-bar>.navigation-bar__profile-edit{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar .navigation-bar__actions>.icon-button.close{will-change:opacity transform;transition:opacity 200ms 100ms,transform 400ms 100ms}.navigation-bar .navigation-bar__actions>.compose__action-bar .icon-button{will-change:opacity transform;transition:opacity 200ms 300ms,transform 400ms 100ms}.is-composing .tabs-bar,.is-composing .search{margin-top:-50px}.is-composing .navigation-bar{padding-bottom:0}.is-composing .navigation-bar>a:first-child{margin:-100px 10px 0 -50px}.is-composing .navigation-bar .navigation-bar__profile{padding-top:2px}.is-composing .navigation-bar .navigation-bar__profile-edit{position:absolute;margin-top:-60px}.is-composing .navigation-bar .navigation-bar__actions .icon-button.close{pointer-events:auto;opacity:1;transform:scale(1, 1) translate(0, 0);bottom:5px}.is-composing .navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:none;opacity:0;transform:scale(0, 1) translate(100%, 0)}}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#282c37;color:#fff;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#313543}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f}.account__moved-note__message{position:relative;margin-left:58px;color:#c2cede;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.column-inline-form{padding:15px;padding-right:0;display:flex;justify-content:flex-start;align-items:center;background:#313543}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 10px}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.list-editor{background:#282c37;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#444b5d;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#282c37;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#444b5d}.list-adder__lists{background:#444b5d;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #393f4f}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#fff;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.account__header__content{color:#dde3ec;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#1f232b}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#313543;padding:5px;border-bottom:1px solid #42485a}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#17191f;border:2px solid #313543}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #42485a;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#fff}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #42485a}.account__header__bio .account__header__fields a{color:#4e79df}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#dde3ec;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#dde3ec;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#fff}.trends__header{color:#c2cede;background:#2c313d;border-bottom:1px solid #1f232b;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #393f4f}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#c2cede;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#dde3ec;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#ecf0f4}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(43,144,217,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#459ede !important}.conversation{display:flex;border-bottom:1px solid #393f4f;padding:5px;padding-bottom:0}.conversation:focus{background:#2c313d;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative;cursor:pointer}.conversation__unread{display:inline-block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#dde3ec;padding-left:15px}.conversation__content__names{color:#dde3ec;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#fff;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content a{word-break:break-word}.conversation--unread{background:#2c313d}.conversation--unread:focus{background:#313543}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#fff}.announcements{background:#393f4f;font-size:13px;display:flex;align-items:flex-end}.announcements__mastodon{width:124px;flex:0 0 auto}@media screen and (max-width: 424px){.announcements__mastodon{display:none}}.announcements__container{width:calc(100% - 124px);flex:0 0 auto;position:relative}@media screen and (max-width: 424px){.announcements__container{width:100%}}.announcements__item{box-sizing:border-box;width:100%;padding:15px;position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;max-height:50vh;overflow:hidden;display:flex;flex-direction:column}.announcements__item__range{display:block;font-weight:500;margin-bottom:10px;padding-right:18px}.announcements__item__unread{position:absolute;top:19px;right:19px;display:block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem}.announcements__pagination{padding:15px;color:#dde3ec;position:absolute;bottom:3px;right:0}.layout-multiple-columns .announcements__mastodon{display:none}.layout-multiple-columns .announcements__container{width:100%}.reactions-bar{display:flex;flex-wrap:wrap;align-items:center;margin-top:15px;margin-left:-2px;width:calc(100% - (90px - 33px))}.reactions-bar__item{flex-shrink:0;background:#42485a;border:0;border-radius:3px;margin:2px;cursor:pointer;user-select:none;padding:0 6px;display:flex;align-items:center;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar__item__emoji{display:block;margin:3px 0;width:16px;height:16px}.reactions-bar__item__emoji img{display:block;margin:0;width:100%;height:100%;min-width:auto;min-height:auto;vertical-align:bottom;object-fit:contain}.reactions-bar__item__count{display:block;min-width:9px;font-size:13px;font-weight:500;text-align:center;margin-left:6px;color:#dde3ec}.reactions-bar__item:hover,.reactions-bar__item:focus,.reactions-bar__item:active{background:#4a5266;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar__item:hover__count,.reactions-bar__item:focus__count,.reactions-bar__item:active__count{color:#eaeef3}.reactions-bar__item.active{transition:all 100ms ease-in;transition-property:background-color,color;background-color:#3d4d73}.reactions-bar__item.active .reactions-bar__item__count{color:#4ea2df}.reactions-bar .emoji-picker-dropdown{margin:2px}.reactions-bar:hover .emoji-button{opacity:.85}.reactions-bar .emoji-button{color:#dde3ec;margin:0;font-size:16px;width:auto;flex-shrink:0;padding:0 6px;height:22px;display:flex;align-items:center;opacity:.5;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar .emoji-button:hover,.reactions-bar .emoji-button:active,.reactions-bar .emoji-button:focus{opacity:1;color:#eaeef3;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar--empty .emoji-button{padding:0}.poll{margin-top:16px;font-size:14px}.poll li{margin-bottom:10px;position:relative}.poll__chart{border-radius:4px;display:block;background:#8ba1bf;height:5px;min-width:1%}.poll__chart.leading{background:#2b5fd9}.poll__option{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__option__text{display:inline-block;word-wrap:break-word;overflow-wrap:break-word;max-width:calc(100% - 45px - 25px)}.poll__option input[type=radio],.poll__option input[type=checkbox]{display:none}.poll__option .autossugest-input{flex:1 1 auto}.poll__option input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#000;outline:0;font-family:inherit;background:#fff;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px}.poll__option input[type=text]:focus{border-color:#2b90d9}.poll__option.selectable{cursor:pointer}.poll__option.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-color:#acd6c1;border-width:4px}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:45px;font-weight:700;flex:0 0 45px}.poll__voted{padding:0 5px;display:inline-block}.poll__voted__mark{font-size:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#c2cede}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#c2cede;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(194,206,222,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #ebebeb}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #ebebeb;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#2b90d9}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#8d9ac2;border-color:#8d9ac2;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__option{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#000;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#dbdbdb}.muted .poll{color:#c2cede}.muted .poll__chart{background:rgba(109,137,175,.2)}.muted .poll__chart.leading{background:rgba(43,95,217,.2)}.modal-layout{background:#282c37 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.emoji-mart{font-size:13px;display:inline-block;color:#000}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #c0cdd9}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#d9e1e8}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#1b1e25;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#131419}.emoji-mart-anchor-selected{color:#2b90d9}.emoji-mart-anchor-selected:hover{color:#2485cb}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:-1px}.emoji-mart-anchor-bar{position:absolute;bottom:-5px;left:0;width:100%;height:4px;background-color:#2b90d9}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(217,225,232,.3);color:#000;border:1px solid #d9e1e8;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(217,225,232,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#364861}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#dde3ec}.rich-formatting a{color:#2b90d9;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#dde3ec}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#ecf0f4}.rich-formatting em{font-style:italic;color:#ecf0f4}.rich-formatting code{font-size:.85em;background:#17191f;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:\"mastodon-font-display\",sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#ecf0f4}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #313543;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #313543;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#dde3ec}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#c2cede}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#1f232b;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;line-height:28px;color:#fff;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#ecf0f4}.information-board__section strong{font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#17191f;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#dde3ec;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #313543;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#bcc9da}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#fff;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#dde3ec}.landing-page p,.landing-page li{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#dde3ec}.landing-page p a,.landing-page li a{color:#2b90d9;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#fefefe}.landing-page h1{font-family:\"mastodon-font-display\",sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h1 small{font-family:\"mastodon-font-sans-serif\",sans-serif;display:block;font-size:18px;font-weight:400;color:#fefefe}.landing-page h2{font-family:\"mastodon-font-display\",sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h3{font-family:\"mastodon-font-display\",sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h4{font-family:\"mastodon-font-display\",sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h5{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h6{font-family:\"mastodon-font-display\",sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(96,105,132,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#282c37;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#fefefe}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#282c37;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#ecf0f4}.landing-page__short-description h1{font-weight:500;color:#fff;margin-bottom:0}.landing-page__short-description h1 small{color:#dde3ec}.landing-page__short-description h1 small span{color:#ecf0f4}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#fff;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#dde3ec}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#282c37;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:\"mastodon-font-display\",sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#dde3ec}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#dde3ec}.landing .simple_form p.lead{color:#dde3ec;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #393f4f}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#c2cede}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #282c37;text-align:left;background:#1f232b}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #282c37;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#282c37}.table a{color:#2b90d9;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#282c37;border-top:1px solid #17191f;border-bottom:1px solid #17191f}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #17191f}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #17191f}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:\"mastodon-font-monospace\",monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#dde3ec;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#fff}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #17191f;background:#282c37;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #17191f;border-top:0;background:#282c37}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #17191f;border-top:0;background:#1f232b}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #17191f}}.batch-table__row:hover{background:#242731}.batch-table__row:nth-child(even){background:#282c37}.batch-table__row:nth-child(even):hover{background:#2c313d}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#dde3ec;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content summary{display:list-item}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #17191f;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #17191f}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#282c37;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#393f4f;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#fff;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#dde3ec;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#42485a}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#dde3ec;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#fff;background-color:#1d2028;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#242731;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#1f232b;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#fff;background-color:#2b5fd9;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#416fdd}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #393f4f;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#ecf0f4;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#ecf0f4;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#dde3ec;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #393f4f}.admin-wrapper .content h6{font-size:16px;color:#ecf0f4;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#fff;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#fff;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:0}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#ecf0f4;margin-bottom:20px}.admin-wrapper .content>p strong{color:#fff;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(96,105,132,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #313543;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#2b5fd9}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#dde3ec}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#2b90d9}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#c2cede;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset--with-select strong{display:block;margin-bottom:10px}.filters .filter-subset a{display:inline-block;color:#dde3ec;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #282c37}.filters .filter-subset a:hover{color:#fff;border-bottom:2px solid #333846}.filters .filter-subset a.selected{color:#2b90d9;border-bottom:2px solid #2b5fd9}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#ecf0f4}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#2b90d9;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{line-height:20px;padding:15px 0;background:#282c37;border-bottom:1px solid #313543}.log-entry:last-child{border-bottom:0}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;color:#dde3ec;font-size:14px;padding:0 10px}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#c2cede}.log-entry a,.log-entry .username,.log-entry .target{color:#ecf0f4;text-decoration:none;font-weight:500}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#ecf0f4}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#e87487}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #2b5fd9}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#e87487}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#dde3ec}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#c2cede}.report-card{background:#282c37;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#dde3ec;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#f7f9fb}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #1f232b}.report-card__summary__item:hover{background:#2c313d}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#dde3ec}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#c2cede;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#dde3ec}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#393f4f;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#4e79df}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#fff}.center-text{text-align:center}.announcements-list{border:1px solid #313543;border-radius:4px}.announcements-list__item{padding:15px 0;background:#282c37;border-bottom:1px solid #313543}.announcements-list__item__title{padding:0 15px;display:block;font-weight:500;font-size:18px;line-height:1.5;color:#ecf0f4;text-decoration:none;margin-bottom:10px}.announcements-list__item__title:hover,.announcements-list__item__title:focus,.announcements-list__item__title:active{color:#fff}.announcements-list__item__meta{padding:0 15px;color:#c2cede}.announcements-list__item__action-bar{display:flex;justify-content:space-between;align-items:center}.announcements-list__item:last-child{border-bottom:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#313543;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#393f4f}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#fff;font-family:\"mastodon-font-display\",sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#dde3ec;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#d9e1e8;font-weight:500;text-decoration:none}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .status__avatar{left:auto;right:10px}body.rtl .status,body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:68px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(19, 20, 25, 0), #131419)}body.rtl .simple_form select{background:#131419 url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff);transform:scale(0.71)}.compose-form .compose-form__modifiers .compose-form__upload-description input::placeholder{opacity:1}.rich-formatting a,.rich-formatting p a,.rich-formatting li a,.landing-page__short-description p a,.status__content a,.reply-indicator__content a{color:#5f86e2;text-decoration:underline}.rich-formatting a.mention,.rich-formatting p a.mention,.rich-formatting li a.mention,.landing-page__short-description p a.mention,.status__content a.mention,.reply-indicator__content a.mention{text-decoration:none}.rich-formatting a.mention span,.rich-formatting p a.mention span,.rich-formatting li a.mention span,.landing-page__short-description p a.mention span,.status__content a.mention span,.reply-indicator__content a.mention span{text-decoration:underline}.rich-formatting a.mention span:hover,.rich-formatting a.mention span:focus,.rich-formatting a.mention span:active,.rich-formatting p a.mention span:hover,.rich-formatting p a.mention span:focus,.rich-formatting p a.mention span:active,.rich-formatting li a.mention span:hover,.rich-formatting li a.mention span:focus,.rich-formatting li a.mention span:active,.landing-page__short-description p a.mention span:hover,.landing-page__short-description p a.mention span:focus,.landing-page__short-description p a.mention span:active,.status__content a.mention span:hover,.status__content a.mention span:focus,.status__content a.mention span:active,.reply-indicator__content a.mention span:hover,.reply-indicator__content a.mention span:focus,.reply-indicator__content a.mention span:active{text-decoration:none}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active,.rich-formatting p a:hover,.rich-formatting p a:focus,.rich-formatting p a:active,.rich-formatting li a:hover,.rich-formatting li a:focus,.rich-formatting li a:active,.landing-page__short-description p a:hover,.landing-page__short-description p a:focus,.landing-page__short-description p a:active,.status__content a:hover,.status__content a:focus,.status__content a:active,.reply-indicator__content a:hover,.reply-indicator__content a:focus,.reply-indicator__content a:active{text-decoration:none}.rich-formatting a.status__content__spoiler-link,.rich-formatting p a.status__content__spoiler-link,.rich-formatting li a.status__content__spoiler-link,.landing-page__short-description p a.status__content__spoiler-link,.status__content a.status__content__spoiler-link,.reply-indicator__content a.status__content__spoiler-link{color:#ecf0f4;text-decoration:none}.status__content__read-more-button{text-decoration:underline}.status__content__read-more-button:hover,.status__content__read-more-button:focus,.status__content__read-more-button:active{text-decoration:none}.getting-started__footer a{text-decoration:underline}.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:none}.nothing-here{color:#dde3ec}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b5fd9}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Dependent colors\n$black: #000000;\n\n$classic-base-color: #282c37;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #2b90d9;\n\n$ui-base-color: $classic-base-color !default;\n$ui-primary-color: $classic-primary-color !default;\n$ui-secondary-color: $classic-secondary-color !default;\n\n// Differences\n$ui-highlight-color: #2b5fd9;\n\n$darker-text-color: lighten($ui-primary-color, 20%) !default;\n$dark-text-color: lighten($ui-primary-color, 12%) !default;\n$secondary-text-color: lighten($ui-secondary-color, 6%) !default;\n$highlight-text-color: $classic-highlight-color !default;\n$action-button-color: #8d9ac2;\n\n$inverted-text-color: $black !default;\n$lighter-text-color: darken($ui-base-color, 6%) !default;\n$light-text-color: darken($ui-primary-color, 40%) !default;\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n\n @return '%23' + unquote($color);\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.player {\n text-align: center;\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n &__illustration {\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div,\n & > noscript {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n\n & > noscript {\n height: 100vh;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n\n.error-boundary,\n.app-holder noscript {\n flex-direction: column;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.7;\n color: lighten($error-red, 4%);\n text-align: center;\n\n & > div {\n max-width: 500px;\n }\n\n p {\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &__footer {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n }\n }\n\n button {\n display: inline;\n border: 0;\n background: transparent;\n color: $dark-text-color;\n font: inherit;\n padding: 0;\n margin: 0;\n line-height: inherit;\n cursor: pointer;\n outline: 0;\n transition: color 300ms linear;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.copied {\n color: $valid-value-color;\n transition: none;\n }\n }\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a !default; // Padua\n$error-red: #df405a !default; // Cerise\n$warning-red: #ff5050 !default; // Sunset Orange\n$gold-star: #ca8f04 !default; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: 'mastodon-font-sans-serif' !default;\n$font-display: 'mastodon-font-display' !default;\n$font-monospace: 'mastodon-font-monospace' !default;\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1 / 3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small,\n .trends__item__current {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n\n .trends__item__current {\n padding-right: 0;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n\n li {\n list-style: disc;\n margin-left: 18px;\n }\n }\n\n ul.hint {\n margin-bottom: 15px;\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .input.datetime .label_input select {\n display: inline-block;\n width: auto;\n flex: 0;\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\nbutton.icon-button.disabled i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.animated-number {\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n overflow: hidden;\n position: relative;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: $ui-highlight-color;\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 10%);\n transition: all 200ms ease-out;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled,\n &.disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n color: $darker-text-color;\n background: transparent;\n padding: 3px 15px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.compose-form {\n padding: 10px;\n\n &__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n }\n\n .compose-form__warning {\n color: $inverted-text-color;\n margin-bottom: 10px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n strong {\n color: $inverted-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 0;\n right: 0;\n }\n\n .compose-form__autosuggest-wrapper {\n position: relative;\n }\n\n .autosuggest-textarea,\n .autosuggest-input,\n .spoiler-input {\n position: relative;\n width: 100%;\n }\n\n .spoiler-input {\n height: 0;\n transform-origin: bottom;\n opacity: 0;\n\n &.spoiler-input--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1;\n }\n }\n\n .autosuggest-textarea__textarea,\n .spoiler-input__input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .spoiler-input__input {\n border-radius: 4px;\n }\n\n .autosuggest-textarea__textarea {\n min-height: 100px;\n border-radius: 4px 4px 0 0;\n padding-bottom: 0;\n padding-right: 10px + 22px;\n resize: none;\n scrollbar-color: initial;\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n @media screen and (max-width: 600px) {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n\n .autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n }\n\n .autosuggest-textarea__suggestions {\n box-sizing: border-box;\n display: none;\n position: absolute;\n top: 100%;\n width: 100%;\n z-index: 99;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n background: $ui-secondary-color;\n border-radius: 0 0 4px 4px;\n color: $inverted-text-color;\n font-size: 14px;\n padding: 6px;\n\n &.autosuggest-textarea__suggestions--visible {\n display: block;\n }\n }\n\n .autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n\n .autosuggest-account,\n .autosuggest-emoji,\n .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .autosuggest-account-icon,\n .autosuggest-emoji img {\n display: block;\n margin-right: 8px;\n width: 16px;\n height: 16px;\n }\n\n .autosuggest-account .display-name__account {\n color: $lighter-text-color;\n }\n\n .compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n\n .compose-form__upload-wrapper {\n overflow: hidden;\n }\n\n .compose-form__uploads-wrapper {\n display: flex;\n flex-direction: row;\n padding: 5px;\n flex-wrap: wrap;\n }\n\n .compose-form__upload {\n flex: 1 1 0;\n min-width: 40%;\n margin: 5px;\n\n &__actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $secondary-text-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($secondary-text-color, 7%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n\n &-description {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n padding: 10px;\n opacity: 0;\n transition: opacity .1s ease;\n\n textarea {\n background: transparent;\n color: $secondary-text-color;\n border: 0;\n padding: 0;\n margin: 0;\n width: 100%;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n\n &:focus {\n color: $white;\n }\n\n &::placeholder {\n opacity: 0.75;\n color: $secondary-text-color;\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n }\n\n .compose-form__upload-thumbnail {\n border-radius: 4px;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 140px;\n width: 100%;\n overflow: hidden;\n }\n }\n\n .compose-form__buttons-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n\n .compose-form__buttons {\n display: flex;\n\n .compose-form__upload-button-icon {\n line-height: 27px;\n }\n\n .compose-form__sensitive-button {\n display: none;\n\n &.compose-form__sensitive-button--visible {\n display: block;\n }\n\n .compose-form__sensitive-button__icon {\n line-height: 27px;\n }\n }\n }\n\n .icon-button,\n .text-icon-button {\n box-sizing: content-box;\n padding: 0 3px;\n }\n\n .character-counter__wrapper {\n align-self: center;\n margin-right: 4px;\n }\n }\n\n .compose-form__publish {\n display: flex;\n justify-content: flex-end;\n min-width: 0;\n flex: 0 0 auto;\n\n .compose-form__publish-button-wrapper {\n overflow: hidden;\n padding-top: 10px;\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .spoiler-input {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.reply-indicator {\n border-radius: 4px;\n margin-bottom: 10px;\n background: $ui-primary-color;\n padding: 10px;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n}\n\n.reply-indicator__header {\n margin-bottom: 5px;\n overflow: hidden;\n}\n\n.reply-indicator__cancel {\n float: right;\n line-height: 24px;\n}\n\n.reply-indicator__display-name {\n color: $inverted-text-color;\n display: block;\n max-width: 100%;\n line-height: 24px;\n overflow: hidden;\n padding-right: 25px;\n text-decoration: none;\n}\n\n.reply-indicator__display-avatar {\n float: left;\n margin-right: 5px;\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content,\n.reply-indicator__content {\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n color: $primary-text-color;\n\n &:focus {\n outline: 0;\n }\n\n &.status__content--with-spoiler {\n white-space: normal;\n\n .status__content__text {\n white-space: pre-wrap;\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n\n .status__content__spoiler-link {\n background: $action-button-color;\n\n &:hover {\n background: lighten($action-button-color, 7%);\n text-decoration: none;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n .status__content__text {\n display: none;\n\n &.status__content__text--visible {\n display: block;\n }\n }\n}\n\n.announcements__item__content {\n word-wrap: break-word;\n overflow-y: auto;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 10px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n &.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n.status__content.status__content--collapsed {\n max-height: 20px * 15; // 15 lines is roughly above 500 characters\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n text-decoration: none;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: transparent;\n border: 0;\n color: $inverted-text-color;\n font-weight: 700;\n font-size: 11px;\n padding: 0 6px;\n text-transform: uppercase;\n line-height: 20px;\n cursor: pointer;\n vertical-align: middle;\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n .status.status-direct {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 8px 10px;\n padding-left: 68px;\n position: relative;\n min-height: 54px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 26px; // 10px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $light-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n color: $light-text-color;\n\n strong {\n color: $inverted-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time,\n.notification__relative_time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n}\n\n.status__display-name {\n color: $dark-text-color;\n}\n\n.status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n}\n\n.status__info {\n font-size: 15px;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n overflow: hidden;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-left: 68px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.reply-indicator__content {\n color: $inverted-text-color;\n font-size: 14px;\n\n a {\n color: $lighter-text-color;\n }\n}\n\n.domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &.compact {\n padding: 0;\n border-bottom: 0;\n\n .account__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius;\n position: relative;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n border-radius: 50%;\n overflow: hidden;\n position: relative;\n\n & > div {\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\na .account__avatar {\n cursor: pointer;\n}\n\n.account__avatar-overlay {\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius;\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius;\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__disclaimer {\n padding: 10px;\n border-top: 1px solid lighten($ui-base-color, 8%);\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-dropdown {\n padding: 10px;\n\n .icon-button {\n vertical-align: middle;\n }\n\n .dropdown--active {\n .dropdown__content.dropdown__right {\n left: 6px;\n right: initial;\n }\n\n &::after {\n bottom: initial;\n margin-left: 11px;\n margin-top: -7px;\n right: initial;\n }\n }\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-right: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\n.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\na.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n height: 48px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n}\n\n.status__expand {\n width: 68px;\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n cursor: pointer;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-lighter-color, 7%);\n text-decoration: none;\n }\n }\n}\n\n.notification__message {\n margin: 0 10px 0 68px;\n padding: 8px 0 0;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n line-height: 22px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: inline;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: -26px;\n position: absolute;\n\n .star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.notification__relative_time {\n float: right;\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.navigation-bar {\n padding: 10px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n cursor: default;\n color: $darker-text-color;\n\n strong {\n color: $secondary-text-color;\n }\n\n a {\n color: inherit;\n }\n\n .permalink {\n text-decoration: none;\n }\n\n .navigation-bar__actions {\n position: relative;\n\n .icon-button.close {\n position: absolute;\n pointer-events: none;\n transform: scale(0, 1) translate(-100%, 0);\n opacity: 0;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: auto;\n transform: scale(1, 1) translate(0, 0);\n opacity: 1;\n }\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n line-height: 20px;\n margin-top: -1px;\n overflow: hidden;\n}\n\n.navigation-bar__profile-account {\n display: block;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.navigation-bar__profile-edit {\n color: inherit;\n text-decoration: none;\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n z-index: 9999;\n\n ul {\n list-style: none;\n }\n\n &.left {\n transform-origin: 100% 50%;\n }\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n\n &.right {\n transform-origin: 0 50%;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &.unscrollable {\n overflow-x: hidden;\n }\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .drawer,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 350px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.drawer {\n width: 330px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n}\n\n.drawer__tab {\n display: block;\n flex: 1 1 auto;\n padding: 15px 5px 13px;\n color: $darker-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 16px;\n border-bottom: 2px solid transparent;\n}\n\n.column,\n.drawer {\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @media screen and (min-width: 631px) {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $highlight-text-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__favourite-icon-wrapper {\n left: -32px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n\n .account__avatar-wrapper {\n margin-left: 17px;\n margin-right: 15px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .getting-started__trends,\n .search {\n margin-bottom: 10px;\n }\n\n .getting-started__panel {\n margin: 10px 0;\n }\n\n .column,\n .drawer {\n min-width: 330px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .navigation-bar {\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 0 1 48px;\n min-height: 20px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .compose-form {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n padding-bottom: 71px;\n margin-bottom: -71px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n border-radius: 2px;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 85%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__header {\n flex: 0 0 auto;\n font-size: 16px;\n background: lighten($ui-base-color, 8%);\n margin-bottom: 10px;\n display: flex;\n flex-direction: row;\n border-radius: 2px;\n\n a {\n transition: background 100ms ease-in;\n\n &:hover {\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n line-height: inherit;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n outline: 0;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n white-space: nowrap;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.getting-started__wrapper,\n.getting-started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n color: $dark-text-color;\n overflow: auto;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n\n &__wrapper,\n &__panel,\n &__footer {\n height: min-content;\n }\n\n &__panel,\n &__footer\n {\n padding: 10px;\n padding-top: 20px;\n flex-grow: 0;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__wrapper,\n &__footer\n {\n color: $dark-text-color;\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n border-radius: 4px;\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n z-index: 1;\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n bottom: -13px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n\n .announcements {\n z-index: 1;\n position: relative;\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n\n & > button {\n margin: 0;\n border: 0;\n padding: 15px 0 15px 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($highlight-text-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n z-index: 1;\n position: relative;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n border-radius: 4px;\n appearance: none;\n\n &:hover,\n &:active,\n &:focus {\n padding: 0;\n color: lighten($darker-text-color, 8%);\n }\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 700;\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: block;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout;\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.empty-column-indicator,\n.error-column,\n.follow_requests-unlocked_explanation {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.follow_requests-unlocked_explanation {\n background: darken($ui-base-color, 4%);\n contain: initial;\n}\n\n.error-column {\n flex-direction: column;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.no-reduce-motion .pulse-loading {\n transform-origin: center center;\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n@keyframes shake-bottom {\n 0%,\n 100% {\n transform: rotate(0deg);\n transform-origin: 50% 100%;\n }\n\n 10% {\n transform: rotate(2deg);\n }\n\n 20%,\n 40%,\n 60% {\n transform: rotate(-4deg);\n }\n\n 30%,\n 50%,\n 70% {\n transform: rotate(4deg);\n }\n\n 80% {\n transform: rotate(-2deg);\n }\n\n 90% {\n transform: rotate(2deg);\n }\n}\n\n.no-reduce-motion .shake-bottom {\n transform-origin: 50% 100%;\n animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.upload-progress {\n padding: 10px;\n color: $lighter-text-color;\n overflow: hidden;\n display: flex;\n\n .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n span {\n font-size: 12px;\n text-transform: uppercase;\n font-weight: 500;\n display: block;\n }\n}\n\n.upload-progess__message {\n flex: 1 1 auto;\n}\n\n.upload-progress__backdrop {\n width: 100%;\n height: 6px;\n border-radius: 6px;\n background: $ui-base-lighter-color;\n position: relative;\n margin-top: 5px;\n}\n\n.upload-progress__tracker {\n position: absolute;\n left: 0;\n top: 0;\n height: 6px;\n background: $ui-highlight-color;\n border-radius: 6px;\n}\n\n.emoji-button {\n display: block;\n padding: 5px 5px 2px 2px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.privacy-dropdown__dropdown {\n position: absolute;\n background: $simple-background-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-left: 40px;\n overflow: hidden;\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n}\n\n.privacy-dropdown__option {\n color: $inverted-text-color;\n padding: 10px;\n cursor: pointer;\n display: flex;\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n outline: 0;\n\n .privacy-dropdown__option__content {\n color: $primary-text-color;\n\n strong {\n color: $primary-text-color;\n }\n }\n }\n\n &.active:hover {\n background: lighten($ui-highlight-color, 4%);\n }\n}\n\n.privacy-dropdown__option__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 10px;\n}\n\n.privacy-dropdown__option__content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n strong {\n font-weight: 500;\n display: block;\n color: $inverted-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.privacy-dropdown.active {\n .privacy-dropdown__value {\n background: $simple-background-color;\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n\n .icon-button {\n transition: none;\n }\n\n &.active {\n background: $ui-highlight-color;\n\n .icon-button {\n color: $primary-text-color;\n }\n }\n }\n\n &.top .privacy-dropdown__value {\n border-radius: 0 0 4px 4px;\n }\n\n .privacy-dropdown__dropdown {\n display: block;\n box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);\n }\n}\n\n.search {\n position: relative;\n}\n\n.search__input {\n @include search-input;\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(90deg);\n\n &.active {\n pointer-events: none;\n transform: rotate(0deg);\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n}\n\n.search-results__section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n}\n\n.search-results__hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $primary-text-color;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $highlight-text-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n }\n\n .status__avatar {\n height: 28px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n .status__content,\n .status__content p {\n color: $inverted-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n max-height: 80vh;\n max-width: 80vw;\n\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.loading-bar {\n background-color: $highlight-text-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n margin-top: 32px;\n\n audio {\n width: 100%;\n }\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n/* Media Gallery */\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n }\n\n img {\n object-fit: cover;\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n object-fit: cover;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n z-index: 1;\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n/* End Media Gallery */\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-overlay-background;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n\n.directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n width: 100%;\n white-space: nowrap;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\n.search-popout {\n @include search-popout;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@media screen and (max-width: 630px) and (max-height: 400px) {\n $duration: 400ms;\n $delay: 100ms;\n\n .tabs-bar,\n .search {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar {\n will-change: padding-bottom;\n transition: padding-bottom $duration $delay;\n }\n\n .navigation-bar {\n & > a:first-child {\n will-change: margin-top, margin-left, margin-right, width;\n transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay);\n }\n\n & > .navigation-bar__profile-edit {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar__actions {\n & > .icon-button.close {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay,\n transform $duration $delay;\n }\n\n & > .compose__action-bar .icon-button {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay + $duration * 0.5,\n transform $duration $delay;\n }\n }\n }\n\n .is-composing {\n .tabs-bar,\n .search {\n margin-top: -50px;\n }\n\n .navigation-bar {\n padding-bottom: 0;\n\n & > a:first-child {\n margin: -100px 10px 0 -50px;\n }\n\n .navigation-bar__profile {\n padding-top: 2px;\n }\n\n .navigation-bar__profile-edit {\n position: absolute;\n margin-top: -60px;\n }\n\n .navigation-bar__actions {\n .icon-button.close {\n pointer-events: auto;\n opacity: 1;\n transform: scale(1, 1) translate(0, 0);\n bottom: 5px;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: none;\n opacity: 0;\n transform: scale(0, 1) translate(100%, 0);\n }\n }\n }\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.column-inline-form {\n padding: 15px;\n padding-right: 0;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 10px;\n }\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n\n.list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n cursor: pointer;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.announcements {\n background: lighten($ui-base-color, 8%);\n font-size: 13px;\n display: flex;\n align-items: flex-end;\n\n &__mastodon {\n width: 124px;\n flex: 0 0 auto;\n\n @media screen and (max-width: 124px + 300px) {\n display: none;\n }\n }\n\n &__container {\n width: calc(100% - 124px);\n flex: 0 0 auto;\n position: relative;\n\n @media screen and (max-width: 124px + 300px) {\n width: 100%;\n }\n }\n\n &__item {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n max-height: 50vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &__range {\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n padding-right: 18px;\n }\n\n &__unread {\n position: absolute;\n top: 19px;\n right: 19px;\n display: block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n }\n }\n\n &__pagination {\n padding: 15px;\n color: $darker-text-color;\n position: absolute;\n bottom: 3px;\n right: 0;\n }\n}\n\n.layout-multiple-columns .announcements__mastodon {\n display: none;\n}\n\n.layout-multiple-columns .announcements__container {\n width: 100%;\n}\n\n.reactions-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-top: 15px;\n margin-left: -2px;\n width: calc(100% - (90px - 33px));\n\n &__item {\n flex-shrink: 0;\n background: lighten($ui-base-color, 12%);\n border: 0;\n border-radius: 3px;\n margin: 2px;\n cursor: pointer;\n user-select: none;\n padding: 0 6px;\n display: flex;\n align-items: center;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &__emoji {\n display: block;\n margin: 3px 0;\n width: 16px;\n height: 16px;\n\n img {\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n min-width: auto;\n min-height: auto;\n vertical-align: bottom;\n object-fit: contain;\n }\n }\n\n &__count {\n display: block;\n min-width: 9px;\n font-size: 13px;\n font-weight: 500;\n text-align: center;\n margin-left: 6px;\n color: $darker-text-color;\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 16%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n\n &__count {\n color: lighten($darker-text-color, 4%);\n }\n }\n\n &.active {\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%);\n\n .reactions-bar__item__count {\n color: lighten($highlight-text-color, 8%);\n }\n }\n }\n\n .emoji-picker-dropdown {\n margin: 2px;\n }\n\n &:hover .emoji-button {\n opacity: 0.85;\n }\n\n .emoji-button {\n color: $darker-text-color;\n margin: 0;\n font-size: 16px;\n width: auto;\n flex-shrink: 0;\n padding: 0 6px;\n height: 22px;\n display: flex;\n align-items: center;\n opacity: 0.5;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n opacity: 1;\n color: lighten($darker-text-color, 4%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n }\n\n &--empty {\n .emoji-button {\n padding: 0;\n }\n }\n}\n",null,"@mixin avatar-radius {\n border-radius: 4px;\n background: transparent no-repeat;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size: 48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin search-input {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: 0;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n border-radius: 4px;\n display: block;\n background: darken($ui-primary-color, 5%);\n height: 5px;\n min-width: 1%;\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__option {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n &__text {\n display: inline-block;\n word-wrap: break-word;\n overflow-wrap: break-word;\n max-width: calc(100% - 45px - 25px);\n }\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($valid-value-color, 15%);\n border-width: 4px;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 45px;\n font-weight: 700;\n flex: 0 0 45px;\n }\n\n &__voted {\n padding: 0 5px;\n display: inline-block;\n\n &__mark {\n font-size: 18px;\n }\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__option {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".emoji-mart {\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: -1px;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -5px;\n left: 0;\n width: 100%;\n height: 4px;\n background-color: $highlight-text-color;\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n summary {\n display: list-item;\n }\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: 0;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &--with-select strong {\n display: block;\n margin-bottom: 10px;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n line-height: 20px;\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: $darker-text-color;\n font-size: 14px;\n padding: 0 10px;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n\n.announcements-list {\n border: 1px solid lighten($ui-base-color, 4%);\n border-radius: 4px;\n\n &__item {\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &__title {\n padding: 0 15px;\n display: block;\n font-weight: 500;\n font-size: 18px;\n line-height: 1.5;\n color: $secondary-text-color;\n text-decoration: none;\n margin-bottom: 10px;\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n }\n\n &__meta {\n padding: 0 15px;\n color: $dark-text-color;\n }\n\n &__action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .status__avatar {\n left: auto;\n right: 10px;\n }\n\n .status,\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n","$black-emojis: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash';\n\n%white-emoji-outline {\n filter: drop-shadow(1px 1px 0 $white) drop-shadow(-1px 1px 0 $white) drop-shadow(1px -1px 0 $white) drop-shadow(-1px -1px 0 $white);\n transform: scale(.71);\n}\n\n.emojione {\n @each $emoji in $black-emojis {\n &[title=':#{$emoji}:'] {\n @extend %white-emoji-outline;\n }\n }\n}\n","// components.scss\n.compose-form {\n .compose-form__modifiers {\n .compose-form__upload {\n &-description {\n input {\n &::placeholder {\n opacity: 1;\n }\n }\n }\n }\n }\n}\n\n.rich-formatting a,\n.rich-formatting p a,\n.rich-formatting li a,\n.landing-page__short-description p a,\n.status__content a,\n.reply-indicator__content a {\n color: lighten($ui-highlight-color, 12%);\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n }\n\n &.mention span {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.status__content__spoiler-link {\n color: $secondary-text-color;\n text-decoration: none;\n }\n}\n\n.status__content__read-more-button {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n}\n\n.getting-started__footer a {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n}\n\n.nothing-here {\n color: $darker-text-color;\n}\n\n.public-layout .public-account-header__tabs__tabs .counter.active::after {\n border-bottom: 4px solid $ui-highlight-color;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/skins/vanilla/contrast/common.js b/priv/static/packs/skins/vanilla/contrast/common.js index e98309beb..ba45e450a 100644 Binary files a/priv/static/packs/skins/vanilla/contrast/common.js and b/priv/static/packs/skins/vanilla/contrast/common.js differ diff --git a/priv/static/packs/skins/vanilla/mastodon-light/common.css b/priv/static/packs/skins/vanilla/mastodon-light/common.css index 4c6bfe4e6..c2fdf30b8 100644 Binary files a/priv/static/packs/skins/vanilla/mastodon-light/common.css and b/priv/static/packs/skins/vanilla/mastodon-light/common.css differ diff --git a/priv/static/packs/skins/vanilla/mastodon-light/common.css.map b/priv/static/packs/skins/vanilla/mastodon-light/common.css.map index 64f2758de..f22d72ddd 100644 --- a/priv/static/packs/skins/vanilla/mastodon-light/common.css.map +++ b/priv/static/packs/skins/vanilla/mastodon-light/common.css.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///common.scss","webpack:///./app/javascript/styles/mastodon/reset.scss","webpack:///./app/javascript/styles/mastodon-light/variables.scss","webpack:///./app/javascript/styles/mastodon/basics.scss","webpack:///./app/javascript/styles/mastodon/containers.scss","webpack:///./app/javascript/styles/mastodon/lists.scss","webpack:///./app/javascript/styles/mastodon/footer.scss","webpack:///./app/javascript/styles/mastodon/compact_header.scss","webpack:///./app/javascript/styles/mastodon/widgets.scss","webpack:///./app/javascript/styles/mastodon/variables.scss","webpack:///./app/javascript/styles/mastodon/forms.scss","webpack:///./app/javascript/styles/mastodon/accounts.scss","webpack:///./app/javascript/styles/mastodon/statuses.scss","webpack:///./app/javascript/styles/mastodon/boost.scss","webpack:///./app/javascript/styles/mastodon/components.scss","webpack:///","webpack:///./app/javascript/styles/mastodon/_mixins.scss","webpack:///./app/javascript/styles/mastodon/polls.scss","webpack:///./app/javascript/styles/mastodon/modal.scss","webpack:///./app/javascript/styles/mastodon/emoji_picker.scss","webpack:///./app/javascript/styles/mastodon/about.scss","webpack:///./app/javascript/styles/mastodon/tables.scss","webpack:///./app/javascript/styles/mastodon/admin.scss","webpack:///./app/javascript/styles/mastodon/dashboard.scss","webpack:///./app/javascript/styles/mastodon/rtl.scss","webpack:///./app/javascript/styles/mastodon/accessibility.scss","webpack:///./app/javascript/styles/mastodon-light/diff.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,0CACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,8BACA,CC3EwB,iEDkF1B,kBClF0B,4BDsF1B,sBACE,MErFF,iDACE,mBACA,eACA,iBACA,gBACA,WDZM,kCCcN,6BACA,8BACA,CADA,0BACA,CADA,yBACA,CADA,qBACA,0CACA,wCACA,kBAEA,iKAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBDlDwB,kBCsDxB,iBACE,kBACA,0BAEA,iBACE,aAIJ,iBACE,YAGF,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cDzFiB,mBAEK,WC0FtB,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,sCAGE,aACE,gBACA,WACA,YACA,kBACA,uBAIJ,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,kDAKF,YAGE,WACA,mBACA,uBACA,oBACA,sBAGF,YACE,yEAKF,gBAEE,+EAKF,WAEE,sCAIJ,qBAEE,eACA,gBACA,gBACA,cACA,kBACA,8CAEA,eACE,0CAGF,mBACE,gEAEA,eACE,0CAIJ,aDvKmB,kKC0KjB,oBAGE,sDAIJ,aD7KgB,eC+Kd,0DAEA,aDjLc,oDCsLhB,cACE,SACA,uBACA,cDzLc,aC2Ld,UACA,SACA,oBACA,eACA,UACA,4BACA,0BACA,gMAEA,oBAGE,kEAGF,aDvNY,gBCyNV,gBCnON,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SFtBI,YEwBF,kBACA,sBAGF,YACE,uBACA,mBACA,WF/BE,qBEiCF,UACA,kBACA,iBACA,6CACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAGF,UACE,YACA,iBACA,6BAEA,UACE,YACA,cACA,SACA,kBACA,uBAIJ,aACE,cF5FiB,wBE8FjB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UFzUA,qCE4UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cF3Ve,mBE6Vf,kBACA,uHAEA,yBAGE,WFtWA,qCE0WF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBFrbe,8CE0bjB,yBACE,gBACA,aACA,kBACA,gBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,YACA,aACA,kBACA,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,qCAIJ,2CArCF,YAsCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAGF,UACE,YACA,CACA,sBACA,wDAEA,QACE,kBACA,2DAGF,mDAXF,YAYI,sCAKN,2CAhEF,eAiEI,sCAGF,2CApEF,cAqEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WF3kBF,gBE6kBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WFrlBJ,gBEulBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aF1mBS,oDEinBf,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cFtoBW,aEwoBX,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BFxqBS,wEE8qBT,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WFpsBJ,6CEssBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cFvuBa,uDE0uBb,oBACE,cF3uBW,qBE6uBX,aACA,gBACA,8DAEA,eACE,WFrvBJ,qCE2vBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aF9xBU,8DEoyBV,mBACA,WF9yBE,qFEkzBJ,YAEE,eACA,cFlzBe,2CEszBjB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBFh3BkB,+IEm3BhB,kBAGE,WC53BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,wBCfF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,eACE,kBACA,cJ7Fe,6BIgGf,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBCjIR,cACE,iBACA,cACA,gBACA,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cLjBe,wBKqBjB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBCPI,uBDUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBNfwB,aMiBtB,0BACA,eACA,cNrBiB,iBMuBjB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aNrDiB,qBMuDf,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,gBACA,eACA,cN3EiB,+BM+EnB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aNxGmB,aM6GrB,YACE,kBACA,mBN7GwB,mCM+GxB,qBAGF,YACE,kBACA,0BACA,kBACA,cNxHmB,mBM0HnB,iBAGF,eACE,eACA,cN/HmB,iBMiInB,qBACA,gBACA,UACA,oBAEA,YACE,gBACA,eACA,cNzIiB,0BM6InB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cNtJiB,qBMwJjB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBNtKwB,mCMwKxB,cN1KmB,gBM4KnB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cNrNe,8DM2NjB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eChPM,CDkPN,cACA,cNhPmB,mBMkPnB,+BANA,iBACA,CChPM,kCD8PN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,UNhQM,eMkQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cNtQiB,qCM0QnB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBNlR0B,kBMoRxB,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBN/RoB,kBMiSpB,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBNnSiB,eMqSf,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WNlUE,mBMoUF,gBACA,uBACA,wBAEA,aNrUe,0BMyUf,aACE,gBACA,eACA,eACA,cN7Ua,0IMmVf,UNtVE,+BM8VJ,aACE,YACA,uDAGF,oBNjViB,wCMqVjB,eACE,eAKN,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,cNnZiB,gBMqZjB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WN9aI,8BMibJ,aACE,cN/ae,gBMibf,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aNhhBmB,iCM+gBrB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cNthBiB,4JMyhBjB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WNjkBI,gCMmkBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MEjlBJ,+CACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WRjDA,cQmDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aRpDe,0BQsDb,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aRlGmB,sBQqGjB,aRtFiB,yBQ0FjB,iBACE,kBACA,gBACA,uBAGF,eACE,iBACA,sBAIJ,kBACE,wBAGF,aACE,eACA,eACA,qBAGF,kBACE,cRhIiB,iCQmIjB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WRnKA,gBQqKA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WRzLE,cQ2LF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WR/ME,cQiNF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,6BAIJ,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WR7RI,cQ+RJ,WACA,2CAKE,mBACE,eACA,WRvSA,qBQySA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WRvUI,cQyUJ,WACA,UACA,oBACA,gBACA,mBACA,sBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,wQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBRtVY,oLQ0VZ,iBACE,4WAGF,oBRrViB,mBQwVf,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBRtYiB,WAlBb,eQ2ZJ,oBACA,YACA,aACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBRrae,gGQyaf,kBDtbQ,kHCybN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WR1cI,cQ4cJ,WACA,UACA,oBACA,gBACA,wXACA,sBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cRldY,oBQodZ,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,oEACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,iCACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,URxhBF,aQkiBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cRviBmB,kBQyiBnB,kBACA,mBACA,kBACA,uBAEA,mCACE,+BACA,cR1iBY,sBQ8iBd,mCACE,+BACA,cDtjBQ,kBC0jBV,oBACE,cR3jBiB,qBQ6jBjB,wBAEA,URlkBI,0BQokBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBR9kBsB,WALlB,eQslBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aRxnBmB,qBQ0nBjB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aR7nBmB,qBQ+nBjB,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cR3pBmB,oCQ8pBnB,cACE,mBACA,kBACA,4CAGF,aRpqBmB,gBQsqBjB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBD7rBM,YC+rBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cRzsBmB,WQ2sBnB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,CACA,UR1uBI,qCQ4uBJ,oCACA,kBACA,aACA,mBACA,gDAEA,URlvBI,0BQovBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cR9xBmB,0BQiyBnB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WR9yBI,kBQgzBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aDvzBc,0SCi0BZ,+CACE,aAIJ,kBACE,sBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gDACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBRp2Bc,gBQs2BZ,2BAEA,kBRx2BY,gBQ02BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SCl7BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,gBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,WACA,YACA,gBACA,wBAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WT9EA,gBSgFA,gBACA,uBACA,+BAGF,aACE,eACA,cTpFa,gBSsFb,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WT5GI,gBS8GJ,qBACA,iBACA,qBACA,sBAGF,eFnHM,oBEqHJ,WTtHI,eSwHJ,cACA,kBAGF,cACE,uCAGF,aT7HmB,oBSkInB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,WACA,qCAGF,YA7DF,iBA8DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBTvK0B,mCSyKxB,cTnJiB,eSqJjB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cT1MmB,mCS4MnB,mCACA,6DAEA,aTzMc,oCS2MZ,gCACA,qDAGF,aACE,oCACA,gCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cTzPiB,gCS2PjB,6BAGF,aACE,cT/PiB,4BSmQnB,aTpPmB,qBSsPjB,qGAEA,yBAGE,oCAIJ,mCACE,+BACA,sCAEA,aT5QY,gBS8QV,0CAGF,aTjRY,wCSsRd,eACE,wCAIJ,UACE,0BAIA,aTtSmB,4BSySjB,aTzSiB,qBS2Sf,qGAEA,yBAGE,iCAIJ,UTvTI,gBSyTF,wBAIJ,eACE,kBC/TJ,kCACE,kBACA,gBACA,mBACA,8BAEA,yBACE,qCAGF,iBAVF,eAWI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBVzBwB,6GU4BtB,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBV9DmB,WAlBb,oBUmFN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UV7FI,gFUiGN,kBAGE,qNAKA,kBVzFe,4IUiGf,kBH9GQ,qCGqHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAGF,gBACE,iBACA,mFAGF,UACE,qMAGF,eAGE,iCC/JN,u+KACE,uCAEA,u+KACE,0CAIJ,u+KACE,WCTF,gCACE,4CACA,cAGF,aACE,eACA,iBACA,cZWmB,SYTnB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,aZHiB,eYKf,SAIJ,wBZPqB,YYSnB,kBACA,sBACA,WZ7BM,eY+BN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,qBACA,uBACA,2BACA,mBACA,WACA,4CAEA,wBAGE,4BACA,sBAGF,eACE,mFAEA,wBLxDQ,gBK4DN,mCAIJ,wBZnDiB,eYsDf,2BAGF,QACE,wDAGF,mBAGE,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,UZ9FM,mBAgBW,qGYkFf,wBAGE,8BAIJ,kBZ1FsB,2GY6FpB,wBAGE,0BAIJ,aZhHmB,uBYkHjB,iBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,kBAIJ,YACE,cACA,kBACA,cAGF,oBACE,UACA,cZ5HoB,SY8HpB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,sCACA,4BACA,2CACA,oBAGF,oCACE,uBAGF,aACE,6BACA,eACA,qBAGF,aZ7JmB,gCYiKnB,QACE,uEAGF,mBAGE,uBAGF,aZ1LmB,sFY6LjB,aAGE,oCACA,6BAGF,kCACE,gCAGF,aACE,6BACA,8BAGF,aZ9LiB,uCYiMf,aACE,wBAKN,sBACE,8BACA,qBACA,kBACA,YACA,8BAEA,6BACE,mBAKN,aZnOqB,SYqOnB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,oCACA,4BACA,2CACA,yBAGF,kCACE,4BAGF,UACE,6BACA,eACA,0BAGF,aZrPmB,qCYyPnB,QACE,sFAGF,mBAGE,CAKF,0BADF,iBAUE,CATA,WAGF,WACE,cACA,qBACA,QACA,SAEA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,eAIJ,YACE,iCAGE,mBACA,eAEA,gBACA,wCAEA,aZ1SiB,sDY8SjB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBZ/Te,yDYsUnB,UZxVM,mBY0VJ,mBZ1Ue,oCY4Uf,iBACA,kBACA,eACA,gBACA,6CAEA,UZlWI,gBYoWF,CAII,kRADF,eACE,wCAKN,aZ1WiB,gBY4Wf,0BACA,yIAEA,oBAGE,sCAKN,iBACE,QACA,UACA,kDAGF,iBACE,mGAGF,iBAGE,WACA,8BAGF,QACE,wBACA,UACA,qDAEA,WACE,mBACA,UACA,mFAIJ,aAEE,sBACA,WACA,SACA,WZ5ZI,gBOCA,aK8ZJ,oBACA,eACA,gBACA,SACA,UACA,yIAEA,aZhZc,CY8Yd,sHAEA,aZhZc,CY8Yd,8HAEA,aZhZc,CY8Yd,gIAEA,aZhZc,CY8Yd,4GAEA,aZhZc,+FYoZd,SACE,qCAGF,kFAvBF,cAwBI,sCAIJ,iBACE,+CAGF,gBACE,0BACA,iBACA,mBACA,YACA,qBACA,kEAEA,SACE,qCAGF,8CAZF,sBAaI,gBACA,2DAIJ,iBACE,SACA,kDAGF,qBACE,aACA,kBACA,SACA,WACA,WACA,sCACA,mBZldiB,0BYodjB,WZvdI,eYydJ,YACA,6FAEA,aACE,wDAIJ,YACE,eACA,kBACA,yPAEA,kBAIE,wGAIJ,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,oCAGF,6BACE,0CAEA,aACE,gBACA,uBACA,mBACA,2CAGF,eACE,0CAGF,aACE,iBACA,gBACA,uBACA,mBACA,8EAIJ,aAEE,iBACA,WACA,YACA,2DAGF,aZrhBmB,wCYyhBnB,UZ5hBM,oBY8hBJ,eACA,gBL9hBI,sEKiiBJ,eACE,uEAGF,YACE,mBACA,YACA,eACA,8DAGF,UACE,cACA,WACA,uEAEA,iFACE,aACA,uBACA,8BACA,UACA,4BACA,oFAEA,aACE,cZxjBW,eY0jBX,gBACA,aACA,oBACA,6QAEA,aAGE,8EAIJ,SACE,0EAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,gFACA,aACA,UACA,4BACA,mFAEA,sBACE,cZxlBW,SY0lBX,UACA,SACA,WACA,oBACA,eACA,gBACA,yFAEA,ULpmBF,8GKwmBE,WACE,cZvmBS,COFb,oGKwmBE,WACE,cZvmBS,COFb,wGKwmBE,WACE,cZvmBS,COFb,yGKwmBE,WACE,cZvmBS,COFb,+FKwmBE,WACE,cZvmBS,iFY4mBb,SACE,wEAKN,iBACE,sBLtnBE,wBKwnBF,sBACA,4BACA,aACA,WACA,gBACA,8CAIJ,YACE,gBACA,0BACA,aACA,8BACA,cACA,qEAEA,YACE,uGAEA,gBACE,qGAGF,YACE,6IAEA,aACE,2IAGF,gBACE,0HAKN,sBAEE,cACA,0EAGF,iBACE,iBACA,sCAIJ,YACE,yBACA,YACA,cACA,4EAEA,eACE,iBACA,oBAKN,cACE,kDACA,eACA,gBACA,cZvrBmB,4CY0rBnB,aLzrBY,kCK8rBd,2CACE,WCpsBF,8DDysBE,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,kBAIJ,iBACE,mBACA,mBZrsBiB,aYusBjB,gBACA,gBACA,cACA,0BAGF,iBACE,gBACA,0BAGF,WACE,iBACA,gCAGF,UZvuBQ,cYyuBN,eACA,iBACA,gBACA,mBACA,qBACA,kCAGF,UACE,iBACA,+BAGF,cACE,4CAGF,iBAEE,eACA,iBACA,qBACA,gBACA,gBACA,uBACA,gBACA,WZnwBM,wDYswBN,SACE,wGAGF,kBACE,sJAEA,oBACE,gEAIJ,UACE,YACA,gBACA,oDAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,gDAGF,kBACE,qBACA,sEAEA,eACE,gDAIJ,aL1xBc,qBK4xBZ,4DAEA,yBACE,oEAEA,aACE,4EAKF,oBACE,sFAEA,yBACE,wDAKN,aZvyBc,8EY4yBhB,aACE,0GAGF,kBZ/yBoB,sHYkzBlB,kBACE,qBACA,8IAGF,QACE,0XAGF,mBAGE,0FAIJ,YACE,wJAEA,aACE,6CAKN,gBACE,oCAGF,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,oFAEA,yBAEE,gCAIJ,oBACE,kBACA,uBACA,SACA,WZ13BM,gBY43BN,eACA,cACA,iBACA,eACA,sBACA,4BAGF,aZ92BkB,SYg3BhB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,kBAIA,SACE,mBACA,wCAEA,kBACE,8CAEA,sBACE,iFAIJ,kBAEE,SAMJ,yBACA,kBACA,gBACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QARF,kBAWI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,aZj7Be,CA3BX,uEYq9BF,UZr9BE,kCYy9BF,aZ97Ba,gCYm8Bf,UZ99BI,kCYi+BF,aZ/8Be,gEYm9Bf,UZr+BE,mBAgBW,sEYy9BX,kBACE,+CAQR,sBACE,qEAEA,aACE,qDAKN,aZr+BkB,YYw+BhB,eACA,uBAGF,aZ5+BkB,qCYg/BlB,aACE,eACA,mBACA,eAGF,cACE,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,cZhiCgB,CYkiChB,iBACA,eACA,kBACA,+CAEA,aZviCgB,uBY2iChB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cZnkCgB,4BYykCtB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,kEAGF,gBACE,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cZloCgB,eYooChB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,2BAGF,UZprCQ,eYsrCN,6BAEA,aZrrCmB,SY0rCrB,YACE,gCACA,8BAEA,aACE,cACA,WZnsCI,qBYqsCJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,UAGF,YACE,gCACA,kBAEA,SACE,gBACA,2CAEA,aACE,iCAIJ,aACE,cACA,cZjuCiB,gBYmuCjB,qBACA,eACA,mBAIJ,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,iBEtvCE,iCACA,wBACA,4BACA,kBFqvCA,yBAEA,oBACE,sBACA,iBACA,4BAGF,iBEhwCA,iCACA,wBACA,4BACA,kBF+vCE,gBACA,kBACA,eACA,gCAEA,UACE,kBACA,sBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WZlxCE,6BYoxCF,gBACA,eACA,oBAKN,cACE,0BAGF,UACuB,sCEvxCrB,+BFyxCA,iBElyCA,iCACA,wBACA,4BACA,WFiyCuB,sCE3xCvB,kCF8xCA,iBEvyCA,iCACA,wBACA,4BACA,WFsyCuB,sCEhyCvB,kBFkyCE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,sBAGF,YACE,6BACA,cZpyCgB,6BYuyChB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,+BAGF,YACE,4CAEA,qBACE,oFAIA,QACE,WACA,uDAGF,WACE,iBACA,gBACA,WACA,4BAKN,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,+BACA,eACA,oCACA,kCAEA,+BACE,gCAGF,aACE,eACA,cZr4CiB,kCYy4CnB,aACE,eACA,gBACA,WZ/4CI,CYo5CA,2NADF,eACE,oBAMR,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,6JAGF,oBAME,4DAKA,UZp7CM,kBY07CN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,aZp9CqB,cYs9CnB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WZt+CI,kCY2+CR,UACE,kBACA,iBAGF,WACE,UACA,kBACA,SACA,WACA,iBAGF,UACE,kBACA,OACA,MACA,YACA,eACA,CZx+CgB,gHYk/ChB,aZl/CgB,wBYs/ChB,UACE,wCAGF,kBZjgDsB,WAfhB,8CYohDJ,kBACE,qBACA,wBAKN,oBACE,gBACA,eACA,cZ3hDmB,eY6hDnB,iBACA,kBACA,4BAEA,aZlhDmB,6BYshDnB,cACE,gBACA,uBACA,uCAIJ,UACE,kBACA,CL5iDU,mEKmjDZ,aLnjDY,uBKujDZ,aLxjDc,4DK8jDV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UZnlDM,0BYqlDJ,8BAIJ,WACE,eAGF,aACE,eACA,gBACA,uBACA,mBACA,qBAGF,eACE,wBAGF,cACE,+DAKA,yBACE,eAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cLzkD4B,eAEC,0DK0kD3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cLjmD4B,eAEC,WKkmD3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,iBAIJ,YACE,aACA,mBACA,cACA,eACA,cZhqDmB,wBYmqDnB,aZnqDmB,mBYuqDnB,aACE,4BAGF,oBACE,0CAGF,iBACE,6DAEA,iBACE,oBACA,qCACA,UACA,4EAGF,mBACE,gCACA,UACA,0BAKN,aACE,gBACA,iBACA,gBACA,gBACA,kCAGF,aACE,gBACA,gBACA,uBACA,+BAGF,aACE,qBACA,WAGF,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBZpuDqB,cYsuDnB,kBACA,uCACA,aACA,mBAEA,eACE,qBAGF,yBACE,oBAGF,yBACE,uBAGF,sBACE,sBAGF,sBACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BZzwDiB,2BY6wDnB,WACE,iBACA,uBACA,yBZhxDiB,8BYoxDnB,QACE,iBACA,uBACA,4BZvxDiB,6BY2xDnB,SACE,gBACA,2BACA,2BZ9xDiB,wBYoyDnB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZ1yDiB,WAHb,gBYgzDJ,uBACA,mBACA,yFAEA,kBZlyDiB,cAfA,UYszDf,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBZp0DiB,cYs0DjB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZ71DiB,WAHb,gBYm2DJ,uBACA,mBACA,oDAEA,SACE,oDAGF,kBZz1DiB,cAfA,iBY+2DrB,qBACE,eAGF,YACE,cACA,mBACA,2BACA,gBACA,kBACA,4BAEA,iBACE,uBAGF,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,gKAMJ,WAIE,mCAIJ,YACE,mBACA,uBACA,YACA,SAGF,WACE,kBACA,sBACA,aACA,sBACA,qBAEA,kBZl9DwB,8BYo9DtB,+BACA,KAIJ,aACE,CACA,qBACA,WACA,YACA,aAJA,YAYA,CARA,QAGF,WACE,sBACA,CACA,qBACA,kBACA,cAGF,aACE,cACA,sBACA,cZ9+DmB,qBYg/DnB,kBACA,eACA,oCACA,iBAGF,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WZziEM,qBY2iEN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCAMA,mEAHF,kBAII,4BACA,yBAIJ,+BACE,cZhjEiB,sBYojEnB,eACE,aACA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,YACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,2BACE,gBACA,uCAEA,SACE,SACA,wCAGF,eACE,wCAGF,gBACE,iBACA,qDAGF,UACE,gLAGF,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,iBACA,6DAGF,UACE,CAIA,yFAGF,eACE,8DAGF,gBACE,kBACA,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WL/uEM,kBKivEN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,4DAGF,kBAGE,yBAGF,aACE,iBAGF,eAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,mBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBZzyEiB,yBY2yEjB,gBACA,kBACA,eACA,gBACA,iBACA,WZl0EI,mDYu0ER,oBACE,gBAGF,WACE,gBACA,aACA,sBACA,yBACA,kBACA,gCAEA,gBACE,oBACA,cACA,gBACA,6BAGF,sBACE,8BAGF,MACE,kBACA,aACA,sBACA,iBACA,oBACA,oBACA,mDAGF,eACE,sBLx2EI,0BK02EJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,gBAMF,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAiBA,CAhBA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,kBACA,uBAEA,kBZp6EwB,0BYy6E1B,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,WACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,sCAGF,yBAjBF,aAkBI,iBAIJ,kBACE,eACA,gBACA,iBAGF,aACE,eACA,mBACA,mBACA,aACA,mBACA,kBACA,mBAEA,iCACE,yBAEA,kBACE,mCACA,aAKN,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,sBAIJ,qBACE,WACA,mBACA,cZ9+EmB,eYg/EnB,cACA,eACA,oBACA,SACA,iBACA,aACA,SACA,UACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cZngFmB,eYqgFnB,mBACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,eAGF,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,gDACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBZrlFwB,qCYulFxB,sEAGF,wBACE,4CAGF,wBZjlFqB,+EYqlFrB,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,sBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBZ7oFmB,cYipFrB,kBACE,WZpqFM,cYsqFN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cZnrFiB,kGYsrFjB,sBAGE,WZ5rFE,kCYgsFJ,aZ9qFiB,oBYorFrB,oBACE,iBACA,qBAGF,oBACE,kBACA,eACA,iBACA,gBACA,mBZ3sFwB,gBY6sFxB,iBACA,oBAGF,kBZjtF0B,cAiBR,iBYmsFhB,eACA,gBACA,eACA,yDAGF,kBZ1tF0B,cYguF1B,aACE,kBAGF,aZntFkB,cYqtFhB,8BACA,+BACA,4EAEA,0BAGE,CAHF,uBAGE,CAHF,kBAGE,kDAMA,sBACA,YACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,cACE,0DAEA,aZjvFY,0BYmvFV,sDAIJ,oBACE,cZ3wFe,sMY8wFf,yBAGE,oDAKN,aZnwFgB,0BYywFhB,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,cZnyFe,aYqyFf,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA1BF,YA2BI,yCAGF,eACE,aACA,iDAEA,aZ9zFe,qBYq0FrB,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,aACE,sBACA,WACA,SACA,WZj2FM,gBOCA,aKm2FN,oBACA,eACA,gBACA,SACA,UACA,kBACA,qBAEA,SACE,qCAGF,cAnBF,cAoBI,oDAIJ,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAKJ,uBACE,2BACA,gDAGF,aZj3FsB,6BYm3FpB,uDAGF,aZ33FqB,cY+3FrB,YACE,eACA,yBACA,kBACA,cZ/3FgB,gBYi4FhB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cZ96Fe,uBYg7Ff,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UZ17FE,yBYi8FJ,cACE,kBACA,YACA,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACA,YACA,SACA,2BAIA,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cZj+FmB,gBYm+FnB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,aZ/+FqB,oBYm/FrB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,YAGF,aACE,cZ7iGgB,6BY+iGhB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,yBAGF,iBACE,eACA,gBACA,cZvkGgB,mBAjBQ,eY2lGxB,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,cZrmGY,qCYymGd,cACE,gBACA,yBAKN,iBACE,cACA,uCAGE,aACE,WACA,kBACA,SACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,kFACA,gBAKN,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,2BACA,4BACA,uBAEA,QACE,SACA,yBACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,aZrqGmB,uBYyqGnB,sCACE,4CAEA,aZ5qGiB,yCY8qGf,4CAIJ,SAEE,yBAIJ,WACE,aACA,uBAGF,kBACE,iCAGF,iBACE,wBAGF,kBACE,SACA,cZttGmB,eYwtGnB,eACA,eACA,8BAEA,aACE,CAKA,kEAEA,UZvuGI,mBYyuGF,6BAKN,eACE,gBACA,gBACA,cZ9uGmB,0DYgvGnB,UACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,mCAIJ,kBACE,aACA,mCAIA,aZ3wGmB,0BY6wGjB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,sBAGF,oBACE,iBACA,oBAGF,aZ1xGkB,eY4xGhB,gBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,gCAGF,kBACE,gBZx6GM,WADA,eY46GN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,eZt7GQ,cAEa,SYu7GnB,UACA,WACA,YACA,kBACA,wBACA,CADA,oBACA,CADA,eACA,iEAEA,SAGE,cACA,yBAIJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,iBAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,aACE,SACA,QACA,WACA,YACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,8BACA,kBACA,iBACA,WZv/GE,gBYy/GF,eACA,+LAMA,6BACE,mEAKF,6BACE,6BAMR,kBACE,iBAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,aZliHqB,eYoiHnB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SEtiHF,sBACA,WACA,SACA,gBACA,oBACA,mBdbwB,cAFL,eckBnB,SACA,+EFgiHI,aACE,CEjiHN,qEFgiHI,aACE,CEjiHN,yEFgiHI,aACE,CEjiHN,0EFgiHI,aACE,CEjiHN,gEFgiHI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,aZvjHc,iBYyjHZ,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,aZnmHiB,0HYwmHjB,cAEE,gBACA,cZxlHY,kZY2lHZ,aAGE,gEAIJ,wBACE,iDAGF,eL3nHI,kBO0BN,CAEA,eACA,cdHiB,uCcKjB,UF8lHI,mBZ3nHe,oDc+BnB,adPiB,ecSf,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,WdlDI,sDYkoHJ,WACE,mDAGF,UZtoHI,kBYwoHF,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UZzpHQ,kBY2pHN,cACA,mBACA,sBZ5pHM,eY8pHN,gBACA,YACA,kBACA,WACA,yBAEA,SACE,iBAIJ,aACE,iBACA,wBAGF,aZ5qHqB,qBY8qHnB,mBACA,gBACA,sBACA,uCAGF,aZjqHkB,mBAjBQ,kBYsrHxB,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBAEA,sCAdF,cAeI,kDAGF,eACE,2CAGF,aZ3rHmB,qBY6rHjB,uDAEA,yBACE,eAKN,qBACE,8BAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA1BF,qBAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,mCAIJ,8BACE,2DACA,CADA,kDACA,iCAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,EA/BF,wBAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,kCAIJ,yBACE,8EACA,CADA,qEACA,8BAGF,eL/xHQ,kBKiyHN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBL3zHM,kBK6zHN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,4BAGE,2DAIJ,WACE,wBAKF,2BACE,cAIJ,kBACE,8BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBZz3HwB,kCY23HxB,uBAGF,MACE,aACA,mBACA,uBACA,cZp4HmB,eYs4HnB,gBACA,0BACA,kBACA,kBAGF,YACE,cZ74HmB,gBY+4HnB,aACA,sBAEA,cACE,kBACA,uBAGF,cACE,gBACA,cACA,0BAIJ,aACE,4BAGF,UACE,WACA,kBACA,mBZz5HsB,kBY25HtB,eACA,2BAGF,iBACE,OACA,MACA,WACA,mBZh6HmB,kBYk6HnB,eAGF,aACE,eACA,iBACA,gBACA,WACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,CACA,UACA,YACA,eACA,CAQE,6GAKN,SACE,oBACA,CADA,WACA,6BAGF,iBACE,gBL99HM,uCKg+HN,kBACA,iBACA,gBACA,iCAEA,yBACE,oCAGF,sBACE,2BAIJ,UZ/+HQ,aYi/HN,eACA,aACA,kEAEA,kBZn+HmB,WAlBb,UYy/HJ,CZz/HI,4RY8/HF,UZ9/HE,wCYogIN,kBACE,iCAIJ,YACE,mBACA,uBACA,kBACA,oCAGF,aACE,cZ9gImB,2CYihInB,eACE,cACA,WZthII,CY2hIA,wQADF,eACE,mDAON,eLjiIM,0BKmiIJ,qCACA,gEAEA,eACE,0DAGF,kBZzhIiB,uEY4hIf,UZ9iIE,uDYojIN,yBACE,sDAGF,aACE,sCACA,SAIJ,iBACE,gBAGF,SErjIE,sBACA,WACA,SACA,gBACA,oBACA,mBdbwB,cAFL,eckBnB,SACA,cF+iIA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,sCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,sCACA,eACA,WACA,YACA,cZpnIiB,eYsnIjB,oBACA,0BAEA,mBACE,WACA,0BAIJ,uBACE,iCAEA,mBACE,uBACA,gCAIJ,QACE,uBACA,cZtnIkB,eYwnIlB,uCAEA,uBACE,sCAGF,aACE,yBAKN,aZroIkB,mBYuoIhB,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,cZ7pIc,iCYgqId,oBACE,iBACA,8FAIJ,eAEE,0BAIJ,aACE,aACA,cZjsImB,qBYmsInB,+FAEA,aAGE,0BACA,uBAIJ,YACE,cZ9sImB,kBYgtInB,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,8BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,cL7tI0B,eAEC,CKuuI7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,6BACE,sBACA,SACA,WZ1zIM,eY4zIN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,cZr2IiB,mFYw2IjB,yBAGE,wBAKN,oBACE,sBAGF,qBZv3IQ,YYy3IN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wBZh3IqB,qBYo3IrB,iBACE,UACA,QACA,YACA,6CAGF,kBZ14IqB,WAHb,kBYk5IN,gBACA,aACA,sBACA,oBAGF,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,mDAGF,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,aZj8ImB,SYo8IjB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,CZr9IE,wyEY49IF,UAGE,sBAMR,sBACE,eAGF,iBACE,eACA,mBACA,sBAEA,eACE,WZ/+II,kBYi/IJ,eACA,qBAGF,kBZh/IwB,cAFL,gBYq/IjB,aACA,kBACA,kBAIJ,oBACE,eACA,gBACA,iBACA,wFAGF,kBAME,WZ3gJM,kBY6gJN,gBACA,eACA,YACA,kBACA,sBACA,4NAEA,aACE,eACA,mBACA,wLAGF,WACE,UACA,kBACA,SACA,WACA,kRAGF,aACE,wBAKF,eLviJM,CPEa,gBYwiJjB,oBACA,iEL3iJI,2BPEa,yBYijJrB,iBACE,aACA,iCAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,2GAIJ,YAIE,8BACA,mBZhkJmB,aYkkJnB,iBACA,2HAEA,aACE,iBACA,cZvkJiB,mBYykJjB,2IAGF,aACE,6BAIJ,cACE,2BAGF,WACE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,aZtnJmB,iLY0nJnB,UZ5oJM,qCYipJN,oDAjBF,eAkBI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,UZ3qJI,gBOCA,aK6qJJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,eL7rJI,yBK+rJF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,UZ9sJE,oBYgtJA,eACA,gBLhtJA,+CKqtJJ,YACE,8BACA,mBACA,4CAIJ,aACE,WZ9tJI,eYguJJ,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,UZzuJI,eY2uJF,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eACE,eACA,wBAEA,eACE,iBACA,2CAGF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,UZrxJE,aYuxJA,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBZpxJW,WAlBb,uDY6yJA,iBACE,oMAUR,aACE,iIAIJ,4BAIE,cZ9zJmB,eYg0JnB,gBACA,6cAEA,aAGE,6BACA,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,UZj3JI,CYm3JF,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,wBZh3JqB,WYk3JnB,kBACA,MACA,OACA,aACA,6BAGF,aACE,kBACA,WZ74JM,8BY+4JN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,2DAKE,YACE,wDAKF,SACE,uBAKN,eACE,6BAEA,UACE,kBAIJ,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cZt6Jc,iBYw6Jd,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cZp8JY,gBYs8JZ,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,aZv9Jc,gBY+9JhB,cACA,CACA,iBACA,CACA,UACA,qCANF,qBACE,CACA,eACA,CACA,iBAYA,CAVA,qBAGF,QACE,CACA,aACA,WACA,CACA,iBAEA,qEAGE,cACE,MACA,gCAKN,cACE,cACA,qBACA,cZ9gKmB,kBYghKnB,UACA,mEAEA,WAEE,WACA,CAIA,2DADF,mBACE,CADF,8BACE,CADF,gBZ3hKM,CY4hKJ,wBAIJ,UACE,YACA,CACA,iBACA,MACA,OACA,UACA,gBZviKM,iCY0iKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,qCAGF,cACE,YACA,oBACA,CADA,8BACA,CADA,gBACA,kBACA,QACA,2BACA,WACA,UACA,sCAGF,0BACE,2BACA,gBACA,kBACA,qKAMA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,oCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gBLxoKM,eK0oKN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,qBAGF,eACE,gBACA,UACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gBZptKI,cAEa,gBYqtKjB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,0DAEA,aACE,wBAIJ,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,ULpxKE,+EK4xKN,cAGE,gBACA,6BAGF,ULnyKM,iBKqyKJ,yBAGF,oBACE,aACA,mDAGF,UL7yKM,uBKkzKN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,WLl2KE,sFKq2KF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,kBAON,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,gBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WZ7/KF,gBY+/KE,gBACA,uBACA,0CAGF,aACE,eACA,cZngLW,gBYqgLX,gBACA,uBACA,yBAKN,kBZ1gLsB,aY4gLpB,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,6BAOV,YACE,eACA,gBACA,wBAGF,QACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cZ3lLiB,eY6lLjB,eACA,gBACA,kBACA,qBACA,kBACA,yJAEA,aZpmLiB,qWYumLf,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,cAOV,kBZ9oL0B,sBYipLxB,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,2BAKN,eACE,gBAGF,eLvsLQ,kBO0BN,CACA,sBACA,gBACA,cdHiB,uCcKjB,mBAEA,adPiB,ecSf,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,WdlDI,UY4sLR,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cZptLiB,gBYstLjB,gBAEA,aZzsLiB,0BY2sLf,sBAEA,oBACE,4BAMR,GACE,cACA,eACA,WATM,mBAMR,GACE,cACA,eACA,qEAGF,kBAIE,sBAEE,8BACA,iBAGF,0BACE,kCACA,+BAIA,qDACE,uEACA,+CAGF,sBACE,8BACA,6DAIA,6BACE,6CACA,4EAIF,6BACE,6CACA,+CAOJ,gBAEE,+BAGF,gBACE,6CAEA,0BACE,wDAGF,eACE,6DAGF,iBACE,iBACA,2EAIA,mBACE,UACA,gCACA,WACA,0FAGF,mBACE,UACA,oCACA,eAOV,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBZl1LoB,WALlB,eY01LF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,sBAMJ,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cZ/2Lc,CYk3Ld,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,qBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,uCAEA,SACE,kCAKN,aACE,cACA,mBAIJ,cACE,kBACA,MACA,OACA,WACA,YACA,8BACA,cAGF,kBZh8L0B,sBYk8LxB,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kBZt/L0B,sBYw/LxB,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,cAIJ,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBL3iMM,yDK8iMN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBLtjMI,uBK0jMN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UZxlMI,eY0lMF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,4BAKN,aZ/mMqB,eYinMnB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WZtuMA,gBYwuMA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cZ5uMW,gBY8uMX,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,WZnwME,gDYuwMJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,aZ1wMU,yBYgxMd,cACE,gCAEA,cACE,cZ1xMe,eY4xMf,kCAEA,oBACE,cZ/xMa,qBYiyMb,iBACA,gBACA,yCAEA,eACE,WZzyMF,iBYkzMN,aZ5xMgB,mBY8xMd,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cZtzMY,gBYwzMZ,uBACA,mBACA,4BAEA,eACE,uBAGF,aZn1Me,qBYq1Mb,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cZ92Me,0BYk3MjB,aACE,WACA,2CAEA,mCACE,yBACA,0CAGF,wBACE,eAMR,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,uBAGF,oBACE,mBZt4MiB,kBYw4MjB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cZ36Me,kBY66Mf,+BAGF,aZh7MiB,eYk7Mf,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UZ77ME,qBY+7MA,oHAEA,yBAGE,0BAKN,qBACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UZz9MI,OeDR,eACE,eACA,UAEA,kBACE,kBACA,cAGF,iBACE,MACA,OACA,YACA,qBACA,kBACA,mBACA,sBAEA,kBACE,aAIJ,iBACE,aACA,cACA,iBACA,eACA,gBACA,gEAEA,YAEE,gCAGF,aACE,8BAGF,aACE,sBACA,WACA,eACA,Wf3CE,Ue6CF,oBACA,gBR7CE,sBQ+CF,kBACA,iBACA,oCAEA,oBflCe,wBeuCjB,cACE,sBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBf/EY,8EeoFZ,gBAGE,gBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,CACA,oBACA,iBACA,gBACA,mBACA,cACA,mBAGF,UACE,iBACA,eAGF,eACE,mBACA,cf5Gc,aegHhB,cACE,uBACA,UACA,SACA,SACA,cfrHc,0BeuHd,kBACA,mBAEA,oBACE,sCAGF,kCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,yBACE,gCAEA,YACE,2CAGF,yBACE,aACA,aACA,mBACA,mGAEA,YAEE,+GAEA,oBfjKe,sDeuKnB,cACE,gBACA,iBACA,YACA,oBACA,cfvKkB,sCe0KlB,gCAGF,YACE,mBACA,4CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WflNI,qBeoNJ,WACA,UACA,oBACA,qXACA,sBACA,kBACA,CACA,yBACA,mDAGF,UACE,cAIJ,af9MkB,qBeiNhB,+BACE,6BAEA,8BACE,eC5ON,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,cCtBJ,cACE,qBACA,WjBDM,2BiBIN,qBAEE,iBACA,+BAGF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mBjBlBiB,4BiBsBnB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,cjBjCmB,ciBmCnB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,ajBrCqB,mCiBwCnB,aACE,oDAGF,WACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBjBtDmB,uBiB2DnB,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gBV5FM,sBU8FN,sGAEA,mCAEE,oBAKF,2BACA,gBVxGM,0BU2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,6BACA,WjBnHI,yBiBqHJ,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,mCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gBVpKI,mBUyKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,cjB7JiB,mDiBgKjB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,YCrMF,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,iDACE,eACA,gBACA,gBACA,qBACA,clBlBmB,oBkBqBnB,alBNmB,0BkBQjB,6EAEA,oBAGE,wCAIJ,alBhCmB,oBkBqCnB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,clB/CiB,qBkBmDnB,iBACE,clBpDiB,uBkBwDnB,eACE,mBACA,kBACA,kBACA,yHAGF,4CAME,mBACA,oBACA,gBACA,clBxEiB,qBkB4EnB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,clBnJe,iCkBuJjB,uBACE,gBACA,gBACA,clBvIY,qDkB2Id,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,kDACA,eACA,iBACA,WlBrNI,iBkBuNJ,kBACA,qEAEA,aAEE,6CAIA,alB7Ne,oCkBkOjB,4CACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,4CACE,eACA,iBACA,gBACA,clB7Pe,mBkB+Pf,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAEA,UACE,YACA,CACA,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iCAIJ,cACE,mCAEA,aACE,WlB1SA,qBkB4SA,uDAGE,yBACE,2CAKN,aACE,clBnTa,kCkB2TnB,iDAEE,CACA,eACA,eACA,iBACA,mBACA,clBlUiB,sCkBqUjB,alBtTiB,0BkBwTf,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,4CACE,eACA,iBACA,gBACA,mBACA,clB5ViB,wBkB+VjB,iDACE,cACA,eACA,gBACA,cACA,kBAIJ,4CACE,eACA,iBACA,gBACA,mBACA,clB7WiB,kBkBkXjB,clBlXiB,mCkBiXnB,4CACE,CACA,gBACA,gBACA,mBACA,clBtXiB,kBkB2XjB,clB3XiB,kBkBoYjB,clBpYiB,mCkBmYnB,4CACE,CACA,gBACA,gBACA,mBACA,clBxYiB,kBkB6YjB,clB7YiB,mCkBqZnB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,6CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBlB/bwB,kBkBictB,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAGF,UACE,YACA,0BACA,mDAGF,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA7DF,iBA8DI,mFAIJ,qBAGE,mBlBxjBsB,kBkB0jBtB,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,alB1lBiB,qCkB8lBjB,eACE,WlBlmBE,gBkBomBF,ClBjmBe,yFkBsmBb,alBtmBa,+CkB4mBjB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SlBxrBI,YkB0rBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,gBACA,eACA,clB9sBe,6BkBktBjB,eACE,iBACA,+BAGF,kBlBrtBsB,akButBpB,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,4CACE,eACA,gBACA,cACA,qCAGF,cACE,clB7vBa,uFkBmwBnB,eACE,cASA,ClB7wBiB,2CkB0wBjB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,clB71BiB,qBkB+1BjB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,clB/1Bc,SmBvBlB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBnBrBwB,UmB0BxB,anBbmB,0BmBejB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBnB9DsB,6BmBgEpB,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+CACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,cnB1GmB,gBmB4GnB,0DAEA,UnBjHM,wDmBqHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBnB5JsB,sBmB8JtB,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBnB3KsB,gCmB8KtB,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBnBnMsB,uCmBsMpB,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,cnB7Oa,gBmB+Ob,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,uCAEA,iBACE,sCAGF,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBC7RN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBpBZoB,YoBcpB,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SpBzCA,YoB2CE,kBACA,YACA,uCAIJ,aACE,cpB/Ca,qBoBiDb,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,cpBzFa,qBoB2Fb,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UpB1GA,yBoB4GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UpBlIE,yBAkBa,gBoBmHb,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,apBlNiB,eoBoNf,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,apB7NiB,eoB+Nf,iBACA,gBACA,mBACA,4BAGF,cACE,gBACA,cpBvOe,mBoByOf,kBACA,gCACA,4BAGF,cACE,cpB/Oe,iBoBiPf,gBACA,0CAGF,UpBxPI,gBoB0PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WpBxQE,oBoB0QF,iBACA,gBACA,gBACA,2BAGF,cACE,iBACA,cpB/Qe,mBoBiRf,kCAEA,UpBtRE,gBoBwRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,6CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA7SF,aA8SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BpBjUe,YoBwUrB,UACE,SACA,cACA,WACA,sDAKA,apBhWmB,0DoBmWjB,apBpViB,4DoByVnB,apBlWc,gBoBoWZ,4DAGF,ab7WU,gBa+WR,0DAGF,apB/VgB,gBoBiWd,0DAGF,abrXU,gBauXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,eACA,CAII,iNADF,eACE,2BAKN,oBACE,cpB/Ze,qBoBiaf,eACA,gBACA,gCACA,iCAEA,UpBzaE,gCoB2aA,oCAGF,apB5Ze,gCoB8Zb,CAkBJ,gBAIJ,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,cpBpeiB,CoByeb,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,apBpiBmB,qBoBsiBjB,oBAEA,yBACE,SAKN,aACE,YAGF,kBACE,iBACA,oBAEA,YACE,2BACA,mBACA,aACA,mBpBvkBsB,cAFL,0BoB4kBjB,eACA,kBACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,apBllBgB,oBoBslBhB,kBACE,0BACA,aACA,cpB5mBiB,gDoB8mBjB,eACA,qBACA,gBACA,kBAGF,cACE,kBACA,cpBnmBc,2BoBumBhB,iBACE,SACA,WACA,WACA,YACA,kBACA,oCAEA,kBpB5nBY,oCoBgoBZ,kBACE,mCAGF,kBpB3nBiB,sDoBgoBnB,apB/oBmB,qBoBmpBjB,gBACA,sBAGF,aACE,0BAGF,apB3pBmB,sBoB+pBnB,apBzpBc,yDoB8pBhB,oBAIE,cpBxqBmB,iGoB2qBnB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBpB9sBc,yBoBktBd,yBACE,wBAGF,yBb1tBU,wBa+tBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,apBzuBiB,uBoB+uBjB,wBACA,qBAGF,apBhuBgB,coBquBlB,kBpBtvB0B,kBoBwvBxB,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,cpB9wBe,iBoBgxBf,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,ab7xBM,6BaoyBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,cpBlzBa,mLoBqzBb,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,apB9yBU,iBoBgzBR,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,cpB70Ba,WoBo1BrB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,apB53BY,8CoBi4Bd,qBACE,aACA,WpB54BI,coBi5BR,iBACE,sBCn5BF,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WrBtCI,6CqBwCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,crB/CiB,kBqBiDjB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,arBpEmB,gBqBsEjB,qBACA,UC3EJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,0BAGF,SACE,WACA,0DAGF,iBAEE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,qEACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,kkEC7ZJ,kIACE,CADF,sIACE,qBACA,MCDF,6CACE,CjBFM,qCiBSN,UjBTM,sDiBcR,wBAEE,sMAEA,UjBlBM,gGiB0BR,ejB1BQ,yBiBgCN,aACA,uBAGF,kBACE,oCAGF,ejBxCQ,gCiB2CN,8BAGF,sBACE,iBACA,kBACA,qCAGF,wBAEE,oCAGF,ejBzDQ,yBiB4DN,qCAEA,mCALF,YAMI,+DAGF,SACE,QACA,gIAIJ,ejBxEQ,+BiBgFR,axB/DqB,8GwBkEnB,axBlEmB,gBOjBb,gDiB2FR,iBjB3FQ,4BiB+FR,axB7FqB,0BwB+FnB,iIAGF,aAIE,6cAEA,UxB3GM,oBwBkHR,kBACE,gCACA,wDAKA,ejBxHM,gCiB0HJ,4MAEA,kBxBxHsB,kCwBgI1B,4BACE,gCACA,qCAEA,iCAJF,YAKI,qUAIJ,wBAYE,qCAIA,eADF,YAEI,gBACA,sCAIJ,YACE,gBACA,oCAGF,oXACE,uEAGF,wBAEE,2BAGF,wBACE,aACA,8CAGF,kBxBlL0B,yBwBoLxB,aACA,gCAGF,ejB5LQ,yBiB+LN,0BAGF,o1BACE,oFAME,aACE,6QAEA,UjB5ME,gFiBmNJ,aACE,2GAEA,aACE,CAHF,iGAEA,aACE,CAHF,qGAEA,aACE,CAHF,sGAEA,aACE,CAHF,4FAEA,aACE,CAMJ,8FAGF,kBACE,yPAIA,kBAIE,iBAKN,oBACE,6BAEA,kBACE,0BAIJ,+BACE,qBxBnPwB,kBwBwP1B,kBxBxP0B,uBwB4P1B,kBACE,wCAGF,kBACE,+CAGF,ejBxQQ,0GiB8QR,kBxB1Q0B,sHwB8QxB,kBACE,uCAKJ,kBxBpR0B,uEwByR1B,UjB7RQ,0BiBiSR,wBxB7R0B,gBwBkS1B,ejBtSQ,4BiB0SJ,sBjB1SI,2BiB8SJ,qBjB9SI,8BiBkTJ,wBjBlTI,6BiBsTJ,uBjBtTI,wBiB4TJ,ejB5TI,cPEa,85BwBkUrB,UjBpUQ,2BiB4VR,2BACE,uNAIF,ejBjWQ,yBiB6WN,wBAGF,0BACE,0BAGF,wBACE,mCAGF,kBACE,yBACA,aACA,8BAGF,UjB9XQ,6JiBkYR,kBAME,+2DAIE,qBAGE,qBAKN,ejBpZQ,yDiBwZR,ejBxZQ,yBiB0ZN,+DAEA,oBACE,gBjB7ZI,qBiBkaR,kBxBhaqB,sEwBoarB,kBACE,4FAGF,kBACE,uCAIF,UxBhbQ,gBOCA,WiBqbR,ejBrbQ,yBiBubN,gBACA,qCAEA,UALF,YAMI,kBAGF,mBACE,wBACA,4BACA,oEAEA,kBxB/bsB,yFwBscpB,sBAGE,4BxB5ba,uBwBocrB,exBrdQ,4BwBudN,kMAGF,ejB1dQ,yBiBoeN,qCAEA,iMAZF,aAaI,eACA,aACA,8BAIJ,YACE,gBACA,oLASE,oBACE,+BAKN,ejB9fQ,yBiBggBN,aACA,qCAEA,8BALF,QAMI,kBAIJ,axBtgBqB,0EwB2gBnB,kBxBzgBwB,qCwB+gBxB,kBAPF,QAQI,sDAIJ,oBxBvgBqB,mVwB2gBnB,UjB5hBM,mMiBoiBN,kBxBnhBmB,oEwB2hBnB,oBAGE,kBAIJ,wBACE,8BAEA,YACE,yBAGF,exB1jBM,0HwB6jBJ,2BAGE,CxBjkBE,oGwB2kBF,UxB3kBE,0DwBqlBF,axBllBe,2CwBwlBf,UxB3lBE,6CwBgmBJ,axB7lBiB,6DwBimBjB,UxBpmBI,4CwB4mBN,eACE,8BACA,iBACA,oDxB7lBiB,awBmmBjB,yFAHF,oBxBhmBmB,qCwBymBnB,CxBzmBmB,2HwBmnBnB,axBnnBmB,qBwBwnBrB,UjBzoBQ,yBiB4oBN,SjB5oBM,2CiBkpBN,wBACE,qCAEA,0CAHF,YAII,kGAIJ,eAGE,sEAGF,exBhqBM,yBwBmqBJ,wBAGF,kBxBlqBwB,yBwBoqBtB,qCAEA,uBAJF,QAKI,+GAIA,kBAGE,8CAMJ,kBACE,oDAEA,eACE,mDAKF,exBjsBE,yBwBmsBA,aACA,wDAGF,iBxBvsBE,qCwB2sBF,2CAXF,exBhsBI,yBwB6sBA,aACA,kHAMA,UjBptBA,qCiBwtBE,gHAJF,UxBrtBA,mEwBiuBF,QACE,2FAGF,oBACE,yFAMR,yCAEE,0PAGF,eAaE,sKAGF,UxBjwBQ,0D","file":"skins/vanilla/mastodon-light/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#ccd7e0 rgba(255,255,255,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#ccd7e0;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#c6d2dc}::-webkit-scrollbar-thumb:active{background:#ccd7e0}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(255,255,255,.1)}::-webkit-scrollbar-track:hover{background:#d9e1e8}::-webkit-scrollbar-track:active{background:#d9e1e8}::-webkit-scrollbar-corner{background:transparent}body{font-family:\"mastodon-font-sans-serif\",sans-serif;background:#eff3f5;font-size:13px;line-height:18px;font-weight:400;color:#000;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",\"mastodon-font-sans-serif\",sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#d9e1e8}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.player{text-align:center}body.embed{background:#ccd7e0;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#e6ebf0;padding:0}body.error{position:absolute;text-align:center;color:#282c37;background:#d9e1e8;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog__illustration img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div,.app-holder>noscript{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.app-holder>noscript{height:100vh}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.error-boundary,.app-holder noscript{flex-direction:column;font-size:16px;font-weight:400;line-height:1.7;color:#dc2f4b;text-align:center}.error-boundary>div,.app-holder noscript>div{max-width:500px}.error-boundary p,.app-holder noscript p{margin-bottom:.85em}.error-boundary p:last-child,.app-holder noscript p:last-child{margin-bottom:0}.error-boundary a,.app-holder noscript a{color:#2b90d9}.error-boundary a:hover,.error-boundary a:focus,.error-boundary a:active,.app-holder noscript a:hover,.app-holder noscript a:focus,.app-holder noscript a:active{text-decoration:none}.error-boundary__footer,.app-holder noscript__footer{color:#444b5d;font-size:13px}.error-boundary__footer a,.app-holder noscript__footer a{color:#444b5d}.error-boundary button,.app-holder noscript button{display:inline;border:0;background:transparent;color:#444b5d;font:inherit;padding:0;margin:0;line-height:inherit;cursor:pointer;outline:0;transition:color 300ms linear;text-decoration:underline}.error-boundary button:hover,.error-boundary button:focus,.error-boundary button:active,.app-holder noscript button:hover,.app-holder noscript button:focus,.app-holder noscript button:active{text-decoration:none}.error-boundary button.copied,.app-holder noscript button.copied{color:#4a905f;transition:none}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#000;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#000;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px}.account-header .name{flex:1 1 auto;color:#282c37;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#000}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#b3c3d1}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#282c37;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#000}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#a6b9c9;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#99afc2}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#282c37}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#fff}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#ccd7e0;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #ccd7e0;background:#f2f5f7}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#ccd7e0;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#000;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#000;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#282c37}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#282c37;padding:10px;border-right:1px solid #ccd7e0;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9bcbed;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b90d9;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#282c37}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#000;font-family:\"mastodon-font-display\",sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #b3c3d1}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#282c37}.public-layout .public-account-header__extra__links a{display:inline-block;color:#282c37;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#000}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#217aba}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#4a905f}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#000}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#282c37}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #c0cdd9}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #c0cdd9}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#d9e1e8}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#ccd7e0}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#6d8ca7}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#6d8ca7}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{font-weight:700;margin-bottom:8px;color:#282c37}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#6d8ca7}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#6d8ca7}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#60829f}.compact-header h1{font-size:24px;line-height:28px;color:#282c37;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#282c37}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#d9e1e8;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#282c37;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#131419}.hero-widget__text a{color:#282c37;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;font-weight:700;font-size:14px;color:#282c37}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#282c37}.box-widget{padding:20px;border-radius:4px;background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #444b5d;text-align:center;color:#282c37;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#282c37;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;font-weight:700;font-size:14px;color:#282c37}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#282c37;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2);color:#282c37;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#282c37}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#282c37;margin-bottom:10px}.page-header{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#000;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#282c37}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#ccd7e0}.page-header h1{font-size:24px}}.directory{background:#d9e1e8;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#d9e1e8;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#c0cdd9}.directory__tag.active>a{background:#2b90d9;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#282c37}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#282c37}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small,.directory__tag.active h4 .trends__item__current{color:#000}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#2b90d9}.directory__tag .trends__item__current{padding-right:0}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#f2f5f7;border:2px solid #d9e1e8}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;color:#282c37;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #c0cdd9}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#000}.accounts-table__count small{display:block;color:#282c37;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #a6b9c9}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#282c37}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#2b90d9}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#e6ebf0;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#000;border-bottom:1px solid #ccd7e0}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #ccd7e0}code{font-family:\"mastodon-font-monospace\",monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#000;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#2b90d9;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#282c37}.simple_form .hint a{color:#2b90d9}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#fff}.simple_form .hint li{list-style:disc;margin-left:18px}.simple_form ul.hint{margin-bottom:15px}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#282c37}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#000;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#000;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#000;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .required abbr{text-decoration:none;color:#c1203b}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#000;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#000;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #444b5d;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#000;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#f9fafb;border:1px solid #fff;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#1f232b}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#c1203b}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#4a905f}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#fff}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#2b90d9;background:#f2f5f7}.simple_form .input.field_with_errors label{color:#c1203b}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#c1203b}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#c1203b;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#2b90d9;color:#000;font-size:18px;line-height:inherit;height:auto;padding:10px;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#2482c7}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#419bdd}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9bcbed}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#db2a47}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#e3566d}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#000;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#f9fafb url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #fff;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#444b5d;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(249, 250, 251, 0), #f9fafb)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(217,225,232,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#000}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#c0cdd9;color:#282c37;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(74,144,95,.5);background:rgba(74,144,95,.25);color:#4a905f}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#282c37;text-decoration:none}.flash-message a:hover{color:#000;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#d9e1e8;color:#000;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#ccd7e0}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#282c37;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#2b90d9;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#217aba}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#282c37}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#282c37;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#282c37;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#000;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#000;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#282c37}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#000;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:\"mastodon-font-monospace\",monospace}.input-copy{background:#f9fafb;border:1px solid #fff;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:\"mastodon-font-monospace\",monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#4a905f;transition:none}.input-copy.copied button{background:#4a905f;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#e6ebf0;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#e6ebf0;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#c0cdd9}.card__img{height:130px;position:relative;background:#fff;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#ccd7e0;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#f2f5f7;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#000;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#000;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#000;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{color:#282c37}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#000}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2);color:#444b5d;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#282c37;background-color:rgba(40,44,55,.1);border:1px solid rgba(40,44,55,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#4a905f;background-color:rgba(74,144,95,.1);border-color:rgba(74,144,95,.5)}.account-role.admin,.simple_form .recommended.admin{color:#c1203b;background-color:rgba(193,32,59,.1);border-color:rgba(193,32,59,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #b3c3d1;border-bottom:1px solid #b3c3d1;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #b3c3d1}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#282c37;background:rgba(242,245,247,.5)}.account__header__fields dd{flex:1 1 auto;color:#282c37}.account__header__fields a{color:#2b90d9;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(74,144,95,.5);background:rgba(74,144,95,.25)}.account__header__fields .verified a{color:#4a905f;font-weight:500}.account__header__fields .verified__mark{color:#4a905f}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#282c37}.pending-account__header a{color:#282c37;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#000;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}.activity-stream--under-tabs{border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#d9e1e8}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#c0cdd9}.button.logo-button{flex:0 auto;font-size:14px;background:#2b90d9;color:#000;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#000}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#2074b1}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9bcbed}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.link-button{display:block;font-size:15px;line-height:20px;color:#2b90d9;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9bcbed;cursor:default}.button{background-color:#2b90d9;border:10px none;border-radius:4px;box-sizing:border-box;color:#000;cursor:pointer;display:inline-block;font-family:inherit;font-size:15px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#2074b1;transition:all 200ms ease-out}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled,.button.disabled{background-color:#9bcbed;cursor:default}.button::-moz-focus-inner{border:0}.button::-moz-focus-inner,.button:focus,.button:active{outline:0 !important}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#000;background:#9bcbed}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#8ac2ea}.button.button-alternative-2{background:#b0c0cf}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#a3b6c7}.button.button-secondary{color:#282c37;background:transparent;padding:3px 15px;border:1px solid #9bcbed}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#8ac2ea;color:#1f232b}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.icon-button{display:inline-block;padding:0;color:#606984;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#51596f;background-color:rgba(96,105,132,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(96,105,132,.3)}.icon-button.disabled{color:#828ba4;background-color:transparent;cursor:default}.icon-button.active{color:#2b90d9}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#282c37}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#373d4c;background-color:rgba(40,44,55,.15)}.icon-button.inverted:focus{background-color:rgba(40,44,55,.3)}.icon-button.inverted.disabled{color:#191b22;background-color:transparent}.icon-button.inverted.active{color:#2b90d9}.icon-button.inverted.active.disabled{color:#1d6ca4}.icon-button.overlayed{box-sizing:content-box;background:rgba(255,255,255,.6);color:rgba(0,0,0,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(255,255,255,.9)}.text-icon-button{color:#282c37;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#373d4c;background-color:rgba(40,44,55,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(40,44,55,.3)}.text-icon-button.disabled{color:#000;background-color:transparent;cursor:default}.text-icon-button.active{color:#2b90d9}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.compose-form{padding:10px}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#2b90d9}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9bcbed;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#2b90d9;background:#2b90d9}.compose-form .compose-form__warning{color:#000;margin-bottom:10px;background:#9bcbed;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.compose-form .compose-form__warning strong{color:#000;font-weight:500}.compose-form .compose-form__warning strong:lang(ja){font-weight:700}.compose-form .compose-form__warning strong:lang(ko){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-CN){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-HK){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-TW){font-weight:700}.compose-form .compose-form__warning a{color:#282c37;font-weight:500;text-decoration:underline}.compose-form .compose-form__warning a:hover,.compose-form .compose-form__warning a:active,.compose-form .compose-form__warning a:focus{text-decoration:none}.compose-form .emoji-picker-dropdown{position:absolute;top:5px;right:5px}.compose-form .compose-form__autosuggest-wrapper{position:relative}.compose-form .autosuggest-textarea,.compose-form .autosuggest-input,.compose-form .spoiler-input{position:relative;width:100%}.compose-form .spoiler-input{height:0;transform-origin:bottom;opacity:0}.compose-form .spoiler-input.spoiler-input--visible{height:36px;margin-bottom:11px;opacity:1}.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0}.compose-form .autosuggest-textarea__textarea::placeholder,.compose-form .spoiler-input__input::placeholder{color:#444b5d}.compose-form .autosuggest-textarea__textarea:focus,.compose-form .spoiler-input__input:focus{outline:0}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{font-size:16px}}.compose-form .spoiler-input__input{border-radius:4px}.compose-form .autosuggest-textarea__textarea{min-height:100px;border-radius:4px 4px 0 0;padding-bottom:0;padding-right:32px;resize:none;scrollbar-color:initial}.compose-form .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.compose-form .autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.compose-form .autosuggest-textarea__suggestions{box-sizing:border-box;display:none;position:absolute;top:100%;width:100%;z-index:99;box-shadow:4px 4px 6px rgba(0,0,0,.4);background:#282c37;border-radius:0 0 4px 4px;color:#000;font-size:14px;padding:6px}.compose-form .autosuggest-textarea__suggestions.autosuggest-textarea__suggestions--visible{display:block}.compose-form .autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.compose-form .autosuggest-textarea__suggestions__item:hover,.compose-form .autosuggest-textarea__suggestions__item:focus,.compose-form .autosuggest-textarea__suggestions__item:active,.compose-form .autosuggest-textarea__suggestions__item.selected{background:#3d4455}.compose-form .autosuggest-account,.compose-form .autosuggest-emoji,.compose-form .autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.compose-form .autosuggest-hashtag{justify-content:space-between}.compose-form .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-hashtag strong{font-weight:500}.compose-form .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-account-icon,.compose-form .autosuggest-emoji img{display:block;margin-right:8px;width:16px;height:16px}.compose-form .autosuggest-account .display-name__account{color:#282c37}.compose-form .compose-form__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.compose-form .compose-form__modifiers .compose-form__upload-wrapper{overflow:hidden}.compose-form .compose-form__modifiers .compose-form__uploads-wrapper{display:flex;flex-direction:row;padding:5px;flex-wrap:wrap}.compose-form .compose-form__modifiers .compose-form__upload{flex:1 1 0;min-width:40%;margin:5px}.compose-form .compose-form__modifiers .compose-form__upload__actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button{flex:0 1 auto;color:#282c37;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:hover,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:focus,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:active{color:#191b22}.compose-form .compose-form__modifiers .compose-form__upload__actions.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-description{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);padding:10px;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload-description textarea{background:transparent;color:#282c37;border:0;padding:0;margin:0;width:100%;font-family:inherit;font-size:14px;font-weight:500}.compose-form .compose-form__modifiers .compose-form__upload-description textarea:focus{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload-description textarea::placeholder{opacity:.75;color:#282c37}.compose-form .compose-form__modifiers .compose-form__upload-description.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-thumbnail{border-radius:4px;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;height:140px;width:100%;overflow:hidden}.compose-form .compose-form__buttons-wrapper{padding:10px;background:#fff;border-radius:0 0 4px 4px;display:flex;justify-content:space-between;flex:0 0 auto}.compose-form .compose-form__buttons-wrapper .compose-form__buttons{display:flex}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__upload-button-icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button{display:none}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button.compose-form__sensitive-button--visible{display:block}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button .compose-form__sensitive-button__icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .icon-button,.compose-form .compose-form__buttons-wrapper .text-icon-button{box-sizing:content-box;padding:0 3px}.compose-form .compose-form__buttons-wrapper .character-counter__wrapper{align-self:center;margin-right:4px}.compose-form .compose-form__publish{display:flex;justify-content:flex-end;min-width:0;flex:0 0 auto}.compose-form .compose-form__publish .compose-form__publish-button-wrapper{overflow:hidden;padding-top:10px}.character-counter{cursor:default;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:600;color:#282c37}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .spoiler-input{transition:height .4s ease,opacity .4s ease}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.reply-indicator{border-radius:4px;margin-bottom:10px;background:#9bcbed;padding:10px;min-height:23px;overflow-y:auto;flex:0 2 auto}.reply-indicator__header{margin-bottom:5px;overflow:hidden}.reply-indicator__cancel{float:right;line-height:24px}.reply-indicator__display-name{color:#000;display:block;max-width:100%;line-height:24px;overflow:hidden;padding-right:25px;text-decoration:none}.reply-indicator__display-avatar{float:left;margin-right:5px}.status__content--with-action{cursor:pointer}.status__content,.reply-indicator__content{position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:hidden;text-overflow:ellipsis;padding-top:2px;color:#000}.status__content:focus,.reply-indicator__content:focus{outline:0}.status__content.status__content--with-spoiler,.reply-indicator__content.status__content--with-spoiler{white-space:normal}.status__content.status__content--with-spoiler .status__content__text,.reply-indicator__content.status__content--with-spoiler .status__content__text{white-space:pre-wrap}.status__content .emojione,.reply-indicator__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img,.reply-indicator__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.reply-indicator__content p{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.reply-indicator__content p:last-child{margin-bottom:0}.status__content a,.reply-indicator__content a{color:#d8a070;text-decoration:none}.status__content a:hover,.reply-indicator__content a:hover{text-decoration:underline}.status__content a:hover .fa,.reply-indicator__content a:hover .fa{color:#353a48}.status__content a.mention:hover,.reply-indicator__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span,.reply-indicator__content a.mention:hover span{text-decoration:underline}.status__content a .fa,.reply-indicator__content a .fa{color:#444b5d}.status__content a.unhandled-link,.reply-indicator__content a.unhandled-link{color:#217aba}.status__content .status__content__spoiler-link,.reply-indicator__content .status__content__spoiler-link{background:#606984}.status__content .status__content__spoiler-link:hover,.reply-indicator__content .status__content__spoiler-link:hover{background:#51596f;text-decoration:none}.status__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner{border:0}.status__content .status__content__spoiler-link::-moz-focus-inner,.status__content .status__content__spoiler-link:focus,.status__content .status__content__spoiler-link:active,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link:focus,.reply-indicator__content .status__content__spoiler-link:active{outline:0 !important}.status__content .status__content__text,.reply-indicator__content .status__content__text{display:none}.status__content .status__content__text.status__content__text--visible,.reply-indicator__content .status__content__text.status__content__text--visible{display:block}.status__content.status__content--collapsed{max-height:300px}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#217aba;border:0;background:transparent;padding:0;padding-top:8px}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:transparent;border:0;color:#000;font-weight:700;font-size:12px;padding:0 6px;line-height:20px;cursor:pointer;vertical-align:middle}.status__wrapper--filtered{color:#444b5d;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #c0cdd9}.status__prepend-icon-wrapper{left:-26px;position:absolute}.focusable:focus{outline:0;background:#ccd7e0}.focusable:focus .status.status-direct{background:#b3c3d1}.focusable:focus .status.status-direct.muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#c0cdd9}.status{padding:8px 10px;padding-left:68px;position:relative;min-height:54px;border-bottom:1px solid #c0cdd9;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:26px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#c0cdd9;border-bottom-color:#b3c3d1}.status.light .status__relative-time{color:#444b5d}.status.light .status__display-name{color:#000}.status.light .display-name strong{color:#000}.status.light .display-name span{color:#444b5d}.status.light .status__content{color:#000}.status.light .status__content a{color:#2b90d9}.status.light .status__content a.status__content__spoiler-link{color:#000;background:#9bcbed}.status.light .status__content a.status__content__spoiler-link:hover{background:#78b9e7}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#444a5e}.status__relative-time,.notification__relative_time{color:#444b5d;float:right;font-size:14px}.status__display-name{color:#444b5d}.status__info .status__display-name{display:block;max-width:100%;padding-right:25px}.status__info{font-size:15px}.status-check-box{border-bottom:1px solid #282c37;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-left:68px;color:#444b5d;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#444b5d}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#606984}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#ccd7e0;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .status__content .status__content__spoiler-link{line-height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#444b5d;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.reply-indicator__content{color:#000;font-size:14px}.reply-indicator__content a{color:#282c37}.domain{padding:10px;border-bottom:1px solid #c0cdd9}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#000;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}.account{padding:10px;border-bottom:1px solid #c0cdd9}.account.compact{padding:0;border-bottom:0}.account.compact .account__avatar-wrapper{margin-left:0}.account .account__display-name{flex:1 1 auto;display:block;color:#282c37;overflow:hidden;text-decoration:none;font-size:14px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;position:relative}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;border-radius:50%;overflow:hidden;position:relative;cursor:default}.account__avatar-composite>div{float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#000;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}a .account__avatar{cursor:pointer}.account__avatar-overlay{width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__disclaimer{padding:10px;border-top:1px solid #c0cdd9;color:#444b5d}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-dropdown{padding:10px}.account__action-bar-dropdown .icon-button{vertical-align:middle}.account__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__right{left:6px;right:initial}.account__action-bar-dropdown .dropdown--active::after{bottom:initial;margin-left:11px;margin-top:-7px;right:initial}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-right:1px solid #c0cdd9;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab.active{border-bottom:4px solid #2b90d9}.account__action-bar__tab>span{display:block;font-size:12px;color:#282c37}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#000}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#000}.muted .emojione{opacity:.5}.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,a.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#282c37;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#000}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{height:48px;left:10px;position:absolute;top:10px;width:48px}.status__expand{width:68px;position:absolute;left:0;top:0;height:100%;cursor:pointer}.muted .status__content,.muted .status__content p,.muted .status__content a{color:#444b5d}.muted .status__display-name strong{color:#444b5d}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#b0c0cf;color:#000}.muted a.status__content__spoiler-link:hover{background:#9aaec2;text-decoration:none}.notification__message{margin:0 10px 0 68px;padding:8px 0 0;cursor:default;color:#282c37;font-size:15px;line-height:22px;position:relative}.notification__message .fa{color:#2b90d9}.notification__message>span{display:inline;overflow:hidden;text-overflow:ellipsis}.notification__favourite-icon-wrapper{left:-26px;position:absolute}.notification__favourite-icon-wrapper .star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#000;text-decoration:underline}.notification__relative_time{float:right}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.navigation-bar{padding:10px;display:flex;align-items:center;flex-shrink:0;cursor:default;color:#282c37}.navigation-bar strong{color:#282c37}.navigation-bar a{color:inherit}.navigation-bar .permalink{text-decoration:none}.navigation-bar .navigation-bar__actions{position:relative}.navigation-bar .navigation-bar__actions .icon-button.close{position:absolute;pointer-events:none;transform:scale(0, 1) translate(-100%, 0);opacity:0}.navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:auto;transform:scale(1, 1) translate(0, 0);opacity:1}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;line-height:20px;margin-top:-1px;overflow:hidden}.navigation-bar__profile-account{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile-edit{color:inherit;text-decoration:none}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #393f4f;margin:5px 7px 6px;height:0}.dropdown-menu{background:#282c37;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);z-index:9999}.dropdown-menu ul{list-style:none}.dropdown-menu.left{transform-origin:100% 50%}.dropdown-menu.top{transform-origin:50% 100%}.dropdown-menu.bottom{transform-origin:50% 0}.dropdown-menu.right{transform-origin:0 50%}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#282c37}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#282c37}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#282c37}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#282c37}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#282c37;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#2b90d9;color:#282c37;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#282c37;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#282c37;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#2b90d9;color:#282c37}.dropdown__icon{vertical-align:middle}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area.unscrollable{overflow-x:hidden}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#f2f5f7;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .drawer,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:350px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#d9e1e8;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.drawer{width:330px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden}.drawer__tab{display:block;flex:1 1 auto;padding:15px 5px 13px;color:#282c37;text-decoration:none;text-align:center;font-size:16px;border-bottom:2px solid transparent}.column,.drawer{flex:1 1 auto;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#c0cdd9;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#000;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #c0cdd9;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.tabs-bar__link:hover,.tabs-bar__link:focus,.tabs-bar__link:active{background:#adbecd;border-bottom-color:#adbecd}}.tabs-bar__link.active{border-bottom:2px solid #2b90d9;color:#2b90d9}.tabs-bar__link span{margin-left:5px;display:none}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;height:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px 15px 15px 78px;min-height:50px}.columns-area--mobile .status__avatar{left:15px;top:17px}.columns-area--mobile .status__content{padding-top:5px}.columns-area--mobile .status__prepend{margin-left:78px;padding-top:15px}.columns-area--mobile .status__prepend-icon-wrapper{left:-32px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{margin-left:78px;padding-top:15px}.columns-area--mobile .notification__favourite-icon-wrapper{left:-32px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}.columns-area--mobile .notification .account__avatar-wrapper{margin-left:17px;margin-right:15px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#3897db;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#227dbe}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.getting-started__trends,.search{margin-bottom:10px}.getting-started__panel{margin:10px 0}.column,.drawer{min-width:330px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#2b90d9;border:2px solid #c0cdd9;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#000}.column-link--transparent .icon-with-badge__badge{border-color:#f2f5f7}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .navigation-bar{padding-top:20px;padding-bottom:20px;flex:0 1 48px;min-height:20px}.compose-panel .flex-spacer{background:transparent}.compose-panel .compose-form{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px;padding-bottom:71px;margin-bottom:-71px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #ccd7e0;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#b0c0cf;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%;border-radius:2px}.drawer__inner.darker{background:#d9e1e8}.drawer__inner__mastodon{background:#b0c0cf url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:100%;height:100%;pointer-events:none;user-drag:none;user-select:none}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#b0c0cf;font-size:13px;text-align:left}.drawer__header{flex:0 0 auto;font-size:16px;background:#c0cdd9;margin-bottom:10px;display:flex;flex-direction:row;border-radius:2px}.drawer__header a{transition:background 100ms ease-in}.drawer__header a:hover{background:#cfd9e2;transition:background 200ms ease-out}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.column-back-button{box-sizing:border-box;width:100%;background:#ccd7e0;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;line-height:inherit;border:0;text-align:unset;padding:15px;margin:0;z-index:3;outline:0}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#ccd7e0;border:0;font-family:inherit;color:#2b90d9;cursor:pointer;white-space:nowrap;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#d9e1e8;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#f9fafb}.react-toggle--checked .react-toggle-track{background-color:#2b90d9}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#2074b1}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #d9e1e8;border-radius:50%;background-color:#fff;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#2b90d9}.column-link{background:#c0cdd9;color:#000;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#b6c5d3}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#282c37}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#000}.column-link--transparent.active{color:#2b90d9}.column-link__icon{display:inline-block;margin-right:5px}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#d9e1e8;padding:4px 8px;margin:-6px 10px}.column-subheading{background:#d9e1e8;color:#444b5d;padding:8px 20px;font-size:13px;font-weight:500;cursor:default}.getting-started__wrapper,.getting-started,.flex-spacer{background:#d9e1e8}.flex-spacer{flex:1 1 auto}.getting-started{color:#444b5d;overflow:auto;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.getting-started__wrapper,.getting-started__panel,.getting-started__footer{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex-grow:0}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#444b5d;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#282c37}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__wrapper,.getting-started__footer{color:#444b5d}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:13px;color:#282c37;padding:10px;font-weight:500;border-bottom:1px solid #c0cdd9}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#282c37}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#c0cdd9;border:1px solid #e6ebf0}.setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0;border-radius:4px}.setting-text:focus{outline:0}@media screen and (max-width: 600px){.setting-text{font-size:16px}}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#606984;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#2b90d9}.status-card{display:flex;font-size:14px;border:1px solid #c0cdd9;border-radius:4px;color:#444b5d;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#282c37;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#000}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}a.status-card{cursor:pointer}a.status-card:hover{background:#c0cdd9}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#282c37;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#282c37}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#c0cdd9;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#ccd7e0}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#ccd7e0}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.load-more{display:block;color:#444b5d;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#d3dce4}.load-gap{border-bottom:1px solid #c0cdd9}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#444b5d;background:#d9e1e8;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#444b5d}.regeneration-indicator__label span{font-size:15px;font-weight:400}.column-header__wrapper{position:relative;flex:0 0 auto}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;top:35px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(43, 144, 217, 0.23) 0%, rgba(43, 144, 217, 0) 60%)}.column-header{display:flex;font-size:16px;background:#ccd7e0;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden;border-top-left-radius:2px;border-top-right-radius:2px}.column-header>button{margin:0;border:0;padding:15px 0 15px 15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#2b90d9}.column-header.active{box-shadow:0 1px 0 rgba(43,144,217,.3)}.column-header.active .column-header__icon{color:#2b90d9;text-shadow:0 0 10px rgba(43,144,217,.4)}.column-header:focus,.column-header:active{outline:0}.column-header__buttons{height:48px;display:flex}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button{background:#ccd7e0;border:0;color:#282c37;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover{color:#191b22}.column-header__button.active{color:#000;background:#c0cdd9}.column-header__button.active:hover{color:#000;background:#c0cdd9}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#282c37;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #b3c3d1;margin:10px 0}.column-header__collapsible-inner{background:#c0cdd9;padding:15px}.column-header__setting-btn:hover{color:#282c37;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.column-header__icon{display:inline-block;margin-right:5px}.loading-indicator{color:#444b5d;font-size:13px;font-weight:400;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #86a0b6;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#86a0b6}29%{background-color:#86a0b6}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.video-error-cover{align-items:center;background:#fff;color:#000;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#fff;color:#282c37;border:0;padding:0;width:100%;height:100%;border-radius:4px;appearance:none}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{padding:0;color:#17191f}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:700}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:block;left:4px;top:4px;width:auto;height:auto}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(255,255,255,.5);border-radius:8px;padding:8px 12px;color:#000;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(255,255,255,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(255,255,255,.5)}.modal-container--preloader{background:#c0cdd9}.account--panel{background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#c0cdd9;padding:15px}.column-settings__section{color:#282c37;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#d9e1e8;color:#282c37;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#1f232b}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#ccd7e0}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#444b5d;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#c0cdd9}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#b3c3d1;color:#1f232b}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#282c37}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#444b5d}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#3b4151}.column-settings__hashtags .column-select__indicator-separator{background-color:#c0cdd9}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#444b5d;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#282c37}.column-settings__hashtags .column-select__menu h4{color:#444b5d;font-size:14px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#000}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#000;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#3d4455}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#000;margin-bottom:4px;display:block;vertical-align:top;background-color:#fff;font-size:12px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.setting-toggle{display:block;line-height:24px}.setting-toggle__label{color:#282c37;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.empty-column-indicator,.error-column{color:#444b5d;background:#d9e1e8;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column{contain:strict}}.empty-column-indicator>span,.error-column>span{max-width:400px}.empty-column-indicator a,.error-column a{color:#2b90d9;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover{text-decoration:underline}.error-column{flex-direction:column}@keyframes heartbeat{from{transform:scale(1);animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.no-reduce-motion .pulse-loading{transform-origin:center center;animation:heartbeat 1.5s ease-in-out infinite both}@keyframes shake-bottom{0%,100%{transform:rotate(0deg);transform-origin:50% 100%}10%{transform:rotate(2deg)}20%,40%,60%{transform:rotate(-4deg)}30%,50%,70%{transform:rotate(4deg)}80%{transform:rotate(-2deg)}90%{transform:rotate(2deg)}}.no-reduce-motion .shake-bottom{transform-origin:50% 100%;animation:shake-bottom .8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(40,44,55,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.upload-area{align-items:center;background:rgba(255,255,255,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#d9e1e8;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#282c37;font-size:18px;font-weight:500;border:2px dashed #b0c0cf;border-radius:4px}.upload-progress{padding:10px;color:#282c37;overflow:hidden;display:flex}.upload-progress .fa{font-size:34px;margin-right:10px}.upload-progress span{font-size:13px;font-weight:500;display:block}.upload-progess__message{flex:1 1 auto}.upload-progress__backdrop{width:100%;height:6px;border-radius:6px;background:#b0c0cf;position:relative;margin-top:5px}.upload-progress__tracker{position:absolute;left:0;top:0;height:6px;background:#2b90d9;border-radius:6px}.emoji-button{display:block;font-size:24px;line-height:24px;margin-left:2px;width:24px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px;margin-top:2px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.dropdown--active .emoji-button img{opacity:1;filter:none}.privacy-dropdown__dropdown{position:absolute;background:#fff;box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:4px;margin-left:40px;overflow:hidden}.privacy-dropdown__dropdown.top{transform-origin:50% 100%}.privacy-dropdown__dropdown.bottom{transform-origin:50% 0}.privacy-dropdown__option{color:#000;padding:10px;cursor:pointer;display:flex}.privacy-dropdown__option:hover,.privacy-dropdown__option.active{background:#2b90d9;color:#000;outline:0}.privacy-dropdown__option:hover .privacy-dropdown__option__content,.privacy-dropdown__option.active .privacy-dropdown__option__content{color:#000}.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,.privacy-dropdown__option.active .privacy-dropdown__option__content strong{color:#000}.privacy-dropdown__option.active:hover{background:#2485cb}.privacy-dropdown__option__icon{display:flex;align-items:center;justify-content:center;margin-right:10px}.privacy-dropdown__option__content{flex:1 1 auto;color:#282c37}.privacy-dropdown__option__content strong{font-weight:500;display:block;color:#000}.privacy-dropdown__option__content strong:lang(ja){font-weight:700}.privacy-dropdown__option__content strong:lang(ko){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-CN){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-HK){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-TW){font-weight:700}.privacy-dropdown.active .privacy-dropdown__value{background:#fff;border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1)}.privacy-dropdown.active .privacy-dropdown__value .icon-button{transition:none}.privacy-dropdown.active .privacy-dropdown__value.active{background:#2b90d9}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#000}.privacy-dropdown.active.top .privacy-dropdown__value{border-radius:0 0 4px 4px}.privacy-dropdown.active .privacy-dropdown__dropdown{display:block;box-shadow:2px 4px 6px rgba(0,0,0,.1)}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#d9e1e8;color:#282c37;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#1f232b}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#ccd7e0}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:transform,opacity;font-size:18px;width:18px;height:18px;color:#282c37;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(90deg)}.search__icon .fa-search.active{pointer-events:none;transform:rotate(0deg)}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#606984;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#51596f}.search-results__header{color:#444b5d;background:#d3dce4;padding:15px;font-weight:500;font-size:16px;cursor:default}.search-results__header .fa{display:inline-block;margin-right:5px}.search-results__section{margin-bottom:5px}.search-results__section h5{background:#e6ebf0;border-bottom:1px solid #c0cdd9;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#444b5d}.search-results__section h5 .fa{display:inline-block;margin-right:5px}.search-results__section .account:last-child,.search-results__section>div:last-child .status{border-bottom:0}.search-results__hashtag{display:block;padding:10px;color:#282c37;text-decoration:none}.search-results__hashtag:hover,.search-results__hashtag:active,.search-results__hashtag:focus{color:#1f232b;text-decoration:underline}.search-results__info{padding:20px;color:#282c37;text-align:center}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(255,255,255,.5);box-sizing:border-box;border:0;color:#000;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#282c37}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#000;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#2b90d9}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.onboarding-modal,.error-modal,.embed-modal{background:#282c37;color:#000;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#393f4f;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#282c37;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#313543;background-color:#4a5266}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#000}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#000}.error-modal__footer{justify-content:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#000;margin-bottom:5px;font-size:13px}.display-case__case{background:#d9e1e8;color:#282c37;font-weight:500;padding:10px;border-radius:4px}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#17191f;color:#000;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:block;max-width:100%;padding-right:25px}.boost-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:28px;left:10px;position:absolute;top:10px;width:48px}.boost-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#17191f}.actions-modal .status{background:#fff;border-bottom-color:#282c37;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#282c37}.boost-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#282c37;padding:10px;line-height:36px}.boost-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#282c37;padding-right:10px}.boost-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header{font-size:15px}.boost-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #282c37}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#2b90d9}.report-modal__statuses .status__content,.report-modal__statuses .status__content p,.focal-point-modal__content .status__content,.focal-point-modal__content .status__content p{color:#000}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #282c37;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #282c37;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #393f4f}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #282c37;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#000;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#000;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#000;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#2b90d9;color:#000}.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#282c37;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#313543;background-color:transparent}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#000;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.loading-bar{background-color:#2b90d9;height:3px;position:absolute;top:0;left:0;z-index:9999}.media-gallery__gifv__label{display:block;position:absolute;color:#000;background:rgba(255,255,255,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv.autoplay .media-gallery__gifv__label{display:none}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{margin-top:32px}.media-gallery__audio audio{width:100%}.attachment-list{display:flex;font-size:14px;border:1px solid #c0cdd9;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#444b5d;padding:8px 18px;cursor:default;border-right:1px solid #c0cdd9;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#444b5d;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#444b5d}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%}.media-gallery__item{border:0;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#282c37;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%}.media-gallery__item-thumbnail img{object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#fff}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;object-fit:cover;position:relative;top:50%;transform:translateY(-50%);width:100%;z-index:1}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#f2f5f7;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #ccd7e0;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(33,122,186,.5)}.audio-player__wave-placeholder{background-color:#a6b9c9}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#f2f5f7;border-top:1px solid #ccd7e0;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.video-player video{max-width:100vw;max-height:80vh;z-index:1}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#fff;color:#282c37;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#191b22}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#217aba}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#217aba;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#217aba}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#217aba;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#fff;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#ccd7e0;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#f2f5f7;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#000;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#d9e1e8;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #c0cdd9;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:0;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#e6ebf0;border-bottom:1px solid #c0cdd9;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#e6ebf0;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#282c37;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#282c37}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #c0cdd9}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #d9e1e8}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#dfe6ec;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #eff3f5}.filter-form{background:#d9e1e8}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9bcbed;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#217aba;background:#217aba}::-webkit-scrollbar-thumb{border-radius:0}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#444b5d;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{color:#444b5d;font-size:14px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#000}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#282c37;max-width:400px}noscript div a{color:#2b90d9;text-decoration:underline}noscript div a:hover{text-decoration:none}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}@media screen and (max-width: 630px)and (max-height: 400px){.tabs-bar,.search{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar{will-change:padding-bottom;transition:padding-bottom 400ms 100ms}.navigation-bar>a:first-child{will-change:margin-top,margin-left,margin-right,width;transition:margin-top 400ms 100ms,margin-left 400ms 500ms,margin-right 400ms 500ms}.navigation-bar>.navigation-bar__profile-edit{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar .navigation-bar__actions>.icon-button.close{will-change:opacity transform;transition:opacity 200ms 100ms,transform 400ms 100ms}.navigation-bar .navigation-bar__actions>.compose__action-bar .icon-button{will-change:opacity transform;transition:opacity 200ms 300ms,transform 400ms 100ms}.is-composing .tabs-bar,.is-composing .search{margin-top:-50px}.is-composing .navigation-bar{padding-bottom:0}.is-composing .navigation-bar>a:first-child{margin:-100px 10px 0 -50px}.is-composing .navigation-bar .navigation-bar__profile{padding-top:2px}.is-composing .navigation-bar .navigation-bar__profile-edit{position:absolute;margin-top:-60px}.is-composing .navigation-bar .navigation-bar__actions .icon-button.close{pointer-events:auto;opacity:1;transform:scale(1, 1) translate(0, 0);bottom:5px}.is-composing .navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:none;opacity:0;transform:scale(0, 1) translate(100%, 0)}}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#d9e1e8;color:#000;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#ccd7e0}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9}.account__moved-note__message{position:relative;margin-left:58px;color:#444b5d;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.column-inline-form{padding:15px;padding-right:0;display:flex;justify-content:flex-start;align-items:center;background:#ccd7e0}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 10px}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(255,255,255,.5)}.list-editor{background:#d9e1e8;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#b0c0cf;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#d9e1e8;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#b0c0cf}.list-adder__lists{background:#b0c0cf;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #c0cdd9}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#000;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.account__header__content{color:#282c37;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#e6ebf0}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#ccd7e0;padding:5px;border-bottom:1px solid #b3c3d1}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#f2f5f7;border:2px solid #ccd7e0}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #b3c3d1;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#000;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#000}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #b3c3d1}.account__header__bio .account__header__fields a{color:#217aba}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#4a905f}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#282c37;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#282c37;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#000}.trends__header{color:#444b5d;background:#d3dce4;border-bottom:1px solid #e6ebf0;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #c0cdd9}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#444b5d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#282c37;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#282c37}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(43,144,217,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#2380c3 !important}.conversation{display:flex;border-bottom:1px solid #c0cdd9;padding:5px;padding-bottom:0}.conversation:focus{background:#d3dce4;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative}.conversation__unread{display:inline-block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#282c37;padding-left:15px}.conversation__content__names{color:#282c37;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#000;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content a{word-break:break-word}.conversation--unread{background:#d3dce4}.conversation--unread:focus{background:#ccd7e0}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#000}.poll{margin-top:16px;font-size:14px}.poll li{margin-bottom:10px;position:relative}.poll__chart{position:absolute;top:0;left:0;height:100%;display:inline-block;border-radius:4px;background:#d8eaf8}.poll__chart.leading{background:#2b90d9}.poll__text{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__text input[type=radio],.poll__text input[type=checkbox]{display:none}.poll__text .autossugest-input{flex:1 1 auto}.poll__text input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#000;outline:0;font-family:inherit;background:#fff;border:1px solid #fff;border-radius:4px;padding:6px 10px}.poll__text input[type=text]:focus{border-color:#2b90d9}.poll__text.selectable{cursor:pointer}.poll__text.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9bcbed;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#4a905f;background:#4a905f}.poll__input:active,.poll__input:focus,.poll__input:hover{border-width:4px;background:none}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:52px;font-weight:700;padding:0 10px;padding-left:8px;text-align:right;margin-top:auto;margin-bottom:auto;flex:0 0 52px}.poll__vote__mark{float:left;line-height:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#444b5d}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#444b5d;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(68,75,93,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #fff}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #fff;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#2b90d9}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#606984;border-color:#606984;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__text{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#000;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #fff;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#fff}.muted .poll{color:#444b5d}.muted .poll__chart{background:rgba(216,234,248,.2)}.muted .poll__chart.leading{background:rgba(43,144,217,.2)}.modal-layout{background:#d9e1e8 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.emoji-mart{font-size:13px;display:inline-block;color:#000}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #393f4f}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#282c37}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#282c37;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#313543}.emoji-mart-anchor-selected{color:#2b90d9}.emoji-mart-anchor-selected:hover{color:#3c99dc}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:-1px}.emoji-mart-anchor-bar{position:absolute;bottom:-5px;left:0;width:100%;height:4px;background-color:#2b90d9}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(255,255,255,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(40,44,55,.3);color:#000;border:1px solid #282c37;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(40,44,55,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#444b5d}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#282c37}.rich-formatting a{color:#2b90d9;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#282c37}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#282c37}.rich-formatting em{font-style:italic;color:#282c37}.rich-formatting code{font-size:.85em;background:#f2f5f7;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:\"mastodon-font-display\",sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#282c37}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #ccd7e0;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #ccd7e0;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#282c37}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#444b5d}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#e6ebf0;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;line-height:28px;color:#000;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#282c37}.information-board__section strong{font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#f2f5f7;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#282c37;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #ccd7e0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#3d4455}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#000;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#282c37}.landing-page p,.landing-page li{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#282c37}.landing-page p a,.landing-page li a{color:#2b90d9;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#131419}.landing-page h1{font-family:\"mastodon-font-display\",sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h1 small{font-family:\"mastodon-font-sans-serif\",sans-serif;display:block;font-size:18px;font-weight:400;color:#131419}.landing-page h2{font-family:\"mastodon-font-display\",sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h3{font-family:\"mastodon-font-display\",sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h4{font-family:\"mastodon-font-display\",sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h5{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h6{font-family:\"mastodon-font-display\",sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(176,192,207,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#d9e1e8;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#131419}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#d9e1e8;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#282c37}.landing-page__short-description h1{font-weight:500;color:#000;margin-bottom:0}.landing-page__short-description h1 small{color:#282c37}.landing-page__short-description h1 small span{color:#282c37}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#000;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;font-weight:700;font-size:14px;color:#282c37}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#d9e1e8;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:\"mastodon-font-display\",sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#282c37}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#282c37}.landing .simple_form p.lead{color:#282c37;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #c0cdd9}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9bcbed;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#444b5d}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #d9e1e8;text-align:left;background:#e6ebf0}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #d9e1e8;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#d9e1e8}.table a{color:#2b90d9;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#d9e1e8;border-top:1px solid #f2f5f7;border-bottom:1px solid #f2f5f7}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #f2f5f7}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #f2f5f7}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:\"mastodon-font-monospace\",monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#282c37;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#000}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #f2f5f7;background:#d9e1e8;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #f2f5f7;border-top:0;background:#d9e1e8}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #f2f5f7;border-top:0;background:#e6ebf0}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #f2f5f7}}.batch-table__row:hover{background:#dfe6ec}.batch-table__row:nth-child(even){background:#d9e1e8}.batch-table__row:nth-child(even):hover{background:#d3dce4}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#282c37;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content summary{display:list-item}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #f2f5f7;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #f2f5f7}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#d9e1e8;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#c0cdd9;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#000;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#282c37;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#b3c3d1}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#282c37;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#000;background-color:#e9eef2;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#dfe6ec;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#e6ebf0;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#000;background-color:#2b90d9;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#2482c7}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #c0cdd9;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#282c37;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#282c37;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{font-size:14px;font-weight:700;color:#282c37;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #c0cdd9}.admin-wrapper .content h6{font-size:16px;color:#282c37;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#000;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#000;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:0}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#282c37;margin-bottom:20px}.admin-wrapper .content>p strong{color:#000;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(176,192,207,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #ccd7e0;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#2b90d9}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#282c37}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#2b90d9}body .positive-hint,.admin-wrapper .content .positive-hint{color:#4a905f;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#444b5d;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;font-size:13px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset a{display:inline-block;color:#282c37;text-decoration:none;font-size:13px;font-weight:500;border-bottom:2px solid #d9e1e8}.filters .filter-subset a:hover{color:#000;border-bottom:2px solid #c9d4de}.filters .filter-subset a.selected{color:#2b90d9;border-bottom:2px solid #2b90d9}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#282c37}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#2b90d9;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{margin-bottom:20px;line-height:20px}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;padding:10px;background:#d9e1e8;color:#282c37;border-radius:4px 4px 0 0;font-size:14px;position:relative}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#444b5d}.log-entry__extras{background:#c6d2dc;border-radius:0 0 4px 4px;padding:10px;color:#282c37;font-family:\"mastodon-font-monospace\",monospace;font-size:12px;word-wrap:break-word;min-height:20px}.log-entry__icon{font-size:28px;margin-right:10px;color:#444b5d}.log-entry__icon__overlay{position:absolute;top:10px;right:10px;width:10px;height:10px;border-radius:50%}.log-entry__icon__overlay.positive{background:#4a905f}.log-entry__icon__overlay.negative{background:#c1203b}.log-entry__icon__overlay.neutral{background:#2b90d9}.log-entry a,.log-entry .username,.log-entry .target{color:#282c37;text-decoration:none;font-weight:500}.log-entry .diff-old{color:#c1203b}.log-entry .diff-neutral{color:#282c37}.log-entry .diff-new{color:#4a905f}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#282c37}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#c1203b}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #2b90d9}.speech-bubble.positive{border-left-color:#4a905f}.speech-bubble.negative{border-left-color:#c1203b}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#282c37}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#444b5d}.report-card{background:#d9e1e8;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#282c37;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#17191f}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #e6ebf0}.report-card__summary__item:hover{background:#d3dce4}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#282c37}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#444b5d;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#282c37}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#c0cdd9;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#217aba}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#4a905f}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#000}.center-text{text-align:center}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#ccd7e0;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#c0cdd9}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#000;font-family:\"mastodon-font-display\",sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#282c37;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#282c37;font-weight:500;text-decoration:none}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .status__avatar{left:auto;right:10px}body.rtl .status,body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:68px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(249, 250, 251, 0), #f9fafb)}body.rtl .simple_form select{background:#f9fafb url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff);transform:scale(0.71)}html{scrollbar-color:#d9e1e8 rgba(217,225,232,.25)}.button{color:#fff}.button.button-alternative-2{color:#fff}.status-card__actions button,.status-card__actions a{color:rgba(255,255,255,.8)}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.column>.scrollable,.getting-started,.column-inline-form,.error-column,.regeneration-indicator{background:#fff;border:1px solid #c0cdd9;border-top:0}.directory__card__img{background:#b3c3d1}.filter-form,.directory__card__bar{background:#fff;border-bottom:1px solid #c0cdd9}.scrollable .directory__list{width:calc(100% + 2px);margin-left:-1px;margin-right:-1px}.directory__card,.table-of-contents{border:1px solid #c0cdd9}.column-back-button,.column-header{background:#fff;border:1px solid #c0cdd9}@media screen and (max-width: 415px){.column-back-button,.column-header{border-top:0}}.column-back-button--slim-button,.column-header--slim-button{top:-50px;right:0}.column-header__back-button,.column-header__button,.column-header__button.active,.account__header__bar,.directory__card__extra{background:#fff}.column-header__button.active{color:#2b90d9}.column-header__button.active:hover,.column-header__button.active:active,.column-header__button.active:focus{color:#2b90d9;background:#fff}.account__header__bar .avatar .account__avatar{border-color:#fff}.getting-started__footer a{color:#282c37;text-decoration:underline}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{color:#86a0b6}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#000}.column-subheading{background:#e6ebf0;border-bottom:1px solid #c0cdd9}.getting-started .column-link,.scrollable .column-link{background:#fff;border-bottom:1px solid #c0cdd9}.getting-started .column-link:hover,.getting-started .column-link:active,.getting-started .column-link:focus,.scrollable .column-link:hover,.scrollable .column-link:active,.scrollable .column-link:focus{background:#d9e1e8}.getting-started .navigation-bar{border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9}@media screen and (max-width: 415px){.getting-started .navigation-bar{border-top:0}}.compose-form__autosuggest-wrapper,.poll__text input[type=text],.compose-form .spoiler-input__input,.compose-form__poll-wrapper select,.search__input,.setting-text,.box-widget input[type=text],.box-widget input[type=email],.box-widget input[type=password],.box-widget textarea,.statuses-grid .detailed-status,.audio-player{border:1px solid #c0cdd9}@media screen and (max-width: 415px){.search__input{border-top:0;border-bottom:0}}.list-editor .search .search__input{border-top:0;border-bottom:0}.compose-form__poll-wrapper select{background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px}.compose-form__poll-wrapper,.compose-form__poll-wrapper .poll__footer{border-top-color:#c0cdd9}.notification__filter-bar{border:1px solid #c0cdd9;border-top:0}.compose-form .compose-form__buttons-wrapper{background:#d9e1e8;border:1px solid #c0cdd9;border-top:0}.drawer__header,.drawer__inner{background:#fff;border:1px solid #c0cdd9}.drawer__inner__mastodon{background:#fff url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button{color:#ededed}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:active,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:focus,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:hover{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload-description input{color:#ededed}.compose-form .compose-form__modifiers .compose-form__upload-description input::placeholder{color:#ededed}.compose-form .compose-form__buttons-wrapper{background:#ecf0f4}.compose-form .autosuggest-textarea__suggestions{background:#ecf0f4}.compose-form .autosuggest-textarea__suggestions__item:hover,.compose-form .autosuggest-textarea__suggestions__item:focus,.compose-form .autosuggest-textarea__suggestions__item:active,.compose-form .autosuggest-textarea__suggestions__item.selected{background:#ccd7e0}.emoji-mart-bar{border-color:#ccd7e0}.emoji-mart-bar:first-child{background:#ecf0f4}.emoji-mart-search input{background:rgba(217,225,232,.3);border-color:#d9e1e8}.focusable:focus{background:#d9e1e8}.status.status-direct{background:#ccd7e0}.focusable:focus .status.status-direct{background:#c0cdd9}.detailed-status,.detailed-status__action-bar{background:#fff}.reply-indicator__content .status__content__spoiler-link,.status__content .status__content__spoiler-link{background:#d9e1e8}.reply-indicator__content .status__content__spoiler-link:hover,.status__content .status__content__spoiler-link:hover{background:#ccd7e0}.media-spoiler,.video-player__spoiler{background:#d9e1e8}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#fff}.account-gallery__item a{background-color:#d9e1e8}.dropdown-menu{background:#fff}.dropdown-menu__arrow.left{border-left-color:#fff}.dropdown-menu__arrow.top{border-top-color:#fff}.dropdown-menu__arrow.bottom{border-bottom-color:#fff}.dropdown-menu__arrow.right{border-right-color:#fff}.dropdown-menu__item a{background:#fff;color:#282c37}.privacy-dropdown__option.active,.privacy-dropdown__option:hover,.privacy-dropdown__option.active .privacy-dropdown__option__content,.privacy-dropdown__option.active .privacy-dropdown__option__content strong,.privacy-dropdown__option:hover .privacy-dropdown__option__content,.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,.dropdown-menu__item a:active,.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.admin-wrapper .sidebar ul .simple-navigation-active-leaf a,.simple_form .block-button,.simple_form .button,.simple_form button{color:#fff}.dropdown-menu__separator{border-bottom-color:#ccd7e0}.actions-modal,.boost-modal,.confirmation-modal,.mute-modal,.block-modal,.report-modal,.embed-modal,.error-modal,.onboarding-modal,.report-modal__comment .setting-text__wrapper,.report-modal__comment .setting-text{background:#fff;border:1px solid #c0cdd9}.report-modal__comment{border-right-color:#c0cdd9}.report-modal__container{border-top-color:#c0cdd9}.column-header__collapsible-inner{background:#e6ebf0;border:1px solid #c0cdd9;border-top:0}.focal-point__preview strong{color:#fff}.boost-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar,.onboarding-modal__paginator,.error-modal__footer{background:#ecf0f4}.boost-modal__action-bar .onboarding-modal__nav:hover,.boost-modal__action-bar .onboarding-modal__nav:focus,.boost-modal__action-bar .onboarding-modal__nav:active,.boost-modal__action-bar .error-modal__nav:hover,.boost-modal__action-bar .error-modal__nav:focus,.boost-modal__action-bar .error-modal__nav:active,.confirmation-modal__action-bar .onboarding-modal__nav:hover,.confirmation-modal__action-bar .onboarding-modal__nav:focus,.confirmation-modal__action-bar .onboarding-modal__nav:active,.confirmation-modal__action-bar .error-modal__nav:hover,.confirmation-modal__action-bar .error-modal__nav:focus,.confirmation-modal__action-bar .error-modal__nav:active,.mute-modal__action-bar .onboarding-modal__nav:hover,.mute-modal__action-bar .onboarding-modal__nav:focus,.mute-modal__action-bar .onboarding-modal__nav:active,.mute-modal__action-bar .error-modal__nav:hover,.mute-modal__action-bar .error-modal__nav:focus,.mute-modal__action-bar .error-modal__nav:active,.block-modal__action-bar .onboarding-modal__nav:hover,.block-modal__action-bar .onboarding-modal__nav:focus,.block-modal__action-bar .onboarding-modal__nav:active,.block-modal__action-bar .error-modal__nav:hover,.block-modal__action-bar .error-modal__nav:focus,.block-modal__action-bar .error-modal__nav:active,.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{background-color:#fff}.display-case__case{background:#fff}.embed-modal .embed-modal__container .embed-modal__html{background:#fff;border:1px solid #c0cdd9}.embed-modal .embed-modal__container .embed-modal__html:focus{border-color:#b3c3d1;background:#fff}.react-toggle-track{background:#282c37}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background:#3d4455}.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background:#2074b1}.empty-column-indicator,.error-column{color:#000;background:#fff}.tabs-bar{background:#fff;border:1px solid #c0cdd9;border-bottom:0}@media screen and (max-width: 415px){.tabs-bar{border-top:0}}.tabs-bar__link{padding-bottom:14px;border-bottom-width:1px;border-bottom-color:#c0cdd9}.tabs-bar__link:hover,.tabs-bar__link:active,.tabs-bar__link:focus{background:#d9e1e8}.tabs-bar__link.active:hover,.tabs-bar__link.active:active,.tabs-bar__link.active:focus{background:transparent;border-bottom-color:#2b90d9}.activity-stream-tabs{background:#fff;border-bottom-color:#c0cdd9}.box-widget,.nothing-here,.page-header,.directory__tag>a,.directory__tag>div,.landing-page__call-to-action,.contact-widget,.landing .hero-widget__text,.landing-page__information.contact-widget{background:#fff;border:1px solid #c0cdd9}@media screen and (max-width: 415px){.box-widget,.nothing-here,.page-header,.directory__tag>a,.directory__tag>div,.landing-page__call-to-action,.contact-widget,.landing .hero-widget__text,.landing-page__information.contact-widget{border-left:0;border-right:0;border-top:0}}.landing .hero-widget__text{border-top:0;border-bottom:0}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#b3c3d1}.landing .hero-widget__footer{background:#fff;border:1px solid #c0cdd9;border-top:0}@media screen and (max-width: 415px){.landing .hero-widget__footer{border:0}}.brand__tagline{color:#282c37}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#d9e1e8}@media screen and (max-width: 415px){.directory__tag>a{border:0}}.directory__tag.active>a,.directory__tag.active>div{border-color:#2b90d9}.directory__tag.active>a,.directory__tag.active>a h4,.directory__tag.active>a h4 small,.directory__tag.active>a .fa,.directory__tag.active>a .trends__item__current,.directory__tag.active>div,.directory__tag.active>div h4,.directory__tag.active>div h4 small,.directory__tag.active>div .fa,.directory__tag.active>div .trends__item__current{color:#fff}.directory__tag.active>a:hover,.directory__tag.active>a:active,.directory__tag.active>a:focus,.directory__tag.active>div:hover,.directory__tag.active>div:active,.directory__tag.active>div:focus{background:#2b90d9}.batch-table__toolbar,.batch-table__row,.batch-table .nothing-here{border-color:#c0cdd9}.activity-stream{border:1px solid #c0cdd9}.activity-stream--under-tabs{border-top:0}.activity-stream .entry{background:#fff}.activity-stream .entry .detailed-status.light,.activity-stream .entry .more.light,.activity-stream .entry .status.light{border-bottom-color:#c0cdd9}.activity-stream .status.light .status__content{color:#000}.activity-stream .status.light .display-name strong{color:#000}.accounts-grid .account-grid-card .controls .icon-button{color:#282c37}.accounts-grid .account-grid-card .name a{color:#000}.accounts-grid .account-grid-card .username{color:#282c37}.accounts-grid .account-grid-card .account__header__content{color:#000}.simple_form .warning,.table-form .warning{box-shadow:none;background:rgba(223,64,90,.5);text-shadow:none}.simple_form .recommended,.table-form .recommended{border-color:#2b90d9;color:#2b90d9;background-color:rgba(43,144,217,.1)}.compose-form .compose-form__warning{border-color:#2b90d9;background-color:rgba(43,144,217,.1)}.compose-form .compose-form__warning,.compose-form .compose-form__warning a{color:#2b90d9}.status__content a,.reply-indicator__content a{color:#2b90d9}.button.logo-button{color:#fff}.button.logo-button svg{fill:#fff}.public-layout .account__section-headline{border:1px solid #c0cdd9}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-top:0}}.public-layout .header,.public-layout .public-account-header,.public-layout .public-account-bio{box-shadow:none}.public-layout .public-account-bio,.public-layout .hero-widget__text{background:#fff;border:1px solid #c0cdd9}.public-layout .header{background:#d9e1e8;border:1px solid #c0cdd9}@media screen and (max-width: 415px){.public-layout .header{border:0}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#ccd7e0}.public-layout .public-account-header__image{background:#b3c3d1}.public-layout .public-account-header__image::after{box-shadow:none}.public-layout .public-account-header__bar::before{background:#fff;border:1px solid #c0cdd9;border-top:0}.public-layout .public-account-header__bar .avatar img{border-color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{background:#fff;border:1px solid #c0cdd9;border-top:0}}.public-layout .public-account-header__tabs__name h1,.public-layout .public-account-header__tabs__name h1 small{color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__name h1,.public-layout .public-account-header__tabs__name h1 small{color:#000}}.public-layout .public-account-header__extra .public-account-bio{border:0}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-color:#c0cdd9}.notification__filter-bar button.active::after,.account__section-headline a.active::after{border-color:transparent transparent #fff}.hero-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.moved-account-widget,.memoriam-widget,.activity-stream,.nothing-here,.directory__tag>a,.directory__tag>div,.card>a,.page-header,.compose-form .compose-form__warning{box-shadow:none}.audio-player .video-player__controls button,.audio-player .video-player__time-sep,.audio-player .video-player__time-current,.audio-player .video-player__time-total{color:#000}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Dependent colors\n$black: #000000;\n$white: #ffffff;\n\n$classic-base-color: #282c37;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #2b90d9;\n\n// Differences\n$success-green: lighten(#3c754d, 8%);\n\n$base-overlay-background: $white !default;\n$valid-value-color: $success-green !default;\n\n$ui-base-color: $classic-secondary-color !default;\n$ui-base-lighter-color: #b0c0cf;\n$ui-primary-color: #9bcbed;\n$ui-secondary-color: $classic-base-color !default;\n$ui-highlight-color: #2b90d9;\n\n$primary-text-color: $black !default;\n$darker-text-color: $classic-base-color !default;\n$dark-text-color: #444b5d;\n$action-button-color: #606984;\n\n$inverted-text-color: $black !default;\n$lighter-text-color: $classic-base-color !default;\n$light-text-color: #444b5d;\n\n//Newly added colors\n$account-background-color: $white !default;\n\n//Invert darkened and lightened colors\n@function darken($color, $amount) {\n @return hsl(hue($color), saturation($color), lightness($color) + $amount);\n}\n\n@function lighten($color, $amount) {\n @return hsl(hue($color), saturation($color), lightness($color) - $amount);\n}\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n\n @return '%23' + unquote($color);\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.player {\n text-align: center;\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n &__illustration {\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div,\n & > noscript {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n\n & > noscript {\n height: 100vh;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n\n.error-boundary,\n.app-holder noscript {\n flex-direction: column;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.7;\n color: lighten($error-red, 4%);\n text-align: center;\n\n & > div {\n max-width: 500px;\n }\n\n p {\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &__footer {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n }\n }\n\n button {\n display: inline;\n border: 0;\n background: transparent;\n color: $dark-text-color;\n font: inherit;\n padding: 0;\n margin: 0;\n line-height: inherit;\n cursor: pointer;\n outline: 0;\n transition: color 300ms linear;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.copied {\n color: $valid-value-color;\n transition: none;\n }\n }\n}\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1 / 3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n font-weight: 700;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n font-weight: 700;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small,\n .trends__item__current {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n\n .trends__item__current {\n padding-right: 0;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a !default; // Padua\n$error-red: #df405a !default; // Cerise\n$warning-red: #ff5050 !default; // Sunset Orange\n$gold-star: #ca8f04 !default; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: 'mastodon-font-sans-serif' !default;\n$font-display: 'mastodon-font-display' !default;\n$font-monospace: 'mastodon-font-monospace' !default;\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n\n li {\n list-style: disc;\n margin-left: 18px;\n }\n }\n\n ul.hint {\n margin-bottom: 15px;\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\nbutton.icon-button.disabled i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: $ui-highlight-color;\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 15px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 10%);\n transition: all 200ms ease-out;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled,\n &.disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n color: $darker-text-color;\n background: transparent;\n padding: 3px 15px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.compose-form {\n padding: 10px;\n\n &__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n }\n\n .compose-form__warning {\n color: $inverted-text-color;\n margin-bottom: 10px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n strong {\n color: $inverted-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 5px;\n right: 5px;\n }\n\n .compose-form__autosuggest-wrapper {\n position: relative;\n }\n\n .autosuggest-textarea,\n .autosuggest-input,\n .spoiler-input {\n position: relative;\n width: 100%;\n }\n\n .spoiler-input {\n height: 0;\n transform-origin: bottom;\n opacity: 0;\n\n &.spoiler-input--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1;\n }\n }\n\n .autosuggest-textarea__textarea,\n .spoiler-input__input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .spoiler-input__input {\n border-radius: 4px;\n }\n\n .autosuggest-textarea__textarea {\n min-height: 100px;\n border-radius: 4px 4px 0 0;\n padding-bottom: 0;\n padding-right: 10px + 22px;\n resize: none;\n scrollbar-color: initial;\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n @media screen and (max-width: 600px) {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n\n .autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n }\n\n .autosuggest-textarea__suggestions {\n box-sizing: border-box;\n display: none;\n position: absolute;\n top: 100%;\n width: 100%;\n z-index: 99;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n background: $ui-secondary-color;\n border-radius: 0 0 4px 4px;\n color: $inverted-text-color;\n font-size: 14px;\n padding: 6px;\n\n &.autosuggest-textarea__suggestions--visible {\n display: block;\n }\n }\n\n .autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n\n .autosuggest-account,\n .autosuggest-emoji,\n .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .autosuggest-account-icon,\n .autosuggest-emoji img {\n display: block;\n margin-right: 8px;\n width: 16px;\n height: 16px;\n }\n\n .autosuggest-account .display-name__account {\n color: $lighter-text-color;\n }\n\n .compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n\n .compose-form__upload-wrapper {\n overflow: hidden;\n }\n\n .compose-form__uploads-wrapper {\n display: flex;\n flex-direction: row;\n padding: 5px;\n flex-wrap: wrap;\n }\n\n .compose-form__upload {\n flex: 1 1 0;\n min-width: 40%;\n margin: 5px;\n\n &__actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $secondary-text-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($secondary-text-color, 7%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n\n &-description {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n padding: 10px;\n opacity: 0;\n transition: opacity .1s ease;\n\n textarea {\n background: transparent;\n color: $secondary-text-color;\n border: 0;\n padding: 0;\n margin: 0;\n width: 100%;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n\n &:focus {\n color: $white;\n }\n\n &::placeholder {\n opacity: 0.75;\n color: $secondary-text-color;\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n }\n\n .compose-form__upload-thumbnail {\n border-radius: 4px;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 140px;\n width: 100%;\n overflow: hidden;\n }\n }\n\n .compose-form__buttons-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n\n .compose-form__buttons {\n display: flex;\n\n .compose-form__upload-button-icon {\n line-height: 27px;\n }\n\n .compose-form__sensitive-button {\n display: none;\n\n &.compose-form__sensitive-button--visible {\n display: block;\n }\n\n .compose-form__sensitive-button__icon {\n line-height: 27px;\n }\n }\n }\n\n .icon-button,\n .text-icon-button {\n box-sizing: content-box;\n padding: 0 3px;\n }\n\n .character-counter__wrapper {\n align-self: center;\n margin-right: 4px;\n }\n }\n\n .compose-form__publish {\n display: flex;\n justify-content: flex-end;\n min-width: 0;\n flex: 0 0 auto;\n\n .compose-form__publish-button-wrapper {\n overflow: hidden;\n padding-top: 10px;\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .spoiler-input {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.reply-indicator {\n border-radius: 4px;\n margin-bottom: 10px;\n background: $ui-primary-color;\n padding: 10px;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n}\n\n.reply-indicator__header {\n margin-bottom: 5px;\n overflow: hidden;\n}\n\n.reply-indicator__cancel {\n float: right;\n line-height: 24px;\n}\n\n.reply-indicator__display-name {\n color: $inverted-text-color;\n display: block;\n max-width: 100%;\n line-height: 24px;\n overflow: hidden;\n padding-right: 25px;\n text-decoration: none;\n}\n\n.reply-indicator__display-avatar {\n float: left;\n margin-right: 5px;\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content,\n.reply-indicator__content {\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n color: $primary-text-color;\n\n &:focus {\n outline: 0;\n }\n\n &.status__content--with-spoiler {\n white-space: normal;\n\n .status__content__text {\n white-space: pre-wrap;\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n\n .status__content__spoiler-link {\n background: $action-button-color;\n\n &:hover {\n background: lighten($action-button-color, 7%);\n text-decoration: none;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n .status__content__text {\n display: none;\n\n &.status__content__text--visible {\n display: block;\n }\n }\n}\n\n.status__content.status__content--collapsed {\n max-height: 20px * 15; // 15 lines is roughly above 500 characters\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: transparent;\n border: 0;\n color: $inverted-text-color;\n font-weight: 700;\n font-size: 12px;\n padding: 0 6px;\n line-height: 20px;\n cursor: pointer;\n vertical-align: middle;\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n .status.status-direct {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 8px 10px;\n padding-left: 68px;\n position: relative;\n min-height: 54px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 26px; // 10px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $light-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n strong {\n color: $inverted-text-color;\n }\n\n span {\n color: $light-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time,\n.notification__relative_time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n}\n\n.status__display-name {\n color: $dark-text-color;\n}\n\n.status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n}\n\n.status__info {\n font-size: 15px;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-left: 68px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.reply-indicator__content {\n color: $inverted-text-color;\n font-size: 14px;\n\n a {\n color: $lighter-text-color;\n }\n}\n\n.domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &.compact {\n padding: 0;\n border-bottom: 0;\n\n .account__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius;\n position: relative;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n border-radius: 50%;\n overflow: hidden;\n position: relative;\n cursor: default;\n\n & > div {\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\na .account__avatar {\n cursor: pointer;\n}\n\n.account__avatar-overlay {\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius;\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius;\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__disclaimer {\n padding: 10px;\n border-top: 1px solid lighten($ui-base-color, 8%);\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-dropdown {\n padding: 10px;\n\n .icon-button {\n vertical-align: middle;\n }\n\n .dropdown--active {\n .dropdown__content.dropdown__right {\n left: 6px;\n right: initial;\n }\n\n &::after {\n bottom: initial;\n margin-left: 11px;\n margin-top: -7px;\n right: initial;\n }\n }\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-right: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n font-size: 12px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\n.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\na.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n height: 48px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n}\n\n.status__expand {\n width: 68px;\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n cursor: pointer;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-lighter-color, 7%);\n text-decoration: none;\n }\n }\n}\n\n.notification__message {\n margin: 0 10px 0 68px;\n padding: 8px 0 0;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n line-height: 22px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: inline;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: -26px;\n position: absolute;\n\n .star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.notification__relative_time {\n float: right;\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.navigation-bar {\n padding: 10px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n cursor: default;\n color: $darker-text-color;\n\n strong {\n color: $secondary-text-color;\n }\n\n a {\n color: inherit;\n }\n\n .permalink {\n text-decoration: none;\n }\n\n .navigation-bar__actions {\n position: relative;\n\n .icon-button.close {\n position: absolute;\n pointer-events: none;\n transform: scale(0, 1) translate(-100%, 0);\n opacity: 0;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: auto;\n transform: scale(1, 1) translate(0, 0);\n opacity: 1;\n }\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n line-height: 20px;\n margin-top: -1px;\n overflow: hidden;\n}\n\n.navigation-bar__profile-account {\n display: block;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.navigation-bar__profile-edit {\n color: inherit;\n text-decoration: none;\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n z-index: 9999;\n\n ul {\n list-style: none;\n }\n\n &.left {\n transform-origin: 100% 50%;\n }\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n\n &.right {\n transform-origin: 0 50%;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &.unscrollable {\n overflow-x: hidden;\n }\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .drawer,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 350px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.drawer {\n width: 330px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n}\n\n.drawer__tab {\n display: block;\n flex: 1 1 auto;\n padding: 15px 5px 13px;\n color: $darker-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 16px;\n border-bottom: 2px solid transparent;\n}\n\n.column,\n.drawer {\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @media screen and (min-width: 631px) {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $highlight-text-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__favourite-icon-wrapper {\n left: -32px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n\n .account__avatar-wrapper {\n margin-left: 17px;\n margin-right: 15px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .getting-started__trends,\n .search {\n margin-bottom: 10px;\n }\n\n .getting-started__panel {\n margin: 10px 0;\n }\n\n .column,\n .drawer {\n min-width: 330px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .navigation-bar {\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 0 1 48px;\n min-height: 20px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .compose-form {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n padding-bottom: 71px;\n margin-bottom: -71px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n border-radius: 2px;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 100%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__header {\n flex: 0 0 auto;\n font-size: 16px;\n background: lighten($ui-base-color, 8%);\n margin-bottom: 10px;\n display: flex;\n flex-direction: row;\n border-radius: 2px;\n\n a {\n transition: background 100ms ease-in;\n\n &:hover {\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n line-height: inherit;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n outline: 0;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n white-space: nowrap;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 13px;\n font-weight: 500;\n cursor: default;\n}\n\n.getting-started__wrapper,\n.getting-started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n color: $dark-text-color;\n overflow: auto;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n\n &__wrapper,\n &__panel,\n &__footer {\n height: min-content;\n }\n\n &__panel,\n &__footer\n {\n padding: 10px;\n padding-top: 20px;\n flex-grow: 0;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__wrapper,\n &__footer\n {\n color: $dark-text-color;\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 13px;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n border-radius: 4px;\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n\n &.active {\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n top: 35px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n\n & > button {\n margin: 0;\n border: 0;\n padding: 15px 0 15px 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($highlight-text-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 13px;\n font-weight: 400;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n border-radius: 4px;\n appearance: none;\n\n &:hover,\n &:active,\n &:focus {\n padding: 0;\n color: lighten($darker-text-color, 8%);\n }\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 700;\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: block;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout;\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n font-size: 12px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.empty-column-indicator,\n.error-column {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.error-column {\n flex-direction: column;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.no-reduce-motion .pulse-loading {\n transform-origin: center center;\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n@keyframes shake-bottom {\n 0%,\n 100% {\n transform: rotate(0deg);\n transform-origin: 50% 100%;\n }\n\n 10% {\n transform: rotate(2deg);\n }\n\n 20%,\n 40%,\n 60% {\n transform: rotate(-4deg);\n }\n\n 30%,\n 50%,\n 70% {\n transform: rotate(4deg);\n }\n\n 80% {\n transform: rotate(-2deg);\n }\n\n 90% {\n transform: rotate(2deg);\n }\n}\n\n.no-reduce-motion .shake-bottom {\n transform-origin: 50% 100%;\n animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.upload-progress {\n padding: 10px;\n color: $lighter-text-color;\n overflow: hidden;\n display: flex;\n\n .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n span {\n font-size: 13px;\n font-weight: 500;\n display: block;\n }\n}\n\n.upload-progess__message {\n flex: 1 1 auto;\n}\n\n.upload-progress__backdrop {\n width: 100%;\n height: 6px;\n border-radius: 6px;\n background: $ui-base-lighter-color;\n position: relative;\n margin-top: 5px;\n}\n\n.upload-progress__tracker {\n position: absolute;\n left: 0;\n top: 0;\n height: 6px;\n background: $ui-highlight-color;\n border-radius: 6px;\n}\n\n.emoji-button {\n display: block;\n font-size: 24px;\n line-height: 24px;\n margin-left: 2px;\n width: 24px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n margin-top: 2px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.privacy-dropdown__dropdown {\n position: absolute;\n background: $simple-background-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-left: 40px;\n overflow: hidden;\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n}\n\n.privacy-dropdown__option {\n color: $inverted-text-color;\n padding: 10px;\n cursor: pointer;\n display: flex;\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n outline: 0;\n\n .privacy-dropdown__option__content {\n color: $primary-text-color;\n\n strong {\n color: $primary-text-color;\n }\n }\n }\n\n &.active:hover {\n background: lighten($ui-highlight-color, 4%);\n }\n}\n\n.privacy-dropdown__option__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 10px;\n}\n\n.privacy-dropdown__option__content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n strong {\n font-weight: 500;\n display: block;\n color: $inverted-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.privacy-dropdown.active {\n .privacy-dropdown__value {\n background: $simple-background-color;\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n\n .icon-button {\n transition: none;\n }\n\n &.active {\n background: $ui-highlight-color;\n\n .icon-button {\n color: $primary-text-color;\n }\n }\n }\n\n &.top .privacy-dropdown__value {\n border-radius: 0 0 4px 4px;\n }\n\n .privacy-dropdown__dropdown {\n display: block;\n box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);\n }\n}\n\n.search {\n position: relative;\n}\n\n.search__input {\n @include search-input;\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(90deg);\n\n &.active {\n pointer-events: none;\n transform: rotate(0deg);\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n}\n\n.search-results__section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n}\n\n.search-results__hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $primary-text-color;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $highlight-text-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n font-size: 13px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n }\n\n .status__avatar {\n height: 28px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n .status__content,\n .status__content p {\n color: $inverted-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n max-height: 80vh;\n max-width: 80vw;\n\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.loading-bar {\n background-color: $highlight-text-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &.autoplay {\n .media-gallery__gifv__label {\n display: none;\n }\n }\n\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n margin-top: 32px;\n\n audio {\n width: 100%;\n }\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n/* Media Gallery */\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n }\n\n img {\n object-fit: cover;\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n object-fit: cover;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n z-index: 1;\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n/* End Media Gallery */\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-overlay-background;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n\n.directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\n.search-popout {\n @include search-popout;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@media screen and (max-width: 630px) and (max-height: 400px) {\n $duration: 400ms;\n $delay: 100ms;\n\n .tabs-bar,\n .search {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar {\n will-change: padding-bottom;\n transition: padding-bottom $duration $delay;\n }\n\n .navigation-bar {\n & > a:first-child {\n will-change: margin-top, margin-left, margin-right, width;\n transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay);\n }\n\n & > .navigation-bar__profile-edit {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar__actions {\n & > .icon-button.close {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay,\n transform $duration $delay;\n }\n\n & > .compose__action-bar .icon-button {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay + $duration * 0.5,\n transform $duration $delay;\n }\n }\n }\n\n .is-composing {\n .tabs-bar,\n .search {\n margin-top: -50px;\n }\n\n .navigation-bar {\n padding-bottom: 0;\n\n & > a:first-child {\n margin: -100px 10px 0 -50px;\n }\n\n .navigation-bar__profile {\n padding-top: 2px;\n }\n\n .navigation-bar__profile-edit {\n position: absolute;\n margin-top: -60px;\n }\n\n .navigation-bar__actions {\n .icon-button.close {\n pointer-events: auto;\n opacity: 1;\n transform: scale(1, 1) translate(0, 0);\n bottom: 5px;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: none;\n opacity: 0;\n transform: scale(0, 1) translate(100%, 0);\n }\n }\n }\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.column-inline-form {\n padding: 15px;\n padding-right: 0;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 10px;\n }\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n\n.list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n",null,"@mixin avatar-radius {\n border-radius: 4px;\n background: transparent no-repeat;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size: 48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin search-input {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: 0;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n display: inline-block;\n border-radius: 4px;\n background: darken($ui-primary-color, 14%);\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__text {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-width: 4px;\n background: none;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 52px;\n font-weight: 700;\n padding: 0 10px;\n padding-left: 8px;\n text-align: right;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 52px;\n }\n\n &__vote__mark {\n float: left;\n line-height: 18px;\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__text {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".emoji-mart {\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: -1px;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -5px;\n left: 0;\n width: 100%;\n height: 4px;\n background-color: $highlight-text-color;\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n font-weight: 700;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n summary {\n display: list-item;\n }\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n font-size: 14px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: 0;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n font-size: 13px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n font-size: 13px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n margin-bottom: 20px;\n line-height: 20px;\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n padding: 10px;\n background: $ui-base-color;\n color: $darker-text-color;\n border-radius: 4px 4px 0 0;\n font-size: 14px;\n position: relative;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n &__extras {\n background: lighten($ui-base-color, 6%);\n border-radius: 0 0 4px 4px;\n padding: 10px;\n color: $darker-text-color;\n font-family: $font-monospace, monospace;\n font-size: 12px;\n word-wrap: break-word;\n min-height: 20px;\n }\n\n &__icon {\n font-size: 28px;\n margin-right: 10px;\n color: $dark-text-color;\n }\n\n &__icon__overlay {\n position: absolute;\n top: 10px;\n right: 10px;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n\n &.positive {\n background: $success-green;\n }\n\n &.negative {\n background: lighten($error-red, 12%);\n }\n\n &.neutral {\n background: $ui-highlight-color;\n }\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n\n .diff-old {\n color: lighten($error-red, 12%);\n }\n\n .diff-neutral {\n color: $secondary-text-color;\n }\n\n .diff-new {\n color: $success-green;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .status__avatar {\n left: auto;\n right: 10px;\n }\n\n .status,\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n","$black-emojis: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash';\n\n%white-emoji-outline {\n filter: drop-shadow(1px 1px 0 $white) drop-shadow(-1px 1px 0 $white) drop-shadow(1px -1px 0 $white) drop-shadow(-1px -1px 0 $white);\n transform: scale(.71);\n}\n\n.emojione {\n @each $emoji in $black-emojis {\n &[title=':#{$emoji}:'] {\n @extend %white-emoji-outline;\n }\n }\n}\n","// Notes!\n// Sass color functions, \"darken\" and \"lighten\" are automatically replaced.\n\nhtml {\n scrollbar-color: $ui-base-color rgba($ui-base-color, 0.25);\n}\n\n// Change the colors of button texts\n.button {\n color: $white;\n\n &.button-alternative-2 {\n color: $white;\n }\n}\n\n.status-card__actions button,\n.status-card__actions a {\n color: rgba($white, 0.8);\n\n &:hover,\n &:active,\n &:focus {\n color: $white;\n }\n}\n\n// Change default background colors of columns\n.column > .scrollable,\n.getting-started,\n.column-inline-form,\n.error-column,\n.regeneration-indicator {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n}\n\n.directory__card__img {\n background: lighten($ui-base-color, 12%);\n}\n\n.filter-form,\n.directory__card__bar {\n background: $white;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.scrollable .directory__list {\n width: calc(100% + 2px);\n margin-left: -1px;\n margin-right: -1px;\n}\n\n.directory__card,\n.table-of-contents {\n border: 1px solid lighten($ui-base-color, 8%);\n}\n\n.column-back-button,\n.column-header {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 0;\n }\n\n &--slim-button {\n top: -50px;\n right: 0;\n }\n}\n\n.column-header__back-button,\n.column-header__button,\n.column-header__button.active,\n.account__header__bar,\n.directory__card__extra {\n background: $white;\n}\n\n.column-header__button.active {\n color: $ui-highlight-color;\n\n &:hover,\n &:active,\n &:focus {\n color: $ui-highlight-color;\n background: $white;\n }\n}\n\n.account__header__bar .avatar .account__avatar {\n border-color: $white;\n}\n\n.getting-started__footer a {\n color: $ui-secondary-color;\n text-decoration: underline;\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n color: lighten($ui-base-color, 26%);\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n}\n\n.column-subheading {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.getting-started,\n.scrollable {\n .column-link {\n background: $white;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:hover,\n &:active,\n &:focus {\n background: $ui-base-color;\n }\n }\n}\n\n.getting-started .navigation-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 0;\n }\n}\n\n.compose-form__autosuggest-wrapper,\n.poll__text input[type=\"text\"],\n.compose-form .spoiler-input__input,\n.compose-form__poll-wrapper select,\n.search__input,\n.setting-text,\n.box-widget input[type=\"text\"],\n.box-widget input[type=\"email\"],\n.box-widget input[type=\"password\"],\n.box-widget textarea,\n.statuses-grid .detailed-status,\n.audio-player {\n border: 1px solid lighten($ui-base-color, 8%);\n}\n\n.search__input {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 0;\n border-bottom: 0;\n }\n}\n\n.list-editor .search .search__input {\n border-top: 0;\n border-bottom: 0;\n}\n\n.compose-form__poll-wrapper select {\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n}\n\n.compose-form__poll-wrapper,\n.compose-form__poll-wrapper .poll__footer {\n border-top-color: lighten($ui-base-color, 8%);\n}\n\n.notification__filter-bar {\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n}\n\n.compose-form .compose-form__buttons-wrapper {\n background: $ui-base-color;\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n}\n\n.drawer__header,\n.drawer__inner {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n}\n\n.drawer__inner__mastodon {\n background: $white url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n}\n\n// Change the colors used in compose-form\n.compose-form {\n .compose-form__modifiers {\n .compose-form__upload__actions .icon-button {\n color: lighten($white, 7%);\n\n &:active,\n &:focus,\n &:hover {\n color: $white;\n }\n }\n\n .compose-form__upload-description input {\n color: lighten($white, 7%);\n\n &::placeholder {\n color: lighten($white, 7%);\n }\n }\n }\n\n .compose-form__buttons-wrapper {\n background: darken($ui-base-color, 6%);\n }\n\n .autosuggest-textarea__suggestions {\n background: darken($ui-base-color, 6%);\n }\n\n .autosuggest-textarea__suggestions__item {\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: lighten($ui-base-color, 4%);\n }\n }\n}\n\n.emoji-mart-bar {\n border-color: lighten($ui-base-color, 4%);\n\n &:first-child {\n background: darken($ui-base-color, 6%);\n }\n}\n\n.emoji-mart-search input {\n background: rgba($ui-base-color, 0.3);\n border-color: $ui-base-color;\n}\n\n// Change the background colors of statuses\n.focusable:focus {\n background: $ui-base-color;\n}\n\n.status.status-direct {\n background: lighten($ui-base-color, 4%);\n}\n\n.focusable:focus .status.status-direct {\n background: lighten($ui-base-color, 8%);\n}\n\n.detailed-status,\n.detailed-status__action-bar {\n background: $white;\n}\n\n// Change the background colors of status__content__spoiler-link\n.reply-indicator__content .status__content__spoiler-link,\n.status__content .status__content__spoiler-link {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 4%);\n }\n}\n\n// Change the background colors of media and video spoilers\n.media-spoiler,\n.video-player__spoiler {\n background: $ui-base-color;\n}\n\n.privacy-dropdown.active .privacy-dropdown__value.active .icon-button {\n color: $white;\n}\n\n.account-gallery__item a {\n background-color: $ui-base-color;\n}\n\n// Change the colors used in the dropdown menu\n.dropdown-menu {\n background: $white;\n\n &__arrow {\n &.left {\n border-left-color: $white;\n }\n\n &.top {\n border-top-color: $white;\n }\n\n &.bottom {\n border-bottom-color: $white;\n }\n\n &.right {\n border-right-color: $white;\n }\n }\n\n &__item {\n a {\n background: $white;\n color: $darker-text-color;\n }\n }\n}\n\n// Change the text colors on inverted background\n.privacy-dropdown__option.active,\n.privacy-dropdown__option:hover,\n.privacy-dropdown__option.active .privacy-dropdown__option__content,\n.privacy-dropdown__option.active .privacy-dropdown__option__content strong,\n.privacy-dropdown__option:hover .privacy-dropdown__option__content,\n.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,\n.dropdown-menu__item a:active,\n.dropdown-menu__item a:focus,\n.dropdown-menu__item a:hover,\n.actions-modal ul li:not(:empty) a.active,\n.actions-modal ul li:not(:empty) a.active button,\n.actions-modal ul li:not(:empty) a:active,\n.actions-modal ul li:not(:empty) a:active button,\n.actions-modal ul li:not(:empty) a:focus,\n.actions-modal ul li:not(:empty) a:focus button,\n.actions-modal ul li:not(:empty) a:hover,\n.actions-modal ul li:not(:empty) a:hover button,\n.admin-wrapper .sidebar ul .simple-navigation-active-leaf a,\n.simple_form .block-button,\n.simple_form .button,\n.simple_form button {\n color: $white;\n}\n\n.dropdown-menu__separator {\n border-bottom-color: lighten($ui-base-color, 4%);\n}\n\n// Change the background colors of modals\n.actions-modal,\n.boost-modal,\n.confirmation-modal,\n.mute-modal,\n.block-modal,\n.report-modal,\n.embed-modal,\n.error-modal,\n.onboarding-modal,\n.report-modal__comment .setting-text__wrapper,\n.report-modal__comment .setting-text {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n}\n\n.report-modal__comment {\n border-right-color: lighten($ui-base-color, 8%);\n}\n\n.report-modal__container {\n border-top-color: lighten($ui-base-color, 8%);\n}\n\n.column-header__collapsible-inner {\n background: darken($ui-base-color, 4%);\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n}\n\n.focal-point__preview strong {\n color: $white;\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar,\n.onboarding-modal__paginator,\n.error-modal__footer {\n background: darken($ui-base-color, 6%);\n\n .onboarding-modal__nav,\n .error-modal__nav {\n &:hover,\n &:focus,\n &:active {\n background-color: darken($ui-base-color, 12%);\n }\n }\n}\n\n.display-case__case {\n background: $white;\n}\n\n.embed-modal .embed-modal__container .embed-modal__html {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n\n &:focus {\n border-color: lighten($ui-base-color, 12%);\n background: $white;\n }\n}\n\n.react-toggle-track {\n background: $ui-secondary-color;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background: darken($ui-secondary-color, 10%);\n}\n\n.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background: lighten($ui-highlight-color, 10%);\n}\n\n// Change the default color used for the text in an empty column or on the error column\n.empty-column-indicator,\n.error-column {\n color: $primary-text-color;\n background: $white;\n}\n\n.tabs-bar {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 0;\n }\n\n &__link {\n padding-bottom: 14px;\n border-bottom-width: 1px;\n border-bottom-color: lighten($ui-base-color, 8%);\n\n &:hover,\n &:active,\n &:focus {\n background: $ui-base-color;\n }\n\n &.active {\n &:hover,\n &:active,\n &:focus {\n background: transparent;\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\n// Change the default colors used on some parts of the profile pages\n.activity-stream-tabs {\n background: $account-background-color;\n border-bottom-color: lighten($ui-base-color, 8%);\n}\n\n.box-widget,\n.nothing-here,\n.page-header,\n.directory__tag > a,\n.directory__tag > div,\n.landing-page__call-to-action,\n.contact-widget,\n.landing .hero-widget__text,\n.landing-page__information.contact-widget {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-left: 0;\n border-right: 0;\n border-top: 0;\n }\n}\n\n.landing .hero-widget__text {\n border-top: 0;\n border-bottom: 0;\n}\n\n.simple_form {\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n &:hover {\n border-color: lighten($ui-base-color, 12%);\n }\n }\n}\n\n.landing .hero-widget__footer {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border: 0;\n }\n}\n\n.brand__tagline {\n color: $ui-secondary-color;\n}\n\n.directory__tag > a {\n &:hover,\n &:active,\n &:focus {\n background: $ui-base-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border: 0;\n }\n}\n\n.directory__tag.active > a,\n.directory__tag.active > div {\n border-color: $ui-highlight-color;\n\n &,\n h4,\n h4 small,\n .fa,\n .trends__item__current {\n color: $white;\n }\n\n &:hover,\n &:active,\n &:focus {\n background: $ui-highlight-color;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row,\n .nothing-here {\n border-color: lighten($ui-base-color, 8%);\n }\n}\n\n.activity-stream {\n border: 1px solid lighten($ui-base-color, 8%);\n\n &--under-tabs {\n border-top: 0;\n }\n\n .entry {\n background: $account-background-color;\n\n .detailed-status.light,\n .more.light,\n .status.light {\n border-bottom-color: lighten($ui-base-color, 8%);\n }\n }\n\n .status.light {\n .status__content {\n color: $primary-text-color;\n }\n\n .display-name {\n strong {\n color: $primary-text-color;\n }\n }\n }\n}\n\n.accounts-grid {\n .account-grid-card {\n .controls {\n .icon-button {\n color: $darker-text-color;\n }\n }\n\n .name {\n a {\n color: $primary-text-color;\n }\n }\n\n .username {\n color: $darker-text-color;\n }\n\n .account__header__content {\n color: $primary-text-color;\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-shadow: none;\n background: rgba($error-red, 0.5);\n text-shadow: none;\n }\n\n .recommended {\n border-color: $ui-highlight-color;\n color: $ui-highlight-color;\n background-color: rgba($ui-highlight-color, 0.1);\n }\n}\n\n.compose-form .compose-form__warning {\n border-color: $ui-highlight-color;\n background-color: rgba($ui-highlight-color, 0.1);\n\n &,\n a {\n color: $ui-highlight-color;\n }\n}\n\n.status__content,\n.reply-indicator__content {\n a {\n color: $highlight-text-color;\n }\n}\n\n.button.logo-button {\n color: $white;\n\n svg {\n fill: $white;\n }\n}\n\n.public-layout {\n .account__section-headline {\n border: 1px solid lighten($ui-base-color, 8%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 0;\n }\n }\n\n .header,\n .public-account-header,\n .public-account-bio {\n box-shadow: none;\n }\n\n .public-account-bio,\n .hero-widget__text {\n background: $account-background-color;\n border: 1px solid lighten($ui-base-color, 8%);\n }\n\n .header {\n background: $ui-base-color;\n border: 1px solid lighten($ui-base-color, 8%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border: 0;\n }\n\n .brand {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n\n .public-account-header {\n &__image {\n background: lighten($ui-base-color, 12%);\n\n &::after {\n box-shadow: none;\n }\n }\n\n &__bar {\n &::before {\n background: $account-background-color;\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n }\n\n .avatar img {\n border-color: $account-background-color;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n background: $account-background-color;\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n }\n }\n\n &__tabs {\n &__name {\n h1,\n h1 small {\n color: $white;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n color: $primary-text-color;\n }\n }\n }\n }\n\n &__extra {\n .public-account-bio {\n border: 0;\n }\n\n .public-account-bio .account__header__fields {\n border-color: lighten($ui-base-color, 8%);\n }\n }\n }\n}\n\n.notification__filter-bar button.active::after,\n.account__section-headline a.active::after {\n border-color: transparent transparent $white;\n}\n\n.hero-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.moved-account-widget,\n.memoriam-widget,\n.activity-stream,\n.nothing-here,\n.directory__tag > a,\n.directory__tag > div,\n.card > a,\n.page-header,\n.compose-form .compose-form__warning {\n box-shadow: none;\n}\n\n.audio-player .video-player__controls button,\n.audio-player .video-player__time-sep,\n.audio-player .video-player__time-current,\n.audio-player .video-player__time-total {\n color: $primary-text-color;\n}\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///common.scss","webpack:///./app/javascript/styles/mastodon/reset.scss","webpack:///./app/javascript/styles/mastodon-light/variables.scss","webpack:///./app/javascript/styles/mastodon/basics.scss","webpack:///./app/javascript/styles/mastodon/containers.scss","webpack:///./app/javascript/styles/mastodon/lists.scss","webpack:///./app/javascript/styles/mastodon/footer.scss","webpack:///./app/javascript/styles/mastodon/compact_header.scss","webpack:///./app/javascript/styles/mastodon/widgets.scss","webpack:///./app/javascript/styles/mastodon/variables.scss","webpack:///./app/javascript/styles/mastodon/forms.scss","webpack:///./app/javascript/styles/mastodon/accounts.scss","webpack:///./app/javascript/styles/mastodon/statuses.scss","webpack:///./app/javascript/styles/mastodon/boost.scss","webpack:///./app/javascript/styles/mastodon/components.scss","webpack:///","webpack:///./app/javascript/styles/mastodon/_mixins.scss","webpack:///./app/javascript/styles/mastodon/polls.scss","webpack:///./app/javascript/styles/mastodon/modal.scss","webpack:///./app/javascript/styles/mastodon/emoji_picker.scss","webpack:///./app/javascript/styles/mastodon/about.scss","webpack:///./app/javascript/styles/mastodon/tables.scss","webpack:///./app/javascript/styles/mastodon/admin.scss","webpack:///./app/javascript/styles/mastodon/dashboard.scss","webpack:///./app/javascript/styles/mastodon/rtl.scss","webpack:///./app/javascript/styles/mastodon/accessibility.scss","webpack:///./app/javascript/styles/mastodon-light/diff.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,0CACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,8BACA,CC3EwB,iEDkF1B,kBClF0B,4BDsF1B,sBACE,MErFF,iDACE,mBACA,eACA,iBACA,gBACA,WDZM,kCCcN,6BACA,8BACA,CADA,0BACA,CADA,qBACA,0CACA,wCACA,kBAEA,iKAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBDlDwB,kBCsDxB,iBACE,kBACA,0BAEA,iBACE,aAIJ,iBACE,YAGF,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cDzFiB,mBAEK,WC0FtB,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,sCAGE,aACE,gBACA,WACA,YACA,kBACA,uBAIJ,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,kDAKF,YAGE,WACA,mBACA,uBACA,oBACA,sBAGF,YACE,yEAKF,gBAEE,+EAKF,WAEE,sCAIJ,qBAEE,eACA,gBACA,gBACA,cACA,kBACA,8CAEA,eACE,0CAGF,mBACE,gEAEA,eACE,0CAIJ,aDvKmB,kKC0KjB,oBAGE,sDAIJ,aD7KgB,eC+Kd,0DAEA,aDjLc,oDCsLhB,cACE,SACA,uBACA,cDzLc,aC2Ld,UACA,SACA,oBACA,eACA,UACA,4BACA,0BACA,gMAEA,oBAGE,kEAGF,aDvNY,gBCyNV,gBCnON,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SFtBI,YEwBF,kBACA,sBAGF,YACE,uBACA,mBACA,WF/BE,qBEiCF,UACA,kBACA,iBACA,6CACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAGF,UACE,YACA,iBACA,6BAEA,UACE,YACA,cACA,SACA,kBACA,uBAIJ,aACE,cF5FiB,wBE8FjB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UFzUA,qCE4UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cF3Ve,mBE6Vf,kBACA,uHAEA,yBAGE,WFtWA,qCE0WF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBFrbe,8CE0bjB,yBACE,gBACA,aACA,kBACA,gBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,YACA,aACA,kBACA,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,qCAIJ,2CArCF,YAsCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAGF,UACE,YACA,CACA,sBACA,wDAEA,QACE,kBACA,2DAGF,mDAXF,YAYI,sCAKN,2CAhEF,eAiEI,sCAGF,2CApEF,cAqEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WF3kBF,gBE6kBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WFrlBJ,gBEulBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aF1mBS,oDEinBf,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cFtoBW,aEwoBX,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BFxqBS,wEE8qBT,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WFpsBJ,6CEssBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cFvuBa,uDE0uBb,oBACE,cF3uBW,qBE6uBX,aACA,gBACA,8DAEA,eACE,WFrvBJ,qCE2vBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aF9xBU,8DEoyBV,mBACA,WF9yBE,qFEkzBJ,YAEE,eACA,cFlzBe,2CEszBjB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBFh3BkB,+IEm3BhB,kBAGE,WC53BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,wBCfF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cJ9Fe,6BIiGf,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cACA,gBACA,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cLjBe,wBKqBjB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBCPI,uBDUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBNfwB,aMiBtB,0BACA,eACA,cNrBiB,iBMuBjB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aNrDiB,qBMuDf,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cN5EiB,+BMgFnB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aNzGmB,aM8GrB,YACE,kBACA,mBN9GwB,mCMgHxB,qBAGF,YACE,kBACA,0BACA,kBACA,cNzHmB,mBM2HnB,iBAGF,eACE,eACA,cNhImB,iBMkInB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cN3IiB,0BM+InB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cNxJiB,qBM0JjB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBNxKwB,mCM0KxB,cN5KmB,gBM8KnB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cNvNe,8DM6NjB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eClPM,CDoPN,cACA,cNlPmB,mBMoPnB,+BANA,iBACA,CClPM,kCDgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,UNlQM,eMoQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cNxQiB,qCM4QnB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBNpR0B,kBMsRxB,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBNjSoB,kBMmSpB,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBNrSiB,eMuSf,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WNpUE,mBMsUF,gBACA,uBACA,wBAEA,aNvUe,0BM2Uf,aACE,gBACA,eACA,eACA,cN/Ua,0IMqVf,UNxVE,+BMgWJ,aACE,YACA,uDAGF,oBNnViB,wCMuVjB,eACE,eAKN,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cNtZiB,gBMwZjB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WNjbI,8BMobJ,aACE,cNlbe,gBMobf,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aNnhBmB,iCMkhBrB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cNzhBiB,4JM4hBjB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WNpkBI,gCMskBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MEplBJ,+CACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WRjDA,cQmDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aRpDe,0BQsDb,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aRlGmB,sBQqGjB,aRtFiB,yBQ0FjB,iBACE,kBACA,gBACA,uBAGF,eACE,iBACA,sBAIJ,kBACE,wBAGF,aACE,eACA,eACA,qBAGF,kBACE,cRhIiB,iCQmIjB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WRnKA,gBQqKA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WRzLE,cQ2LF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WR/ME,cQiNF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,kDAIJ,oBACE,WACA,OACA,6BAGF,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WRnSI,cQqSJ,WACA,2CAKE,mBACE,eACA,WR7SA,qBQ+SA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WR7UI,cQ+UJ,WACA,UACA,oBACA,gBACA,mBACA,sBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBR5VY,oLQgWZ,iBACE,4WAGF,oBR3ViB,mBQ8Vf,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBR5YiB,WAlBb,eQiaJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBR5ae,gGQgbf,kBD7bQ,kHCgcN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WRjdI,cQmdJ,WACA,UACA,oBACA,gBACA,wXACA,sBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cRzdY,oBQ2dZ,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,oEACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,iCACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UR/hBF,aQyiBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cR9iBmB,kBQgjBnB,kBACA,mBACA,kBACA,uBAEA,mCACE,+BACA,cRjjBY,sBQqjBd,mCACE,+BACA,cD7jBQ,kBCikBV,oBACE,cRlkBiB,qBQokBjB,wBAEA,URzkBI,0BQ2kBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBRrlBsB,WALlB,eQ6lBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aR/nBmB,qBQioBjB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aRpoBmB,yBQsoBjB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cRnqBmB,oCQsqBnB,cACE,mBACA,kBACA,4CAGF,aR5qBmB,gBQ8qBjB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBDrsBM,YCusBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cRjtBmB,WQmtBnB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,CACA,URlvBI,qCQovBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UR1vBI,0BQ4vBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cRtyBmB,0BQyyBnB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WRtzBI,kBQwzBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aD/zBc,0SCy0BZ,+CACE,aAIJ,kBACE,sBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gDACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBR52Bc,gBQ82BZ,2BAEA,kBRh3BY,gBQk3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SC17BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,gBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,WACA,YACA,gBACA,wBAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WT9EA,gBSgFA,gBACA,uBACA,+BAGF,aACE,eACA,cTpFa,gBSsFb,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WT5GI,gBS8GJ,qBACA,iBACA,qBACA,sBAGF,eFnHM,oBEqHJ,WTtHI,eSwHJ,cACA,kBAGF,cACE,uCAGF,wBAEE,cT/HiB,oBSmInB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,WACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBTxK0B,mCS0KxB,cTpJiB,eSsJjB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cT3MmB,mCS6MnB,mCACA,6DAEA,aT1Mc,oCS4MZ,gCACA,qDAGF,aACE,oCACA,gCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cT1PiB,gCS4PjB,6BAGF,aACE,cThQiB,4BSoQnB,aTrPmB,qBSuPjB,qGAEA,yBAGE,oCAIJ,mCACE,+BACA,sCAEA,aT7QY,gBS+QV,0CAGF,aTlRY,wCSuRd,eACE,wCAIJ,UACE,0BAIA,aTvSmB,4BS0SjB,aT1SiB,qBS4Sf,qGAEA,yBAGE,iCAIJ,UTxTI,gBS0TF,wBAIJ,eACE,kBChUJ,kCACE,kBACA,gBACA,mBACA,8BAEA,yBACE,qCAGF,iBAVF,eAWI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBVzBwB,6GU4BtB,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBV9DmB,WAlBb,oBUmFN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UV7FI,gFUiGN,kBAGE,qNAKA,kBVzFe,4IUiGf,kBH9GQ,qCGqHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAGF,gBACE,iBACA,mFAGF,UACE,qMAGF,eAGE,iCC/JN,u+KACE,uCAEA,u+KACE,0CAIJ,u+KACE,WCTF,gCACE,4CACA,kBAGF,mBACE,sBACA,oBACA,gBACA,kBACA,cAGF,aACE,eACA,iBACA,cZGmB,SYDnB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,aZXiB,eYaf,SAIJ,wBZfqB,YYiBnB,kBACA,sBACA,WZrCM,eYuCN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,mBACA,WACA,4CAEA,wBAGE,4BACA,sBAGF,eACE,mFAEA,wBLjEQ,gBKqEN,mCAIJ,wBZ5DiB,eY+Df,2BAGF,QACE,wDAGF,mBAGE,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,UZvGM,mBAgBW,qGY2Ff,wBAGE,8BAIJ,kBZnGsB,2GYsGpB,wBAGE,0BAIJ,aZzHmB,uBY2HjB,iBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,kBAIJ,YACE,cACA,kBACA,cAGF,oBACE,UACA,cZrIoB,SYuIpB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,sCACA,4BACA,2CACA,oBAGF,oCACE,uBAGF,aACE,6BACA,eACA,qBAGF,aZtKmB,gCY0KnB,QACE,uEAGF,mBAGE,uBAGF,aZnMmB,sFYsMjB,aAGE,oCACA,6BAGF,kCACE,gCAGF,aACE,6BACA,8BAGF,aZvMiB,uCY0Mf,aACE,wBAKN,sBACE,8BACA,qBACA,kBACA,YACA,8BAEA,6BACE,mBAKN,aZ5OqB,SY8OnB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,oCACA,4BACA,2CACA,yBAGF,kCACE,4BAGF,UACE,6BACA,eACA,0BAGF,aZ9PmB,qCYkQnB,QACE,sFAGF,mBAGE,CAKF,0BADF,iBAUE,CATA,WAGF,WACE,cACA,qBACA,QACA,SAEA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,eAIJ,YACE,iCAGE,mBACA,eAEA,gBACA,wCAEA,aZnTiB,sDYuTjB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBZxUe,yDY+UnB,UZjWM,mBYmWJ,mBZnVe,oCYqVf,iBACA,kBACA,eACA,gBACA,6CAEA,UZ3WI,gBY6WF,CAII,kRADF,eACE,wCAKN,aZnXiB,gBYqXf,0BACA,yIAEA,oBAGE,sCAKN,iBACE,MACA,QACA,kDAGF,iBACE,mGAGF,iBAGE,WACA,8BAGF,QACE,wBACA,UACA,qDAEA,WACE,mBACA,UACA,mFAIJ,aAEE,sBACA,WACA,SACA,WZraI,gBOCA,aKuaJ,oBACA,eACA,gBACA,SACA,UACA,yIAEA,aZzZc,CYuZd,sHAEA,aZzZc,CYuZd,8HAEA,aZzZc,CYuZd,4GAEA,aZzZc,+FY6Zd,SACE,qCAGF,kFAvBF,cAwBI,sCAIJ,iBACE,+CAGF,gBACE,0BACA,iBACA,mBACA,YACA,qBACA,kEAEA,SACE,qCAGF,8CAZF,sBAaI,gBACA,2DAIJ,iBACE,SACA,kDAGF,qBACE,aACA,kBACA,SACA,WACA,WACA,sCACA,mBZ3diB,0BY6djB,WZheI,eYkeJ,YACA,6FAEA,aACE,wDAIJ,YACE,eACA,kBACA,yPAEA,kBAIE,wGAIJ,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,oCAGF,6BACE,0CAEA,aACE,gBACA,uBACA,mBACA,2CAGF,eACE,0CAGF,aACE,iBACA,gBACA,uBACA,mBACA,8EAIJ,aAEE,iBACA,WACA,YACA,2DAGF,aZ9hBmB,wCYkiBnB,UZriBM,oBYuiBJ,eACA,gBLviBI,sEK0iBJ,eACE,uEAGF,YACE,mBACA,YACA,eACA,8DAGF,UACE,cACA,WACA,uEAEA,iFACE,aACA,uBACA,8BACA,UACA,4BACA,oFAEA,aACE,cZjkBW,eYmkBX,gBACA,aACA,oBACA,6QAEA,aAGE,8EAIJ,SACE,0EAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,gFACA,aACA,UACA,4BACA,mFAEA,sBACE,cZjmBW,SYmmBX,UACA,SACA,WACA,oBACA,eACA,gBACA,yFAEA,UL7mBF,8GKinBE,WACE,cZhnBS,COFb,oGKinBE,WACE,cZhnBS,COFb,wGKinBE,WACE,cZhnBS,COFb,+FKinBE,WACE,cZhnBS,iFYqnBb,SACE,wEAKN,iBACE,sBL/nBE,wBKioBF,sBACA,4BACA,aACA,WACA,gBACA,8CAIJ,YACE,gBACA,0BACA,aACA,8BACA,cACA,qEAEA,YACE,uGAEA,gBACE,qGAGF,YACE,6IAEA,aACE,2IAGF,gBACE,0HAKN,sBAEE,cACA,0EAGF,iBACE,iBACA,sCAIJ,YACE,yBACA,YACA,cACA,4EAEA,eACE,iBACA,oBAKN,cACE,kDACA,eACA,gBACA,cZhsBmB,4CYmsBnB,aLlsBY,kCKusBd,2CACE,WC7sBF,8DDktBE,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,kBAIJ,iBACE,mBACA,mBZ9sBiB,aYgtBjB,gBACA,gBACA,cACA,0BAGF,iBACE,gBACA,0BAGF,WACE,iBACA,gCAGF,UZhvBQ,cYkvBN,eACA,iBACA,gBACA,mBACA,qBACA,kCAGF,UACE,iBACA,+BAGF,cACE,4CAGF,iBAEE,eACA,iBACA,qBACA,gBACA,gBACA,uBACA,gBACA,WZ5wBM,wDY+wBN,SACE,wGAGF,kBACE,sJAEA,oBACE,gEAIJ,UACE,YACA,gBACA,oDAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,gDAGF,kBACE,qBACA,sEAEA,eACE,gDAIJ,aLnyBc,qBKqyBZ,4DAEA,yBACE,oEAEA,aACE,4EAKF,oBACE,sFAEA,yBACE,wDAKN,aZhzBc,8EYqzBhB,aACE,0GAGF,kBZxzBoB,sHY2zBlB,kBACE,qBACA,8IAGF,QACE,0XAGF,mBAGE,0FAIJ,YACE,wJAEA,aACE,+BAKN,oBACE,gBACA,yCAEA,UACE,YACA,gBACA,iCAGF,kBACE,qBACA,4CAEA,eACE,iCAIJ,aZ33BmB,qBY63BjB,uCAEA,yBACE,+CAIA,oBACE,oDAEA,yBACE,gDAKN,aACE,6CAKN,gBACE,oCAGF,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,qBACA,oFAEA,yBAEE,gCAIJ,oBACE,kBACA,uBACA,SACA,WZ/6BM,gBYi7BN,eACA,cACA,yBACA,iBACA,eACA,sBACA,4BAGF,aZp6BkB,SYs6BhB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,kBAIA,SACE,mBACA,wCAEA,kBACE,8CAEA,sBACE,iFAIJ,kBAEE,SAMJ,yBACA,kBACA,gBACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QARF,kBAWI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,aZv+Be,qCY2+Bf,UZtgCI,6BY0gCJ,aZ/+Be,CA3BX,kEYkhCJ,UZlhCI,kCYqhCF,aZngCe,gEYugCf,UZzhCE,mBAgBW,sEY6gCX,kBACE,+CAQR,sBACE,qEAEA,aACE,qDAKN,aZzhCkB,YY4hChB,eACA,uBAGF,aZhiCkB,qCYoiClB,aACE,eACA,mBACA,eAGF,cACE,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,gBACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,cZrlCgB,CYulChB,iBACA,eACA,kBACA,+CAEA,aZ5lCgB,uBYgmChB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cZxnCgB,4BY8nCtB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,kEAGF,gBACE,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cZvrCgB,eYyrChB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,2BAGF,UZzuCQ,eY2uCN,6BAEA,aZ1uCmB,SY+uCrB,YACE,gCACA,8BAEA,aACE,cACA,WZxvCI,qBY0vCJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,UAGF,YACE,gCACA,kBAEA,SACE,gBACA,2CAEA,aACE,iCAIJ,aACE,cACA,cZtxCiB,gBYwxCjB,qBACA,eACA,mBAIJ,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,iBE3yCE,iCACA,wBACA,4BACA,kBF0yCA,yBAEA,oBACE,sBACA,iBACA,4BAGF,iBErzCA,iCACA,wBACA,4BACA,kBFozCE,gBACA,kBACA,gCAEA,UACE,kBACA,sBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WZt0CE,6BYw0CF,gBACA,eACA,oBAKN,cACE,0BAGF,UACuB,sCE30CrB,+BF60CA,iBEt1CA,iCACA,wBACA,4BACA,WFq1CuB,sCE/0CvB,kCFk1CA,iBE31CA,iCACA,wBACA,4BACA,WF01CuB,sCEp1CvB,kBFs1CE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,sBAGF,YACE,6BACA,cZx1CgB,6BY21ChB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,+BAGF,YACE,4CAEA,qBACE,oFAIA,QACE,WACA,uDAGF,WACE,iBACA,gBACA,WACA,4BAKN,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,+BACA,eACA,oCACA,kCAEA,+BACE,gCAGF,aACE,yBACA,eACA,cZ17CiB,kCY87CnB,aACE,eACA,gBACA,WZp8CI,CYy8CA,2NADF,eACE,oBAMR,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,6JAGF,oBAME,4DAKA,UZz+CM,kBY++CN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,aZzgDqB,cY2gDnB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WZ3hDI,kCYgiDR,UACE,kBACA,iBAGF,WACE,UACA,kBACA,SACA,WACA,iBAGF,UACE,kBACA,OACA,MACA,YACA,eACA,CZ7hDgB,gHYuiDhB,aZviDgB,wBY2iDhB,UACE,wCAGF,kBZtjDsB,WAfhB,8CYykDJ,kBACE,qBACA,wBAKN,oBACE,gBACA,eACA,cZhlDmB,eYklDnB,iBACA,kBACA,4BAEA,aZvkDmB,6BY2kDnB,cACE,gBACA,uBACA,uCAIJ,UACE,kBACA,CLjmDU,mEKwmDZ,aLxmDY,uBK4mDZ,aL7mDc,4DKmnDV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UZxoDM,0BY0oDJ,8BAIJ,WACE,eAGF,aACE,eACA,gBACA,uBACA,mBACA,qBAGF,eACE,wBAGF,cACE,+DAKA,yBACE,eAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cL9nD4B,eAEC,0DK+nD3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cLtpD4B,eAEC,WKupD3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,iBAIJ,YACE,aACA,mBACA,cACA,eACA,cZrtDmB,wBYwtDnB,aZxtDmB,mBY4tDnB,aACE,4BAGF,oBACE,0CAGF,iBACE,6DAEA,iBACE,oBACA,qCACA,UACA,4EAGF,mBACE,gCACA,UACA,0BAKN,aACE,gBACA,iBACA,gBACA,gBACA,kCAGF,aACE,gBACA,gBACA,uBACA,+BAGF,aACE,qBACA,WAGF,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBZzxDqB,cY2xDnB,kBACA,uCACA,aACA,mBAEA,eACE,qBAGF,yBACE,oBAGF,yBACE,uBAGF,sBACE,sBAGF,sBACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BZ9zDiB,2BYk0DnB,WACE,iBACA,uBACA,yBZr0DiB,8BYy0DnB,QACE,iBACA,uBACA,4BZ50DiB,6BYg1DnB,SACE,gBACA,2BACA,2BZn1DiB,wBYy1DnB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZ/1DiB,WAHb,gBYq2DJ,uBACA,mBACA,yFAEA,kBZv1DiB,cAfA,UY22Df,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBZz3DiB,cY23DjB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZl5DiB,WAHb,gBYw5DJ,uBACA,mBACA,oDAEA,SACE,oDAGF,kBZ94DiB,cAfA,iBYo6DrB,qBACE,eAGF,YACE,cACA,mBACA,2BACA,gBACA,kBACA,4BAEA,iBACE,uBAGF,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,gKAMJ,WAIE,mCAIJ,YACE,mBACA,uBACA,YACA,SAGF,WACE,kBACA,sBACA,aACA,sBACA,qBAEA,kBZvgEwB,8BYygEtB,+BACA,KAIJ,aACE,CACA,qBACA,WACA,YACA,aAJA,YAYA,CARA,QAGF,WACE,sBACA,CACA,qBACA,kBACA,cAGF,aACE,cACA,sBACA,cZniEmB,qBYqiEnB,kBACA,eACA,oCACA,iBAGF,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WZ9lEM,qBYgmEN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCAMA,mEAHF,kBAII,4BACA,yBAIJ,+BACE,cZrmEiB,sBYymEnB,eACE,aACA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,YACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,2BACE,gBACA,uCAEA,SACE,SACA,wCAGF,eACE,wCAGF,gBACE,iBACA,qDAGF,UACE,gLAGF,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,iBACA,6DAGF,UACE,CAIA,yFAGF,eACE,8DAGF,gBACE,kBACA,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WLpyEM,kBKsyEN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,4DAGF,kBAGE,yBAGF,aACE,iBAGF,eAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,mBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBZ91EiB,yBYg2EjB,gBACA,kBACA,eACA,gBACA,iBACA,WZv3EI,mDY43ER,oBACE,gBAGF,WACE,gBACA,aACA,sBACA,yBACA,kBACA,gCAEA,gBACE,oBACA,cACA,gBACA,6BAGF,sBACE,8BAGF,MACE,kBACA,aACA,sBACA,iBACA,oBACA,oBACA,mDAGF,eACE,sBL75EI,0BK+5EJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,gBAMF,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAiBA,CAhBA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,kBACA,uBAEA,kBZz9EwB,0BY89E1B,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,UACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,sCAGF,yBAjBF,aAkBI,iBAIJ,kBACE,eACA,gBACA,iBAGF,aACE,eACA,mBACA,mBACA,aACA,mBACA,kBACA,mBAEA,iCACE,yBAEA,kBACE,mCACA,aAKN,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,sBAIJ,qBACE,WACA,mBACA,cZniFmB,eYqiFnB,cACA,eACA,oBACA,SACA,iBACA,aACA,SACA,UACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cZxjFmB,eY0jFnB,mBACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,eAGF,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,gDACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBZ1oFwB,qCY4oFxB,sEAGF,wBACE,4CAGF,wBZtoFqB,+EY0oFrB,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,sBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBZlsFmB,cYssFrB,kBACE,WZztFM,cY2tFN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cZxuFiB,kGY2uFjB,sBAGE,WZjvFE,kCYqvFJ,aZnuFiB,oBYyuFrB,oBACE,iBACA,qBAGF,oBACE,kBACA,CACA,gBACA,CZ/vFwB,eYkwFxB,iBACA,wCANA,cACA,CACA,eACA,mBAaA,CAVA,mBZnwFwB,aAiBR,iBYwvFhB,CAEA,wBACA,eACA,yDAGF,kBZhxF0B,cYsxF1B,aACE,kBAGF,aZzwFkB,cY2wFhB,8BACA,+BACA,4EAEA,0BAGE,CAHF,uBAGE,CAHF,kBAGE,kDAMA,sBACA,YACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,cACE,0DAEA,aZvyFY,0BYyyFV,sDAIJ,oBACE,cZj0Fe,sMYo0Ff,yBAGE,oDAKN,aZzzFgB,0BY+zFhB,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cZ11Fe,aY41Ff,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,aZr3Fe,qBY43FrB,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,aACE,sBACA,WACA,SACA,WZx5FM,gBOCA,aK05FN,oBACA,eACA,gBACA,SACA,UACA,kBACA,qBAEA,SACE,qCAGF,cAnBF,cAoBI,oDAIJ,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAKJ,uBACE,2BACA,gDAGF,aZx6FsB,6BY06FpB,uDAGF,aZl7FqB,cYs7FrB,YACE,eACA,yBACA,kBACA,cZt7FgB,gBYw7FhB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cZr+Fe,uBYu+Ff,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UZj/FE,yBYw/FJ,cACE,kBACA,YACA,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACA,YACA,SACA,2BAIA,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cZxhGmB,gBY0hGnB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,aZtiGqB,oBY0iGrB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,YAGF,aACE,cZpmGgB,6BYsmGhB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,yBAGF,iBACE,eACA,gBACA,cZ9nGgB,mBAjBQ,eYkpGxB,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,cZ5pGY,qCYgqGd,cACE,gBACA,yBAKN,iBACE,cACA,UACA,gCAEA,sCACE,uCAEA,aACE,WACA,kBACA,aACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,kFACA,wCAIJ,SACE,kBACA,gBAIJ,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,2BACA,4BACA,uBAEA,QACE,SACA,yBACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,aZpuGmB,4CYyuGjB,aZzuGiB,yCY2uGf,4CAIJ,SAEE,yBAIJ,WACE,aACA,uBAGF,kBACE,iCAGF,iBACE,wBAGF,kBACE,SACA,cZnxGmB,eYqxGnB,eACA,eACA,8BAEA,aACE,CAKA,kEAEA,UZpyGI,mBYsyGF,6BAKN,eACE,gBACA,gBACA,cZ3yGmB,0DY6yGnB,UACA,UACA,kBACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,mCAIJ,kBACE,aACA,mCAIA,aZ10GmB,0BY40GjB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,sBAGF,oBACE,iBACA,oBAGF,aZz1GkB,eY21GhB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,gCAGF,kBACE,gBZx+GM,WADA,eY4+GN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,eZt/GQ,cAEa,SYu/GnB,UACA,WACA,YACA,kBACA,wBACA,CADA,oBACA,CADA,eACA,iEAEA,SAGE,cACA,yBAIJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,iBAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,aACE,SACA,QACA,WACA,YACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,8BACA,kBACA,iBACA,WZvjHE,gBYyjHF,eACA,+LAMA,6BACE,mEAKF,6BACE,6BAMR,kBACE,iBAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,aZlmHqB,eYomHnB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SEtmHF,sBACA,WACA,SACA,gBACA,oBACA,mBdbwB,cAFL,eckBnB,SACA,+EFgmHI,aACE,CEjmHN,qEFgmHI,aACE,CEjmHN,yEFgmHI,aACE,CEjmHN,gEFgmHI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,aZvnHc,iBYynHZ,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,aZnqHiB,0HYwqHjB,cAEE,gBACA,cZxpHY,kZY2pHZ,aAGE,gEAIJ,wBACE,iDAGF,eL3rHI,kBO0BN,CAEA,eACA,cdHiB,uCcKjB,UF8pHI,mBZ3rHe,oDc+BnB,wBACE,cdRe,ecUf,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,WdnDI,sDYksHJ,WACE,mDAGF,UZtsHI,kBYwsHF,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UZztHQ,kBY2tHN,cACA,mBACA,sBZ5tHM,yBY8tHN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,iBAIJ,aACE,iBACA,wBAGF,aZ7uHqB,qBY+uHnB,mBACA,gBACA,sBACA,6EAGF,aZluHkB,mBAjBQ,kBYwvHxB,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBAEA,4EAfF,cAgBI,6FAGF,eACE,mFAGF,aZ7vHmB,qBY+vHjB,qGAEA,yBACE,uCAKN,kBACE,aACA,eAGF,qBACE,8BAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA1BF,qBAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,mCAIJ,8BACE,2DACA,CADA,kDACA,iCAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,EA/BF,wBAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,kCAIJ,yBACE,8EACA,CADA,qEACA,8BAGF,eLt2HQ,kBKw2HN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBLl4HM,kBKo4HN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,4BAGE,2DAIJ,WACE,wBAKF,2BACE,cAIJ,kBACE,8BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBZh8HwB,kCYk8HxB,uBAGF,MACE,aACA,mBACA,uBACA,cZ38HmB,eY68HnB,gBACA,0BACA,kBACA,kBAGF,YACE,cZp9HmB,gBYs9HnB,aACA,sBAEA,cACE,kBACA,uBAGF,cACE,yBACA,gBACA,cACA,0BAIJ,aACE,4BAGF,UACE,WACA,kBACA,mBZj+HsB,kBYm+HtB,eACA,2BAGF,iBACE,OACA,MACA,WACA,mBZx+HmB,kBY0+HnB,eAGF,aACE,wBACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,SACA,WACA,YACA,CAQE,6GAKN,SACE,oBACA,CADA,WACA,6BAGF,iBACE,gBLliIM,uCKoiIN,kBACA,iBACA,gBACA,iCAEA,yBACE,oCAGF,sBACE,2BAIJ,UZnjIQ,aYqjIN,eACA,aACA,kEAEA,kBZviImB,WAlBb,UY6jIJ,CZ7jII,4RYkkIF,UZlkIE,wCYwkIN,kBACE,iCAIJ,YACE,mBACA,uBACA,kBACA,oCAGF,aACE,cZllImB,2CYqlInB,eACE,cACA,WZ1lII,CY+lIA,wQADF,eACE,mDAON,eLrmIM,0BKumIJ,qCACA,gEAEA,eACE,0DAGF,kBZ7lIiB,uEYgmIf,UZlnIE,uDYwnIN,yBACE,sDAGF,aACE,sCACA,SAIJ,iBACE,gBAGF,SEznIE,sBACA,WACA,SACA,gBACA,oBACA,mBdbwB,cAFL,eckBnB,SACA,cFmnIA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,sCACA,eACA,WACA,YACA,cZxrIiB,eY0rIjB,oBACA,0BAEA,mBACE,WACA,0BAIJ,uBACE,iCAEA,mBACE,uBACA,gCAIJ,QACE,uBACA,cZ1rIkB,eY4rIlB,uCAEA,uBACE,sCAGF,aACE,yBAKN,aZzsIkB,mBY2sIhB,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,cZjuIc,iCYouId,oBACE,iBACA,8FAIJ,eAEE,0BAIJ,aACE,aACA,cZrwImB,qBYuwInB,+FAEA,aAGE,0BACA,uBAIJ,YACE,cZlxImB,kBYoxInB,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,8BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,cLjyI0B,eAEC,CK2yI7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,6BACE,sBACA,SACA,WZ93IM,eYg4IN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,cZz6IiB,mFY46IjB,yBAGE,wBAKN,oBACE,sBAGF,qBZ37IQ,YY67IN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wBZp7IqB,qBYw7IrB,iBACE,UACA,QACA,YACA,6CAGF,kBZ98IqB,WAHb,kBYs9IN,gBACA,aACA,sBACA,oBAGF,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,mDAGF,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,aZrgJmB,SYwgJjB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,CZzhJE,wyEYgiJF,UAGE,sBAMR,sBACE,eAGF,iBACE,eACA,mBACA,sBAEA,eACE,WZnjJI,kBYqjJJ,yBACA,eACA,qBAGF,kBZrjJwB,cAFL,gBY0jJjB,aACA,kBACA,kBAIJ,oBACE,eACA,gBACA,iBACA,wFAGF,kBAME,WZhlJM,kBYklJN,gBACA,eACA,YACA,kBACA,sBACA,4NAEA,aACE,eACA,mBACA,wLAGF,WACE,UACA,kBACA,SACA,WACA,kRAGF,aACE,wBAKF,eL5mJM,CPEa,gBY6mJjB,oBACA,iELhnJI,2BPEa,yBYsnJrB,iBACE,aACA,iCAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,2GAIJ,YAIE,8BACA,mBZroJmB,aYuoJnB,iBACA,2HAEA,aACE,iBACA,cZ5oJiB,mBY8oJjB,2IAGF,aACE,6BAIJ,cACE,2BAGF,WACE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,aZ3rJmB,iLY+rJnB,UZjtJM,qCYstJN,oDAjBF,eAkBI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,UZhvJI,gBOCA,aKkvJJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,eLlwJI,yBKowJF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,UZnxJE,oBYqxJA,eACA,gBLrxJA,+CK0xJJ,YACE,8BACA,mBACA,4CAIJ,aACE,WZnyJI,eYqyJJ,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,UZ9yJI,eYgzJF,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eACE,eACA,wBAEA,eACE,iBACA,2CAGF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,UZ11JE,aY41JA,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBZz1JW,WAlBb,uDYk3JA,iBACE,oMAUR,aACE,iIAIJ,4BAIE,cZn4JmB,eYq4JnB,gBACA,6cAEA,aAGE,6BACA,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,UZt7JI,CYw7JF,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,wBZr7JqB,WYu7JnB,kBACA,MACA,OACA,aACA,6BAGF,aACE,kBACA,WZl9JM,8BYo9JN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,wDAKE,SACE,uBAKN,eACE,6BAEA,UACE,kBAIJ,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cZr+Jc,iBYu+Jd,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cZngKY,gBYqgKZ,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,aZthKc,gBY8hKhB,cACA,CACA,iBACA,CACA,UACA,qCANF,qBACE,CACA,eACA,CACA,iBAYA,CAVA,qBAGF,QACE,CACA,aACA,WACA,CACA,iBAEA,qEAGE,cACE,MACA,gCAKN,cACE,cACA,qBACA,cZ7kKmB,kBY+kKnB,UACA,mEAEA,WAEE,WACA,CAIA,2DADF,mBACE,CADF,8BACE,CADF,gBZ1lKM,CY2lKJ,wBAIJ,UACE,YACA,CACA,iBACA,MACA,OACA,UACA,gBZtmKM,iCYymKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,qCAGF,cACE,YACA,oBACA,CADA,8BACA,CADA,gBACA,kBACA,QACA,2BACA,WACA,UACA,sCAGF,0BACE,2BACA,gBACA,kBACA,qKAMA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,oCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gBLvsKM,eKysKN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,qBAGF,eACE,gBACA,UACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gBZnxKI,cAEa,gBYoxKjB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,0DAEA,aACE,wBAIJ,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,ULn1KE,+EK21KN,cAGE,gBACA,6BAGF,ULl2KM,iBKo2KJ,yBAGF,oBACE,aACA,mDAGF,UL52KM,uBKi3KN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,WLj6KE,sFKo6KF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,kBAON,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,gBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WZ5jLF,gBY8jLE,gBACA,uBACA,0CAGF,aACE,eACA,cZlkLW,gBYokLX,gBACA,uBACA,yBAKN,kBZzkLsB,aY2kLpB,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,6BAOV,YACE,eACA,gBACA,wBAGF,QACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cZ1pLiB,eY4pLjB,eACA,gBACA,kBACA,qBACA,kBACA,WACA,mBACA,yJAEA,aZrqLiB,qWYwqLf,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,cAOV,kBZ/sL0B,sBYktLxB,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,2BAKN,eACE,gBAGF,eLxwLQ,kBO0BN,CACA,sBACA,gBACA,cdHiB,uCcKjB,mBAEA,wBACE,cdRe,ecUf,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,WdnDI,UY6wLR,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cZrxLiB,gBYuxLjB,gBAEA,aZ1wLiB,0BY4wLf,sBAEA,oBACE,4BAMR,GACE,cACA,eACA,WATM,mBAMR,GACE,cACA,eACA,qEAGF,kBAIE,sBAEE,8BACA,iBAGF,0BACE,kCACA,+BAIA,qDACE,uEACA,+CAGF,sBACE,8BACA,6DAIA,6BACE,6CACA,4EAIF,6BACE,6CACA,+CAOJ,gBAEE,+BAGF,gBACE,6CAEA,0BACE,wDAGF,eACE,6DAGF,iBACE,iBACA,2EAIA,mBACE,UACA,gCACA,WACA,0FAGF,mBACE,UACA,oCACA,eAOV,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBZn5LoB,WALlB,eY25LF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,sBAMJ,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cZh7Lc,CYm7Ld,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,qBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,uCAEA,SACE,kCAKN,aACE,cACA,mBAIJ,cACE,kBACA,MACA,OACA,WACA,YACA,8BACA,cAGF,kBZjgM0B,sBYmgMxB,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kBZvjM0B,sBYyjMxB,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,cAIJ,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBL5mMM,yDK+mMN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBLvnMI,uBK2nMN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UZzpMI,eY2pMF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,4BAKN,aZhrMqB,eYkrMnB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WZvyMA,gBYyyMA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cZ7yMW,gBY+yMX,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,WZp0ME,gDYw0MJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,aZ30MU,yBYi1Md,cACE,gCAEA,cACE,cZ31Me,eY61Mf,kCAEA,oBACE,cZh2Ma,qBYk2Mb,iBACA,gBACA,yCAEA,eACE,WZ12MF,iBYm3MN,aZ71MgB,mBY+1Md,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cZv3MY,gBYy3MZ,uBACA,mBACA,4BAEA,eACE,uBAGF,aZp5Me,qBYs5Mb,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cZ/6Me,0BYm7MjB,aACE,WACA,2CAEA,mCACE,yBACA,0CAGF,wBACE,eAMR,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,eACA,uBAGF,oBACE,mBZx8MiB,kBY08MjB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cZ7+Me,kBY++Mf,+BAGF,aZl/MiB,eYo/Mf,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UZ//ME,qBYigNA,oHAEA,yBAGE,0BAKN,qBACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UZ3hNI,gBYiiNR,kBACE,eACA,aACA,qBACA,0BAEA,WACE,cACA,qCAEA,yBAJF,YAKI,4BAIJ,wBACE,cACA,kBACA,qCAEA,0BALF,UAMI,uBAIJ,qBACE,WACA,aACA,kBACA,eACA,iBACA,qBACA,gBACA,gBACA,gBACA,aACA,sBACA,6BAEA,aACE,gBACA,mBACA,mBACA,8BAGF,iBACE,SACA,WACA,cACA,mBZjkNe,kBYmkNf,cACA,eACA,4BAIJ,YACE,cZzlNiB,kBY2lNjB,WACA,QACA,mDAIJ,YACE,oDAGF,UACE,gBAGF,YACE,eACA,mBACA,gBACA,iBACA,wBACA,sBAEA,aACE,mBACA,SACA,kBACA,WACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,cACA,aACA,mBACA,2BACA,2CACA,6BAEA,aACE,aACA,WACA,YACA,iCAEA,aACE,SACA,WACA,YACA,eACA,gBACA,sBACA,sBACA,CADA,gCACA,CADA,kBACA,6BAIJ,aACE,cACA,eACA,gBACA,kBACA,gBACA,cZvpNe,mFY2pNjB,kBAGE,4BACA,2CACA,wGAEA,aACE,6BAIJ,0BACE,2CACA,yBACA,yDAEA,aACE,uCAKN,UACE,oCAGF,WACE,8BAGF,aZ1rNmB,SY4rNjB,eACA,WACA,cACA,cACA,YACA,aACA,mBACA,WACA,2BACA,2CACA,2GAEA,SAGE,cACA,4BACA,2CACA,qCAKF,SACE,OGxtNN,eACE,eACA,UAEA,kBACE,kBACA,cAGF,iBACE,cACA,mBACA,WACA,aACA,sBAEA,kBfGiB,eeEnB,iBACE,aACA,cACA,iBACA,eACA,gBACA,qBAEA,oBACE,qBACA,yBACA,4BACA,oEAGF,YAEE,kCAGF,aACE,gCAGF,aACE,sBACA,WACA,eACA,WfhDE,UekDF,oBACA,gBRlDE,sBQoDF,kBACA,iBACA,sCAEA,oBfvCe,0Be4CjB,cACE,wBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBfpFY,8EeyFZ,oBAGE,iBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,cACA,cAGF,aACE,qBACA,oBAEA,cACE,eAIJ,eACE,mBACA,cfhHc,aeoHhB,cACE,uBACA,UACA,SACA,SACA,cfzHc,0Be2Hd,kBACA,mBAEA,oBACE,sCAGF,kCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,yBACE,gCAEA,YACE,2CAGF,yBACE,aACA,aACA,mBACA,mGAEA,YAEE,+GAEA,oBfrKe,sDe2KnB,cACE,gBACA,iBACA,YACA,oBACA,cf3KkB,sCe8KlB,gCAGF,YACE,mBACA,8CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WftNI,qBewNJ,WACA,UACA,oBACA,qXACA,sBACA,kBACA,CACA,yBACA,mDAGF,UACE,cAIJ,aflNkB,qBeqNhB,+BACE,6BAEA,8BACE,eChPN,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,cCtBJ,cACE,qBACA,WjBDM,2BiBIN,qBAEE,iBACA,+BAGF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mBjBlBiB,4BiBsBnB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,cjBjCmB,ciBmCnB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,ajBrCqB,mCiBwCnB,aACE,oDAGF,WACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBjBtDmB,uBiB2DnB,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gBV5FM,sBU8FN,sGAEA,mCAEE,oBAKF,2BACA,gBVxGM,0BU2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,6BACA,WjBnHI,yBiBqHJ,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,mCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gBVpKI,mBUyKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,cjB7JiB,mDiBgKjB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,YCrMF,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,iDACE,eACA,gBACA,gBACA,qBACA,clBlBmB,oBkBqBnB,alBNmB,0BkBQjB,6EAEA,oBAGE,wCAIJ,alBhCmB,oBkBqCnB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,clB/CiB,qBkBmDnB,iBACE,clBpDiB,uBkBwDnB,eACE,mBACA,kBACA,kBACA,yHAGF,4CAME,mBACA,oBACA,gBACA,clBxEiB,qBkB4EnB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,clBnJe,iCkBuJjB,uBACE,gBACA,gBACA,clBvIY,qDkB2Id,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,kDACA,eACA,iBACA,WlBrNI,iBkBuNJ,kBACA,qEAEA,aAEE,6CAIA,alB7Ne,oCkBkOjB,4CACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,4CACE,eACA,iBACA,gBACA,clB7Pe,mBkB+Pf,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAEA,UACE,YACA,CACA,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iCAIJ,cACE,mCAEA,aACE,WlB1SA,qBkB4SA,uDAGE,yBACE,2CAKN,aACE,clBnTa,kCkB2TnB,iDAEE,CACA,eACA,eACA,iBACA,mBACA,clBlUiB,sCkBqUjB,alBtTiB,0BkBwTf,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,4CACE,eACA,iBACA,gBACA,mBACA,clB5ViB,wBkB+VjB,iDACE,cACA,eACA,gBACA,cACA,kBAIJ,4CACE,eACA,iBACA,gBACA,mBACA,clB7WiB,kBkBkXjB,clBlXiB,mCkBiXnB,4CACE,CACA,gBACA,gBACA,mBACA,clBtXiB,kBkB2XjB,clB3XiB,kBkBoYjB,clBpYiB,mCkBmYnB,4CACE,CACA,gBACA,gBACA,mBACA,clBxYiB,kBkB6YjB,clB7YiB,mCkBqZnB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,6CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBlB/bwB,kBkBictB,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAGF,UACE,YACA,0BACA,mDAGF,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA7DF,iBA8DI,mFAIJ,qBAGE,mBlBxjBsB,kBkB0jBtB,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,alB1lBiB,qCkB8lBjB,eACE,WlBlmBE,gBkBomBF,ClBjmBe,yFkBsmBb,alBtmBa,+CkB4mBjB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SlBxrBI,YkB0rBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,clB/sBe,6BkBmtBjB,eACE,iBACA,+BAGF,kBlBttBsB,akBwtBpB,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,4CACE,eACA,gBACA,cACA,qCAGF,cACE,clB9vBa,uFkBowBnB,eACE,cASA,ClB9wBiB,2CkB2wBjB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,clB91BiB,qBkBg2BjB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,clBh2Bc,SmBvBlB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBnBrBwB,UmB0BxB,anBbmB,0BmBejB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBnB9DsB,6BmBgEpB,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+CACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,cnB1GmB,gBmB4GnB,0DAEA,UnBjHM,wDmBqHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBnB5JsB,sBmB8JtB,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBnB3KsB,gCmB8KtB,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBnBnMsB,uCmBsMpB,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,cnB7Oa,gBmB+Ob,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,uCAEA,iBACE,sCAGF,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBC7RN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBpBZoB,YoBcpB,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SpBzCA,YoB2CE,kBACA,YACA,uCAIJ,aACE,cpB/Ca,qBoBiDb,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,cpBzFa,qBoB2Fb,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UpB1GA,yBoB4GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UpBlIE,yBAkBa,gBoBmHb,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,apBlNiB,eoBoNf,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,apB7NiB,eoB+Nf,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,cpBxOe,mBoB0Of,kBACA,gCACA,4BAGF,cACE,cpBhPe,iBoBkPf,gBACA,0CAGF,UpBzPI,gBoB2PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WpBzQE,oBoB2QF,iBACA,gBACA,gBACA,2BAGF,cACE,iBACA,cpBhRe,mBoBkRf,kCAEA,UpBvRE,gBoByRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,6CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BpBlUe,YoByUrB,UACE,SACA,cACA,WACA,sDAKA,apBjWmB,0DoBoWjB,apBrViB,4DoB0VnB,apBnWc,gBoBqWZ,4DAGF,ab9WU,gBagXR,0DAGF,apBhWgB,gBoBkWd,0DAGF,abtXU,gBawXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,6CAKN,aACE,mBACA,2BAGF,oBACE,cpBtae,qBoBwaf,yBACA,eACA,gBACA,gCACA,iCAEA,UpBjbE,gCoBmbA,oCAGF,apBpae,gCoBsab,CAkBJ,gBAIJ,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,cpB5eiB,CoBifb,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,apB5iBmB,qBoB8iBjB,oBAEA,yBACE,SAKN,aACE,YAGF,gBACE,eACA,mBpBzkBwB,gCoB2kBxB,uBAEA,eACE,oBAGF,YACE,2BACA,mBACA,cpBtlBiB,eoBwlBjB,eACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,apB7lBgB,sDoBimBhB,apBpnBmB,qBoBwnBjB,gBACA,yDAIJ,oBAIE,cpBjoBmB,iGoBooBnB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBpBvqBc,yBoB2qBd,yBACE,wBAGF,yBbnrBU,wBawrBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,apBlsBiB,uBoBwsBjB,wBACA,qBAGF,apBzrBgB,coB8rBlB,kBpB/sB0B,kBoBitBxB,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,cpBvuBe,yBoByuBf,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,abvvBM,6Ba8vBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,cpB5wBa,mLoB+wBb,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,apBxwBU,iBoB0wBR,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,cpBvyBa,WoB8yBrB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,apBt1BY,8CoB21Bd,qBACE,aACA,WpBt2BI,coB22BR,iBACE,qBAGF,wBACE,kBACA,2BAEA,cACE,mBpB/2BsB,gCoBi3BtB,kCAEA,cACE,cACA,gBACA,eACA,gBACA,cpB13Be,qBoB43Bf,mBACA,uHAEA,UpBl4BE,iCoBy4BJ,cACE,cpBp3BY,uCoBw3Bd,YACE,8BACA,mBACA,sCAGF,eACE,sBCt5BN,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WrBtCI,6CqBwCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,crB/CiB,kBqBiDjB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,arBpEmB,gBqBsEjB,qBACA,UC3EJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,0BAGF,SACE,WACA,0DAGF,iBAEE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,qEACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,kkEC7ZJ,kIACE,CADF,sIACE,qBACA,MCDF,6CACE,CjBFM,qCiBSN,UjBTM,sDiBcR,wBAEE,sMAEA,UjBlBM,gGiB0BR,ejB1BQ,yBiBgCN,aACA,uBAGF,kBACE,oCAGF,ejBxCQ,gCiB2CN,8BAGF,sBACE,iBACA,kBACA,qCAGF,wBAEE,oCAGF,ejBzDQ,yBiB4DN,qCAEA,mCALF,YAMI,+DAGF,SACE,QACA,gIAIJ,ejBxEQ,+BiBgFR,axB/DqB,8GwBkEnB,axBlEmB,gBOjBb,gDiB2FR,iBjB3FQ,4BiB+FR,axB7FqB,0BwB+FnB,iIAGF,aAIE,6cAEA,UxB3GM,oBwBkHR,kBACE,gCACA,wDAKA,ejBxHM,gCiB0HJ,4MAEA,kBxBxHsB,kCwBgI1B,4BACE,gCACA,qCAEA,iCAJF,YAKI,uUAIJ,wBAYE,qCAIA,eADF,YAEI,gBACA,sCAIJ,YACE,gBACA,oCAGF,oXACE,uEAGF,wBAEE,2BAGF,wBACE,aACA,8CAGF,kBxBlL0B,yBwBoLxB,aACA,gCAGF,ejB5LQ,yBiB+LN,0BAGF,o1BACE,oFAME,aACE,6QAEA,UjB5ME,gFiBmNJ,aACE,2GAEA,aACE,CAHF,iGAEA,aACE,CAHF,qGAEA,aACE,CAHF,4FAEA,aACE,CAMJ,8FAGF,kBACE,yPAIA,kBAIE,iBAKN,oBACE,6BAEA,kBACE,0BAIJ,+BACE,qBxBnPwB,kBwBwP1B,kBxBxP0B,uBwB4P1B,kBACE,wCAGF,kBACE,+CAGF,ejBxQQ,0GiB8QR,kBxB1Q0B,sHwB8QxB,kBACE,uCAKJ,kBxBpR0B,uEwByR1B,UjB7RQ,0BiBiSR,wBxB7R0B,gBwBkS1B,ejBtSQ,4BiB0SJ,sBjB1SI,2BiB8SJ,qBjB9SI,8BiBkTJ,wBjBlTI,6BiBsTJ,uBjBtTI,wBiB4TJ,ejB5TI,cPEa,85BwBkUrB,UjBpUQ,2BiB4VR,2BACE,uNAIF,ejBjWQ,yBiB6WN,wBAGF,0BACE,0BAGF,wBACE,mCAGF,kBACE,yBACA,aACA,8BAGF,UjB9XQ,6JiBkYR,kBAME,+2DAIE,qBAGE,qBAKN,ejBpZQ,yDiBwZR,ejBxZQ,yBiB0ZN,+DAEA,oBACE,gBjB7ZI,qBiBkaR,kBxBhaqB,sEwBoarB,kBACE,4FAGF,kBACE,uCAIF,UxBhbQ,gBOCA,WiBqbR,ejBrbQ,yBiBubN,gBACA,qCAEA,UALF,YAMI,kBAGF,mBACE,wBACA,4BACA,oEAEA,kBxB/bsB,yFwBscpB,sBAGE,4BxB5ba,uBwBocrB,exBrdQ,4BwBudN,kMAGF,ejB1dQ,yBiBoeN,qCAEA,iMAZF,aAaI,eACA,aACA,8BAIJ,YACE,gBACA,oLASE,oBACE,+BAKN,ejB9fQ,yBiBggBN,aACA,qCAEA,8BALF,QAMI,kBAIJ,axBtgBqB,0EwB2gBnB,kBxBzgBwB,qCwB+gBxB,kBAPF,QAQI,sDAIJ,oBxBvgBqB,mVwB2gBnB,UjB5hBM,mMiBoiBN,kBxBnhBmB,oEwB2hBnB,oBAGE,kBAIJ,wBACE,8BAEA,YACE,yBAGF,exB1jBM,0HwB6jBJ,2BAGE,CxBjkBE,oGwB2kBF,UxB3kBE,0DwBqlBF,axBllBe,2CwBwlBf,UxB3lBE,6CwBgmBJ,axB7lBiB,6DwBimBjB,UxBpmBI,4CwB4mBN,eACE,8BACA,iBACA,oDxB7lBiB,awBmmBjB,yFAHF,oBxBhmBmB,qCwBymBnB,CxBzmBmB,2HwBmnBnB,axBnnBmB,qBwBwnBrB,UjBzoBQ,yBiB4oBN,SjB5oBM,2CiBkpBN,wBACE,qCAEA,0CAHF,YAII,kGAIJ,eAGE,sEAGF,exBhqBM,yBwBmqBJ,wBAGF,kBxBlqBwB,yBwBoqBtB,qCAEA,uBAJF,QAKI,+GAIA,kBAGE,8CAMJ,kBACE,oDAEA,eACE,mDAKF,exBjsBE,yBwBmsBA,aACA,wDAGF,iBxBvsBE,qCwB2sBF,2CAXF,exBhsBI,yBwB6sBA,aACA,kHAMA,UjBptBA,qCiBwtBE,gHAJF,UxBrtBA,mEwBiuBF,QACE,2FAGF,oBACE,yFAMR,yCAEE,0PAGF,eAaE,sKAGF,UxBjwBQ,0D","file":"skins/vanilla/mastodon-light/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#ccd7e0 rgba(255,255,255,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#ccd7e0;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#c6d2dc}::-webkit-scrollbar-thumb:active{background:#ccd7e0}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(255,255,255,.1)}::-webkit-scrollbar-track:hover{background:#d9e1e8}::-webkit-scrollbar-track:active{background:#d9e1e8}::-webkit-scrollbar-corner{background:transparent}body{font-family:\"mastodon-font-sans-serif\",sans-serif;background:#eff3f5;font-size:13px;line-height:18px;font-weight:400;color:#000;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",\"mastodon-font-sans-serif\",sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#d9e1e8}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.player{text-align:center}body.embed{background:#ccd7e0;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#e6ebf0;padding:0}body.error{position:absolute;text-align:center;color:#282c37;background:#d9e1e8;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog__illustration img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div,.app-holder>noscript{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.app-holder>noscript{height:100vh}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.error-boundary,.app-holder noscript{flex-direction:column;font-size:16px;font-weight:400;line-height:1.7;color:#dc2f4b;text-align:center}.error-boundary>div,.app-holder noscript>div{max-width:500px}.error-boundary p,.app-holder noscript p{margin-bottom:.85em}.error-boundary p:last-child,.app-holder noscript p:last-child{margin-bottom:0}.error-boundary a,.app-holder noscript a{color:#2b90d9}.error-boundary a:hover,.error-boundary a:focus,.error-boundary a:active,.app-holder noscript a:hover,.app-holder noscript a:focus,.app-holder noscript a:active{text-decoration:none}.error-boundary__footer,.app-holder noscript__footer{color:#444b5d;font-size:13px}.error-boundary__footer a,.app-holder noscript__footer a{color:#444b5d}.error-boundary button,.app-holder noscript button{display:inline;border:0;background:transparent;color:#444b5d;font:inherit;padding:0;margin:0;line-height:inherit;cursor:pointer;outline:0;transition:color 300ms linear;text-decoration:underline}.error-boundary button:hover,.error-boundary button:focus,.error-boundary button:active,.app-holder noscript button:hover,.app-holder noscript button:focus,.app-holder noscript button:active{text-decoration:none}.error-boundary button.copied,.app-holder noscript button.copied{color:#4a905f;transition:none}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#000;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#000;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px}.account-header .name{flex:1 1 auto;color:#282c37;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#000}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#b3c3d1}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#282c37;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#000}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#a6b9c9;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#99afc2}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#282c37}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#fff}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#ccd7e0;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #ccd7e0;background:#f2f5f7}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#ccd7e0;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#000;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#000;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#282c37}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#282c37;padding:10px;border-right:1px solid #ccd7e0;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9bcbed;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b90d9;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#282c37}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#000;font-family:\"mastodon-font-display\",sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #b3c3d1}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#282c37}.public-layout .public-account-header__extra__links a{display:inline-block;color:#282c37;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#000}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#217aba}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#4a905f}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#000}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#282c37}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #c0cdd9}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #c0cdd9}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#d9e1e8}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#ccd7e0}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#6d8ca7}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#6d8ca7}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#282c37}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#6d8ca7}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#6d8ca7}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#60829f}.compact-header h1{font-size:24px;line-height:28px;color:#282c37;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#282c37}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#d9e1e8;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#282c37;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#131419}.hero-widget__text a{color:#282c37;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#282c37}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#282c37}.box-widget{padding:20px;border-radius:4px;background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #444b5d;text-align:center;color:#282c37;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#282c37;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#282c37}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#282c37;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2);color:#282c37;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#282c37}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#282c37;margin-bottom:10px}.page-header{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#000;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#282c37}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#ccd7e0}.page-header h1{font-size:24px}}.directory{background:#d9e1e8;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#d9e1e8;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#c0cdd9}.directory__tag.active>a{background:#2b90d9;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#282c37}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#282c37}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small,.directory__tag.active h4 .trends__item__current{color:#000}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#2b90d9}.directory__tag .trends__item__current{padding-right:0}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#f2f5f7;border:2px solid #d9e1e8}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#282c37;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #c0cdd9}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#000}.accounts-table__count small{display:block;color:#282c37;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #a6b9c9}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#282c37}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#2b90d9}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#e6ebf0;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#000;border-bottom:1px solid #ccd7e0}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #ccd7e0}code{font-family:\"mastodon-font-monospace\",monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#000;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#2b90d9;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#282c37}.simple_form .hint a{color:#2b90d9}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#fff}.simple_form .hint li{list-style:disc;margin-left:18px}.simple_form ul.hint{margin-bottom:15px}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#282c37}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#000;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#000;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#000;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .input.datetime .label_input select{display:inline-block;width:auto;flex:0}.simple_form .required abbr{text-decoration:none;color:#c1203b}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#000;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#000;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #444b5d;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#000;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#f9fafb;border:1px solid #fff;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#1f232b}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#c1203b}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#4a905f}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#fff}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#2b90d9;background:#f2f5f7}.simple_form .input.field_with_errors label{color:#c1203b}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#c1203b}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#c1203b;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#2b90d9;color:#000;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#2482c7}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#419bdd}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9bcbed}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#db2a47}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#e3566d}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#000;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#f9fafb url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #fff;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#444b5d;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(249, 250, 251, 0), #f9fafb)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(217,225,232,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#000}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#c0cdd9;color:#282c37;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(74,144,95,.5);background:rgba(74,144,95,.25);color:#4a905f}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#282c37;text-decoration:none}.flash-message a:hover{color:#000;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#d9e1e8;color:#000;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#ccd7e0}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#282c37;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#2b90d9;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#217aba}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#282c37}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#282c37;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#282c37;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#000;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#000;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#282c37}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#000;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:\"mastodon-font-monospace\",monospace}.input-copy{background:#f9fafb;border:1px solid #fff;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:\"mastodon-font-monospace\",monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#4a905f;transition:none}.input-copy.copied button{background:#4a905f;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#e6ebf0;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#e6ebf0;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#c0cdd9}.card__img{height:130px;position:relative;background:#fff;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#ccd7e0;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#f2f5f7;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#000;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#000;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#000;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#282c37}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#000}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2);color:#444b5d;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#282c37;background-color:rgba(40,44,55,.1);border:1px solid rgba(40,44,55,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#4a905f;background-color:rgba(74,144,95,.1);border-color:rgba(74,144,95,.5)}.account-role.admin,.simple_form .recommended.admin{color:#c1203b;background-color:rgba(193,32,59,.1);border-color:rgba(193,32,59,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #b3c3d1;border-bottom:1px solid #b3c3d1;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #b3c3d1}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#282c37;background:rgba(242,245,247,.5)}.account__header__fields dd{flex:1 1 auto;color:#282c37}.account__header__fields a{color:#2b90d9;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(74,144,95,.5);background:rgba(74,144,95,.25)}.account__header__fields .verified a{color:#4a905f;font-weight:500}.account__header__fields .verified__mark{color:#4a905f}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#282c37}.pending-account__header a{color:#282c37;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#000;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}.activity-stream--under-tabs{border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#d9e1e8}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#c0cdd9}.button.logo-button{flex:0 auto;font-size:14px;background:#2b90d9;color:#000;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#000}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#2074b1}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9bcbed}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.animated-number{display:inline-flex;flex-direction:column;align-items:stretch;overflow:hidden;position:relative}.link-button{display:block;font-size:15px;line-height:20px;color:#2b90d9;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9bcbed;cursor:default}.button{background-color:#2b90d9;border:10px none;border-radius:4px;box-sizing:border-box;color:#000;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#2074b1;transition:all 200ms ease-out}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled,.button.disabled{background-color:#9bcbed;cursor:default}.button::-moz-focus-inner{border:0}.button::-moz-focus-inner,.button:focus,.button:active{outline:0 !important}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#000;background:#9bcbed}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#8ac2ea}.button.button-alternative-2{background:#b0c0cf}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#a3b6c7}.button.button-secondary{color:#282c37;background:transparent;padding:3px 15px;border:1px solid #9bcbed}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#8ac2ea;color:#1f232b}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.icon-button{display:inline-block;padding:0;color:#606984;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#51596f;background-color:rgba(96,105,132,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(96,105,132,.3)}.icon-button.disabled{color:#828ba4;background-color:transparent;cursor:default}.icon-button.active{color:#2b90d9}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#282c37}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#373d4c;background-color:rgba(40,44,55,.15)}.icon-button.inverted:focus{background-color:rgba(40,44,55,.3)}.icon-button.inverted.disabled{color:#191b22;background-color:transparent}.icon-button.inverted.active{color:#2b90d9}.icon-button.inverted.active.disabled{color:#1d6ca4}.icon-button.overlayed{box-sizing:content-box;background:rgba(255,255,255,.6);color:rgba(0,0,0,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(255,255,255,.9)}.text-icon-button{color:#282c37;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#373d4c;background-color:rgba(40,44,55,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(40,44,55,.3)}.text-icon-button.disabled{color:#000;background-color:transparent;cursor:default}.text-icon-button.active{color:#2b90d9}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.compose-form{padding:10px}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#2b90d9}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9bcbed;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#2b90d9;background:#2b90d9}.compose-form .compose-form__warning{color:#000;margin-bottom:10px;background:#9bcbed;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.compose-form .compose-form__warning strong{color:#000;font-weight:500}.compose-form .compose-form__warning strong:lang(ja){font-weight:700}.compose-form .compose-form__warning strong:lang(ko){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-CN){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-HK){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-TW){font-weight:700}.compose-form .compose-form__warning a{color:#282c37;font-weight:500;text-decoration:underline}.compose-form .compose-form__warning a:hover,.compose-form .compose-form__warning a:active,.compose-form .compose-form__warning a:focus{text-decoration:none}.compose-form .emoji-picker-dropdown{position:absolute;top:0;right:0}.compose-form .compose-form__autosuggest-wrapper{position:relative}.compose-form .autosuggest-textarea,.compose-form .autosuggest-input,.compose-form .spoiler-input{position:relative;width:100%}.compose-form .spoiler-input{height:0;transform-origin:bottom;opacity:0}.compose-form .spoiler-input.spoiler-input--visible{height:36px;margin-bottom:11px;opacity:1}.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0}.compose-form .autosuggest-textarea__textarea::placeholder,.compose-form .spoiler-input__input::placeholder{color:#444b5d}.compose-form .autosuggest-textarea__textarea:focus,.compose-form .spoiler-input__input:focus{outline:0}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{font-size:16px}}.compose-form .spoiler-input__input{border-radius:4px}.compose-form .autosuggest-textarea__textarea{min-height:100px;border-radius:4px 4px 0 0;padding-bottom:0;padding-right:32px;resize:none;scrollbar-color:initial}.compose-form .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.compose-form .autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.compose-form .autosuggest-textarea__suggestions{box-sizing:border-box;display:none;position:absolute;top:100%;width:100%;z-index:99;box-shadow:4px 4px 6px rgba(0,0,0,.4);background:#282c37;border-radius:0 0 4px 4px;color:#000;font-size:14px;padding:6px}.compose-form .autosuggest-textarea__suggestions.autosuggest-textarea__suggestions--visible{display:block}.compose-form .autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.compose-form .autosuggest-textarea__suggestions__item:hover,.compose-form .autosuggest-textarea__suggestions__item:focus,.compose-form .autosuggest-textarea__suggestions__item:active,.compose-form .autosuggest-textarea__suggestions__item.selected{background:#3d4455}.compose-form .autosuggest-account,.compose-form .autosuggest-emoji,.compose-form .autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.compose-form .autosuggest-hashtag{justify-content:space-between}.compose-form .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-hashtag strong{font-weight:500}.compose-form .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-account-icon,.compose-form .autosuggest-emoji img{display:block;margin-right:8px;width:16px;height:16px}.compose-form .autosuggest-account .display-name__account{color:#282c37}.compose-form .compose-form__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.compose-form .compose-form__modifiers .compose-form__upload-wrapper{overflow:hidden}.compose-form .compose-form__modifiers .compose-form__uploads-wrapper{display:flex;flex-direction:row;padding:5px;flex-wrap:wrap}.compose-form .compose-form__modifiers .compose-form__upload{flex:1 1 0;min-width:40%;margin:5px}.compose-form .compose-form__modifiers .compose-form__upload__actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button{flex:0 1 auto;color:#282c37;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:hover,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:focus,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:active{color:#191b22}.compose-form .compose-form__modifiers .compose-form__upload__actions.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-description{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);padding:10px;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload-description textarea{background:transparent;color:#282c37;border:0;padding:0;margin:0;width:100%;font-family:inherit;font-size:14px;font-weight:500}.compose-form .compose-form__modifiers .compose-form__upload-description textarea:focus{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload-description textarea::placeholder{opacity:.75;color:#282c37}.compose-form .compose-form__modifiers .compose-form__upload-description.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-thumbnail{border-radius:4px;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;height:140px;width:100%;overflow:hidden}.compose-form .compose-form__buttons-wrapper{padding:10px;background:#fff;border-radius:0 0 4px 4px;display:flex;justify-content:space-between;flex:0 0 auto}.compose-form .compose-form__buttons-wrapper .compose-form__buttons{display:flex}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__upload-button-icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button{display:none}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button.compose-form__sensitive-button--visible{display:block}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button .compose-form__sensitive-button__icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .icon-button,.compose-form .compose-form__buttons-wrapper .text-icon-button{box-sizing:content-box;padding:0 3px}.compose-form .compose-form__buttons-wrapper .character-counter__wrapper{align-self:center;margin-right:4px}.compose-form .compose-form__publish{display:flex;justify-content:flex-end;min-width:0;flex:0 0 auto}.compose-form .compose-form__publish .compose-form__publish-button-wrapper{overflow:hidden;padding-top:10px}.character-counter{cursor:default;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:600;color:#282c37}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .spoiler-input{transition:height .4s ease,opacity .4s ease}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.reply-indicator{border-radius:4px;margin-bottom:10px;background:#9bcbed;padding:10px;min-height:23px;overflow-y:auto;flex:0 2 auto}.reply-indicator__header{margin-bottom:5px;overflow:hidden}.reply-indicator__cancel{float:right;line-height:24px}.reply-indicator__display-name{color:#000;display:block;max-width:100%;line-height:24px;overflow:hidden;padding-right:25px;text-decoration:none}.reply-indicator__display-avatar{float:left;margin-right:5px}.status__content--with-action{cursor:pointer}.status__content,.reply-indicator__content{position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:hidden;text-overflow:ellipsis;padding-top:2px;color:#000}.status__content:focus,.reply-indicator__content:focus{outline:0}.status__content.status__content--with-spoiler,.reply-indicator__content.status__content--with-spoiler{white-space:normal}.status__content.status__content--with-spoiler .status__content__text,.reply-indicator__content.status__content--with-spoiler .status__content__text{white-space:pre-wrap}.status__content .emojione,.reply-indicator__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img,.reply-indicator__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.reply-indicator__content p{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.reply-indicator__content p:last-child{margin-bottom:0}.status__content a,.reply-indicator__content a{color:#d8a070;text-decoration:none}.status__content a:hover,.reply-indicator__content a:hover{text-decoration:underline}.status__content a:hover .fa,.reply-indicator__content a:hover .fa{color:#353a48}.status__content a.mention:hover,.reply-indicator__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span,.reply-indicator__content a.mention:hover span{text-decoration:underline}.status__content a .fa,.reply-indicator__content a .fa{color:#444b5d}.status__content a.unhandled-link,.reply-indicator__content a.unhandled-link{color:#217aba}.status__content .status__content__spoiler-link,.reply-indicator__content .status__content__spoiler-link{background:#606984}.status__content .status__content__spoiler-link:hover,.reply-indicator__content .status__content__spoiler-link:hover{background:#51596f;text-decoration:none}.status__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner{border:0}.status__content .status__content__spoiler-link::-moz-focus-inner,.status__content .status__content__spoiler-link:focus,.status__content .status__content__spoiler-link:active,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link:focus,.reply-indicator__content .status__content__spoiler-link:active{outline:0 !important}.status__content .status__content__text,.reply-indicator__content .status__content__text{display:none}.status__content .status__content__text.status__content__text--visible,.reply-indicator__content .status__content__text.status__content__text--visible{display:block}.announcements__item__content{word-wrap:break-word;overflow-y:auto}.announcements__item__content .emojione{width:20px;height:20px;margin:-3px 0 0}.announcements__item__content p{margin-bottom:10px;white-space:pre-wrap}.announcements__item__content p:last-child{margin-bottom:0}.announcements__item__content a{color:#282c37;text-decoration:none}.announcements__item__content a:hover{text-decoration:underline}.announcements__item__content a.mention:hover{text-decoration:none}.announcements__item__content a.mention:hover span{text-decoration:underline}.announcements__item__content a.unhandled-link{color:#217aba}.status__content.status__content--collapsed{max-height:300px}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#217aba;border:0;background:transparent;padding:0;padding-top:8px;text-decoration:none}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:transparent;border:0;color:#000;font-weight:700;font-size:11px;padding:0 6px;text-transform:uppercase;line-height:20px;cursor:pointer;vertical-align:middle}.status__wrapper--filtered{color:#444b5d;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #c0cdd9}.status__prepend-icon-wrapper{left:-26px;position:absolute}.focusable:focus{outline:0;background:#ccd7e0}.focusable:focus .status.status-direct{background:#b3c3d1}.focusable:focus .status.status-direct.muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#c0cdd9}.status{padding:8px 10px;padding-left:68px;position:relative;min-height:54px;border-bottom:1px solid #c0cdd9;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:26px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#c0cdd9;border-bottom-color:#b3c3d1}.status.light .status__relative-time{color:#444b5d}.status.light .status__display-name{color:#000}.status.light .display-name{color:#444b5d}.status.light .display-name strong{color:#000}.status.light .status__content{color:#000}.status.light .status__content a{color:#2b90d9}.status.light .status__content a.status__content__spoiler-link{color:#000;background:#9bcbed}.status.light .status__content a.status__content__spoiler-link:hover{background:#78b9e7}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#444a5e}.status__relative-time,.notification__relative_time{color:#444b5d;float:right;font-size:14px}.status__display-name{color:#444b5d}.status__info .status__display-name{display:block;max-width:100%;padding-right:25px}.status__info{font-size:15px}.status-check-box{border-bottom:1px solid #282c37;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1;overflow:hidden}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-left:68px;color:#444b5d;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#444b5d}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#606984}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#ccd7e0;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .status__content .status__content__spoiler-link{line-height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#444b5d;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.reply-indicator__content{color:#000;font-size:14px}.reply-indicator__content a{color:#282c37}.domain{padding:10px;border-bottom:1px solid #c0cdd9}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#000;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}.account{padding:10px;border-bottom:1px solid #c0cdd9}.account.compact{padding:0;border-bottom:0}.account.compact .account__avatar-wrapper{margin-left:0}.account .account__display-name{flex:1 1 auto;display:block;color:#282c37;overflow:hidden;text-decoration:none;font-size:14px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;position:relative}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;border-radius:50%;overflow:hidden;position:relative}.account__avatar-composite>div{float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#000;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}a .account__avatar{cursor:pointer}.account__avatar-overlay{width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__disclaimer{padding:10px;border-top:1px solid #c0cdd9;color:#444b5d}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-dropdown{padding:10px}.account__action-bar-dropdown .icon-button{vertical-align:middle}.account__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__right{left:6px;right:initial}.account__action-bar-dropdown .dropdown--active::after{bottom:initial;margin-left:11px;margin-top:-7px;right:initial}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-right:1px solid #c0cdd9;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab.active{border-bottom:4px solid #2b90d9}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#282c37}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#000}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#000}.muted .emojione{opacity:.5}.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,a.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#282c37;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#000}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{height:48px;left:10px;position:absolute;top:10px;width:48px}.status__expand{width:68px;position:absolute;left:0;top:0;height:100%;cursor:pointer}.muted .status__content,.muted .status__content p,.muted .status__content a{color:#444b5d}.muted .status__display-name strong{color:#444b5d}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#b0c0cf;color:#000}.muted a.status__content__spoiler-link:hover{background:#9aaec2;text-decoration:none}.notification__message{margin:0 10px 0 68px;padding:8px 0 0;cursor:default;color:#282c37;font-size:15px;line-height:22px;position:relative}.notification__message .fa{color:#2b90d9}.notification__message>span{display:inline;overflow:hidden;text-overflow:ellipsis}.notification__favourite-icon-wrapper{left:-26px;position:absolute}.notification__favourite-icon-wrapper .star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#000;text-decoration:underline}.notification__relative_time{float:right}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.navigation-bar{padding:10px;display:flex;align-items:center;flex-shrink:0;cursor:default;color:#282c37}.navigation-bar strong{color:#282c37}.navigation-bar a{color:inherit}.navigation-bar .permalink{text-decoration:none}.navigation-bar .navigation-bar__actions{position:relative}.navigation-bar .navigation-bar__actions .icon-button.close{position:absolute;pointer-events:none;transform:scale(0, 1) translate(-100%, 0);opacity:0}.navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:auto;transform:scale(1, 1) translate(0, 0);opacity:1}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;line-height:20px;margin-top:-1px;overflow:hidden}.navigation-bar__profile-account{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile-edit{color:inherit;text-decoration:none}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #393f4f;margin:5px 7px 6px;height:0}.dropdown-menu{background:#282c37;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);z-index:9999}.dropdown-menu ul{list-style:none}.dropdown-menu.left{transform-origin:100% 50%}.dropdown-menu.top{transform-origin:50% 100%}.dropdown-menu.bottom{transform-origin:50% 0}.dropdown-menu.right{transform-origin:0 50%}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#282c37}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#282c37}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#282c37}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#282c37}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#282c37;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#2b90d9;color:#282c37;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#282c37;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#282c37;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#2b90d9;color:#282c37}.dropdown__icon{vertical-align:middle}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area.unscrollable{overflow-x:hidden}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#f2f5f7;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .drawer,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:350px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#d9e1e8;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.drawer{width:330px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden}.drawer__tab{display:block;flex:1 1 auto;padding:15px 5px 13px;color:#282c37;text-decoration:none;text-align:center;font-size:16px;border-bottom:2px solid transparent}.column,.drawer{flex:1 1 auto;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#c0cdd9;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#000;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #c0cdd9;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.tabs-bar__link:hover,.tabs-bar__link:focus,.tabs-bar__link:active{background:#adbecd;border-bottom-color:#adbecd}}.tabs-bar__link.active{border-bottom:2px solid #2b90d9;color:#2b90d9}.tabs-bar__link span{margin-left:5px;display:none}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;height:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px 15px 15px 78px;min-height:50px}.columns-area--mobile .status__avatar{left:15px;top:17px}.columns-area--mobile .status__content{padding-top:5px}.columns-area--mobile .status__prepend{margin-left:78px;padding-top:15px}.columns-area--mobile .status__prepend-icon-wrapper{left:-32px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{margin-left:78px;padding-top:15px}.columns-area--mobile .notification__favourite-icon-wrapper{left:-32px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}.columns-area--mobile .notification .account__avatar-wrapper{margin-left:17px;margin-right:15px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#3897db;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#227dbe}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.getting-started__trends,.search{margin-bottom:10px}.getting-started__panel{margin:10px 0}.column,.drawer{min-width:330px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#2b90d9;border:2px solid #c0cdd9;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#000}.column-link--transparent .icon-with-badge__badge{border-color:#f2f5f7}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .navigation-bar{padding-top:20px;padding-bottom:20px;flex:0 1 48px;min-height:20px}.compose-panel .flex-spacer{background:transparent}.compose-panel .compose-form{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px;padding-bottom:71px;margin-bottom:-71px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #ccd7e0;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#b0c0cf;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%;border-radius:2px}.drawer__inner.darker{background:#d9e1e8}.drawer__inner__mastodon{background:#b0c0cf url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:85%;height:100%;pointer-events:none;user-drag:none;user-select:none}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#b0c0cf;font-size:13px;text-align:left}.drawer__header{flex:0 0 auto;font-size:16px;background:#c0cdd9;margin-bottom:10px;display:flex;flex-direction:row;border-radius:2px}.drawer__header a{transition:background 100ms ease-in}.drawer__header a:hover{background:#cfd9e2;transition:background 200ms ease-out}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.column-back-button{box-sizing:border-box;width:100%;background:#ccd7e0;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;line-height:inherit;border:0;text-align:unset;padding:15px;margin:0;z-index:3;outline:0}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#ccd7e0;border:0;font-family:inherit;color:#2b90d9;cursor:pointer;white-space:nowrap;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#d9e1e8;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#f9fafb}.react-toggle--checked .react-toggle-track{background-color:#2b90d9}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#2074b1}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #d9e1e8;border-radius:50%;background-color:#fff;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#2b90d9}.column-link{background:#c0cdd9;color:#000;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#b6c5d3}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#282c37}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#000}.column-link--transparent.active{color:#2b90d9}.column-link__icon{display:inline-block;margin-right:5px}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#d9e1e8;padding:4px 8px;margin:-6px 10px}.column-subheading{background:#d9e1e8;color:#444b5d;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.getting-started__wrapper,.getting-started,.flex-spacer{background:#d9e1e8}.flex-spacer{flex:1 1 auto}.getting-started{color:#444b5d;overflow:auto;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.getting-started__wrapper,.getting-started__panel,.getting-started__footer{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex-grow:0}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#444b5d;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#282c37}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__wrapper,.getting-started__footer{color:#444b5d}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#282c37;padding:10px;font-weight:500;border-bottom:1px solid #c0cdd9}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#282c37}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#c0cdd9;border:1px solid #e6ebf0}.setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0;border-radius:4px}.setting-text:focus{outline:0}@media screen and (max-width: 600px){.setting-text{font-size:16px}}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#606984;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#2b90d9}.status-card{display:flex;font-size:14px;border:1px solid #c0cdd9;border-radius:4px;color:#444b5d;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#282c37;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#000}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}a.status-card{cursor:pointer}a.status-card:hover{background:#c0cdd9}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#282c37;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#282c37}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#c0cdd9;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#ccd7e0}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#ccd7e0}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.load-more{display:block;color:#444b5d;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#d3dce4}.load-gap{border-bottom:1px solid #c0cdd9}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#444b5d;background:#d9e1e8;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#444b5d}.regeneration-indicator__label span{font-size:15px;font-weight:400}.column-header__wrapper{position:relative;flex:0 0 auto;z-index:1}.column-header__wrapper.active{box-shadow:0 1px 0 rgba(43,144,217,.3)}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;bottom:-13px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(43, 144, 217, 0.23) 0%, rgba(43, 144, 217, 0) 60%)}.column-header__wrapper .announcements{z-index:1;position:relative}.column-header{display:flex;font-size:16px;background:#ccd7e0;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden;border-top-left-radius:2px;border-top-right-radius:2px}.column-header>button{margin:0;border:0;padding:15px 0 15px 15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#2b90d9}.column-header.active .column-header__icon{color:#2b90d9;text-shadow:0 0 10px rgba(43,144,217,.4)}.column-header:focus,.column-header:active{outline:0}.column-header__buttons{height:48px;display:flex}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button{background:#ccd7e0;border:0;color:#282c37;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover{color:#191b22}.column-header__button.active{color:#000;background:#c0cdd9}.column-header__button.active:hover{color:#000;background:#c0cdd9}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#282c37;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1;z-index:1;position:relative}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #b3c3d1;margin:10px 0}.column-header__collapsible-inner{background:#c0cdd9;padding:15px}.column-header__setting-btn:hover{color:#282c37;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.column-header__icon{display:inline-block;margin-right:5px}.loading-indicator{color:#444b5d;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #86a0b6;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#86a0b6}29%{background-color:#86a0b6}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.video-error-cover{align-items:center;background:#fff;color:#000;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#fff;color:#282c37;border:0;padding:0;width:100%;height:100%;border-radius:4px;appearance:none}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{padding:0;color:#17191f}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:700}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:block;left:4px;top:4px;width:auto;height:auto}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(255,255,255,.5);border-radius:8px;padding:8px 12px;color:#000;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(255,255,255,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(255,255,255,.5)}.modal-container--preloader{background:#c0cdd9}.account--panel{background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#c0cdd9;padding:15px}.column-settings__section{color:#282c37;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#d9e1e8;color:#282c37;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#1f232b}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#ccd7e0}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#444b5d;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#c0cdd9}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#b3c3d1;color:#1f232b}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#282c37}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#444b5d}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#3b4151}.column-settings__hashtags .column-select__indicator-separator{background-color:#c0cdd9}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#444b5d;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#282c37}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#444b5d;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#000}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#000;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#3d4455}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#000;margin-bottom:4px;display:block;vertical-align:top;background-color:#fff;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.setting-toggle{display:block;line-height:24px}.setting-toggle__label{color:#282c37;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{color:#444b5d;background:#d9e1e8;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{contain:strict}}.empty-column-indicator>span,.error-column>span,.follow_requests-unlocked_explanation>span{max-width:400px}.empty-column-indicator a,.error-column a,.follow_requests-unlocked_explanation a{color:#2b90d9;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover,.follow_requests-unlocked_explanation a:hover{text-decoration:underline}.follow_requests-unlocked_explanation{background:#e6ebf0;contain:initial}.error-column{flex-direction:column}@keyframes heartbeat{from{transform:scale(1);animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.no-reduce-motion .pulse-loading{transform-origin:center center;animation:heartbeat 1.5s ease-in-out infinite both}@keyframes shake-bottom{0%,100%{transform:rotate(0deg);transform-origin:50% 100%}10%{transform:rotate(2deg)}20%,40%,60%{transform:rotate(-4deg)}30%,50%,70%{transform:rotate(4deg)}80%{transform:rotate(-2deg)}90%{transform:rotate(2deg)}}.no-reduce-motion .shake-bottom{transform-origin:50% 100%;animation:shake-bottom .8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(40,44,55,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.upload-area{align-items:center;background:rgba(255,255,255,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#d9e1e8;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#282c37;font-size:18px;font-weight:500;border:2px dashed #b0c0cf;border-radius:4px}.upload-progress{padding:10px;color:#282c37;overflow:hidden;display:flex}.upload-progress .fa{font-size:34px;margin-right:10px}.upload-progress span{font-size:12px;text-transform:uppercase;font-weight:500;display:block}.upload-progess__message{flex:1 1 auto}.upload-progress__backdrop{width:100%;height:6px;border-radius:6px;background:#b0c0cf;position:relative;margin-top:5px}.upload-progress__tracker{position:absolute;left:0;top:0;height:6px;background:#2b90d9;border-radius:6px}.emoji-button{display:block;padding:5px 5px 2px 2px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.dropdown--active .emoji-button img{opacity:1;filter:none}.privacy-dropdown__dropdown{position:absolute;background:#fff;box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:4px;margin-left:40px;overflow:hidden}.privacy-dropdown__dropdown.top{transform-origin:50% 100%}.privacy-dropdown__dropdown.bottom{transform-origin:50% 0}.privacy-dropdown__option{color:#000;padding:10px;cursor:pointer;display:flex}.privacy-dropdown__option:hover,.privacy-dropdown__option.active{background:#2b90d9;color:#000;outline:0}.privacy-dropdown__option:hover .privacy-dropdown__option__content,.privacy-dropdown__option.active .privacy-dropdown__option__content{color:#000}.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,.privacy-dropdown__option.active .privacy-dropdown__option__content strong{color:#000}.privacy-dropdown__option.active:hover{background:#2485cb}.privacy-dropdown__option__icon{display:flex;align-items:center;justify-content:center;margin-right:10px}.privacy-dropdown__option__content{flex:1 1 auto;color:#282c37}.privacy-dropdown__option__content strong{font-weight:500;display:block;color:#000}.privacy-dropdown__option__content strong:lang(ja){font-weight:700}.privacy-dropdown__option__content strong:lang(ko){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-CN){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-HK){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-TW){font-weight:700}.privacy-dropdown.active .privacy-dropdown__value{background:#fff;border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1)}.privacy-dropdown.active .privacy-dropdown__value .icon-button{transition:none}.privacy-dropdown.active .privacy-dropdown__value.active{background:#2b90d9}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#000}.privacy-dropdown.active.top .privacy-dropdown__value{border-radius:0 0 4px 4px}.privacy-dropdown.active .privacy-dropdown__dropdown{display:block;box-shadow:2px 4px 6px rgba(0,0,0,.1)}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#d9e1e8;color:#282c37;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#1f232b}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#ccd7e0}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:transform,opacity;font-size:18px;width:18px;height:18px;color:#282c37;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(90deg)}.search__icon .fa-search.active{pointer-events:none;transform:rotate(0deg)}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#606984;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#51596f}.search-results__header{color:#444b5d;background:#d3dce4;padding:15px;font-weight:500;font-size:16px;cursor:default}.search-results__header .fa{display:inline-block;margin-right:5px}.search-results__section{margin-bottom:5px}.search-results__section h5{background:#e6ebf0;border-bottom:1px solid #c0cdd9;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#444b5d}.search-results__section h5 .fa{display:inline-block;margin-right:5px}.search-results__section .account:last-child,.search-results__section>div:last-child .status{border-bottom:0}.search-results__hashtag{display:block;padding:10px;color:#282c37;text-decoration:none}.search-results__hashtag:hover,.search-results__hashtag:active,.search-results__hashtag:focus{color:#1f232b;text-decoration:underline}.search-results__info{padding:20px;color:#282c37;text-align:center}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(255,255,255,.5);box-sizing:border-box;border:0;color:#000;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#282c37}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#000;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#2b90d9}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.onboarding-modal,.error-modal,.embed-modal{background:#282c37;color:#000;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#393f4f;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#282c37;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#313543;background-color:#4a5266}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#000}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#000}.error-modal__footer{justify-content:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#000;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#d9e1e8;color:#282c37;font-weight:500;padding:10px;border-radius:4px}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#17191f;color:#000;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:block;max-width:100%;padding-right:25px}.boost-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:28px;left:10px;position:absolute;top:10px;width:48px}.boost-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#17191f}.actions-modal .status{background:#fff;border-bottom-color:#282c37;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#282c37}.boost-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#282c37;padding:10px;line-height:36px}.boost-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#282c37;padding-right:10px}.boost-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header{font-size:15px}.boost-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #282c37}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#2b90d9}.report-modal__statuses .status__content,.report-modal__statuses .status__content p,.focal-point-modal__content .status__content,.focal-point-modal__content .status__content p{color:#000}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #282c37;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #282c37;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #393f4f}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #282c37;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#000;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#000;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#000;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#2b90d9;color:#000}.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#282c37;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#313543;background-color:transparent}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#000;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.loading-bar{background-color:#2b90d9;height:3px;position:absolute;top:0;left:0;z-index:9999}.media-gallery__gifv__label{display:block;position:absolute;color:#000;background:rgba(255,255,255,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{margin-top:32px}.media-gallery__audio audio{width:100%}.attachment-list{display:flex;font-size:14px;border:1px solid #c0cdd9;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#444b5d;padding:8px 18px;cursor:default;border-right:1px solid #c0cdd9;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#444b5d;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#444b5d}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%}.media-gallery__item{border:0;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#282c37;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%}.media-gallery__item-thumbnail img{object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#fff}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;object-fit:cover;position:relative;top:50%;transform:translateY(-50%);width:100%;z-index:1}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#f2f5f7;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #ccd7e0;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(33,122,186,.5)}.audio-player__wave-placeholder{background-color:#a6b9c9}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#f2f5f7;border-top:1px solid #ccd7e0;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.video-player video{max-width:100vw;max-height:80vh;z-index:1}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#fff;color:#282c37;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#191b22}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#217aba}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#217aba;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#217aba}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#217aba;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#fff;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#ccd7e0;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#f2f5f7;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#000;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#d9e1e8;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #c0cdd9;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:0;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#e6ebf0;border-bottom:1px solid #c0cdd9;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#e6ebf0;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#282c37;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative;width:100%;white-space:nowrap}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#282c37}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #c0cdd9}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #d9e1e8}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#dfe6ec;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #eff3f5}.filter-form{background:#d9e1e8}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9bcbed;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#217aba;background:#217aba}::-webkit-scrollbar-thumb{border-radius:0}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#444b5d;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#444b5d;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#000}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#282c37;max-width:400px}noscript div a{color:#2b90d9;text-decoration:underline}noscript div a:hover{text-decoration:none}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}@media screen and (max-width: 630px)and (max-height: 400px){.tabs-bar,.search{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar{will-change:padding-bottom;transition:padding-bottom 400ms 100ms}.navigation-bar>a:first-child{will-change:margin-top,margin-left,margin-right,width;transition:margin-top 400ms 100ms,margin-left 400ms 500ms,margin-right 400ms 500ms}.navigation-bar>.navigation-bar__profile-edit{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar .navigation-bar__actions>.icon-button.close{will-change:opacity transform;transition:opacity 200ms 100ms,transform 400ms 100ms}.navigation-bar .navigation-bar__actions>.compose__action-bar .icon-button{will-change:opacity transform;transition:opacity 200ms 300ms,transform 400ms 100ms}.is-composing .tabs-bar,.is-composing .search{margin-top:-50px}.is-composing .navigation-bar{padding-bottom:0}.is-composing .navigation-bar>a:first-child{margin:-100px 10px 0 -50px}.is-composing .navigation-bar .navigation-bar__profile{padding-top:2px}.is-composing .navigation-bar .navigation-bar__profile-edit{position:absolute;margin-top:-60px}.is-composing .navigation-bar .navigation-bar__actions .icon-button.close{pointer-events:auto;opacity:1;transform:scale(1, 1) translate(0, 0);bottom:5px}.is-composing .navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:none;opacity:0;transform:scale(0, 1) translate(100%, 0)}}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#d9e1e8;color:#000;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#ccd7e0}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9}.account__moved-note__message{position:relative;margin-left:58px;color:#444b5d;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.column-inline-form{padding:15px;padding-right:0;display:flex;justify-content:flex-start;align-items:center;background:#ccd7e0}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 10px}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(255,255,255,.5)}.list-editor{background:#d9e1e8;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#b0c0cf;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#d9e1e8;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#b0c0cf}.list-adder__lists{background:#b0c0cf;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #c0cdd9}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#000;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.account__header__content{color:#282c37;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#e6ebf0}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#ccd7e0;padding:5px;border-bottom:1px solid #b3c3d1}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#f2f5f7;border:2px solid #ccd7e0}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #b3c3d1;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#000;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#000}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #b3c3d1}.account__header__bio .account__header__fields a{color:#217aba}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#4a905f}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#282c37;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#282c37;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#000}.trends__header{color:#444b5d;background:#d3dce4;border-bottom:1px solid #e6ebf0;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #c0cdd9}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#444b5d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#282c37;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#282c37}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(43,144,217,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#2380c3 !important}.conversation{display:flex;border-bottom:1px solid #c0cdd9;padding:5px;padding-bottom:0}.conversation:focus{background:#d3dce4;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative;cursor:pointer}.conversation__unread{display:inline-block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#282c37;padding-left:15px}.conversation__content__names{color:#282c37;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#000;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content a{word-break:break-word}.conversation--unread{background:#d3dce4}.conversation--unread:focus{background:#ccd7e0}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#000}.announcements{background:#c0cdd9;font-size:13px;display:flex;align-items:flex-end}.announcements__mastodon{width:124px;flex:0 0 auto}@media screen and (max-width: 424px){.announcements__mastodon{display:none}}.announcements__container{width:calc(100% - 124px);flex:0 0 auto;position:relative}@media screen and (max-width: 424px){.announcements__container{width:100%}}.announcements__item{box-sizing:border-box;width:100%;padding:15px;position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;max-height:50vh;overflow:hidden;display:flex;flex-direction:column}.announcements__item__range{display:block;font-weight:500;margin-bottom:10px;padding-right:18px}.announcements__item__unread{position:absolute;top:19px;right:19px;display:block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem}.announcements__pagination{padding:15px;color:#282c37;position:absolute;bottom:3px;right:0}.layout-multiple-columns .announcements__mastodon{display:none}.layout-multiple-columns .announcements__container{width:100%}.reactions-bar{display:flex;flex-wrap:wrap;align-items:center;margin-top:15px;margin-left:-2px;width:calc(100% - (90px - 33px))}.reactions-bar__item{flex-shrink:0;background:#b3c3d1;border:0;border-radius:3px;margin:2px;cursor:pointer;user-select:none;padding:0 6px;display:flex;align-items:center;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar__item__emoji{display:block;margin:3px 0;width:16px;height:16px}.reactions-bar__item__emoji img{display:block;margin:0;width:100%;height:100%;min-width:auto;min-height:auto;vertical-align:bottom;object-fit:contain}.reactions-bar__item__count{display:block;min-width:9px;font-size:13px;font-weight:500;text-align:center;margin-left:6px;color:#282c37}.reactions-bar__item:hover,.reactions-bar__item:focus,.reactions-bar__item:active{background:#a6b9c9;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar__item:hover__count,.reactions-bar__item:focus__count,.reactions-bar__item:active__count{color:#1f232b}.reactions-bar__item.active{transition:all 100ms ease-in;transition-property:background-color,color;background-color:#98b9d3}.reactions-bar__item.active .reactions-bar__item__count{color:#217aba}.reactions-bar .emoji-picker-dropdown{margin:2px}.reactions-bar:hover .emoji-button{opacity:.85}.reactions-bar .emoji-button{color:#282c37;margin:0;font-size:16px;width:auto;flex-shrink:0;padding:0 6px;height:22px;display:flex;align-items:center;opacity:.5;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar .emoji-button:hover,.reactions-bar .emoji-button:active,.reactions-bar .emoji-button:focus{opacity:1;color:#1f232b;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar--empty .emoji-button{padding:0}.poll{margin-top:16px;font-size:14px}.poll li{margin-bottom:10px;position:relative}.poll__chart{border-radius:4px;display:block;background:#b1d6f1;height:5px;min-width:1%}.poll__chart.leading{background:#2b90d9}.poll__option{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__option__text{display:inline-block;word-wrap:break-word;overflow-wrap:break-word;max-width:calc(100% - 45px - 25px)}.poll__option input[type=radio],.poll__option input[type=checkbox]{display:none}.poll__option .autossugest-input{flex:1 1 auto}.poll__option input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#000;outline:0;font-family:inherit;background:#fff;border:1px solid #fff;border-radius:4px;padding:6px 10px}.poll__option input[type=text]:focus{border-color:#2b90d9}.poll__option.selectable{cursor:pointer}.poll__option.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9bcbed;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#4a905f;background:#4a905f}.poll__input:active,.poll__input:focus,.poll__input:hover{border-color:#305d3d;border-width:4px}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:45px;font-weight:700;flex:0 0 45px}.poll__voted{padding:0 5px;display:inline-block}.poll__voted__mark{font-size:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#444b5d}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#444b5d;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(68,75,93,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #fff}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #fff;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#2b90d9}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#606984;border-color:#606984;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__option{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#000;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #fff;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#fff}.muted .poll{color:#444b5d}.muted .poll__chart{background:rgba(216,234,248,.2)}.muted .poll__chart.leading{background:rgba(43,144,217,.2)}.modal-layout{background:#d9e1e8 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.emoji-mart{font-size:13px;display:inline-block;color:#000}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #393f4f}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#282c37}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#282c37;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#313543}.emoji-mart-anchor-selected{color:#2b90d9}.emoji-mart-anchor-selected:hover{color:#3c99dc}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:-1px}.emoji-mart-anchor-bar{position:absolute;bottom:-5px;left:0;width:100%;height:4px;background-color:#2b90d9}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(255,255,255,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(40,44,55,.3);color:#000;border:1px solid #282c37;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(40,44,55,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#444b5d}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#282c37}.rich-formatting a{color:#2b90d9;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#282c37}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#282c37}.rich-formatting em{font-style:italic;color:#282c37}.rich-formatting code{font-size:.85em;background:#f2f5f7;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:\"mastodon-font-display\",sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#282c37}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #ccd7e0;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #ccd7e0;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#282c37}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#444b5d}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#e6ebf0;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;line-height:28px;color:#000;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#282c37}.information-board__section strong{font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#f2f5f7;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#282c37;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #ccd7e0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#3d4455}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#000;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#282c37}.landing-page p,.landing-page li{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#282c37}.landing-page p a,.landing-page li a{color:#2b90d9;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#131419}.landing-page h1{font-family:\"mastodon-font-display\",sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h1 small{font-family:\"mastodon-font-sans-serif\",sans-serif;display:block;font-size:18px;font-weight:400;color:#131419}.landing-page h2{font-family:\"mastodon-font-display\",sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h3{font-family:\"mastodon-font-display\",sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h4{font-family:\"mastodon-font-display\",sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h5{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h6{font-family:\"mastodon-font-display\",sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(176,192,207,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#d9e1e8;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#131419}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#d9e1e8;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#282c37}.landing-page__short-description h1{font-weight:500;color:#000;margin-bottom:0}.landing-page__short-description h1 small{color:#282c37}.landing-page__short-description h1 small span{color:#282c37}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#000;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#282c37}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#d9e1e8;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:\"mastodon-font-display\",sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#282c37}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#282c37}.landing .simple_form p.lead{color:#282c37;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #c0cdd9}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9bcbed;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#444b5d}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #d9e1e8;text-align:left;background:#e6ebf0}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #d9e1e8;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#d9e1e8}.table a{color:#2b90d9;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#d9e1e8;border-top:1px solid #f2f5f7;border-bottom:1px solid #f2f5f7}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #f2f5f7}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #f2f5f7}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:\"mastodon-font-monospace\",monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#282c37;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#000}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #f2f5f7;background:#d9e1e8;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #f2f5f7;border-top:0;background:#d9e1e8}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #f2f5f7;border-top:0;background:#e6ebf0}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #f2f5f7}}.batch-table__row:hover{background:#dfe6ec}.batch-table__row:nth-child(even){background:#d9e1e8}.batch-table__row:nth-child(even):hover{background:#d3dce4}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#282c37;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content summary{display:list-item}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #f2f5f7;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #f2f5f7}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#d9e1e8;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#c0cdd9;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#000;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#282c37;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#b3c3d1}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#282c37;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#000;background-color:#e9eef2;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#dfe6ec;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#e6ebf0;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#000;background-color:#2b90d9;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#2482c7}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #c0cdd9;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#282c37;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#282c37;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#282c37;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #c0cdd9}.admin-wrapper .content h6{font-size:16px;color:#282c37;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#000;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#000;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:0}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#282c37;margin-bottom:20px}.admin-wrapper .content>p strong{color:#000;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(176,192,207,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #ccd7e0;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#2b90d9}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#282c37}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#2b90d9}body .positive-hint,.admin-wrapper .content .positive-hint{color:#4a905f;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#444b5d;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset--with-select strong{display:block;margin-bottom:10px}.filters .filter-subset a{display:inline-block;color:#282c37;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #d9e1e8}.filters .filter-subset a:hover{color:#000;border-bottom:2px solid #c9d4de}.filters .filter-subset a.selected{color:#2b90d9;border-bottom:2px solid #2b90d9}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#282c37}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#2b90d9;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{line-height:20px;padding:15px 0;background:#d9e1e8;border-bottom:1px solid #ccd7e0}.log-entry:last-child{border-bottom:0}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;color:#282c37;font-size:14px;padding:0 10px}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#444b5d}.log-entry a,.log-entry .username,.log-entry .target{color:#282c37;text-decoration:none;font-weight:500}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#282c37}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#c1203b}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #2b90d9}.speech-bubble.positive{border-left-color:#4a905f}.speech-bubble.negative{border-left-color:#c1203b}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#282c37}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#444b5d}.report-card{background:#d9e1e8;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#282c37;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#17191f}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #e6ebf0}.report-card__summary__item:hover{background:#d3dce4}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#282c37}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#444b5d;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#282c37}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#c0cdd9;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#217aba}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#4a905f}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#000}.center-text{text-align:center}.announcements-list{border:1px solid #ccd7e0;border-radius:4px}.announcements-list__item{padding:15px 0;background:#d9e1e8;border-bottom:1px solid #ccd7e0}.announcements-list__item__title{padding:0 15px;display:block;font-weight:500;font-size:18px;line-height:1.5;color:#282c37;text-decoration:none;margin-bottom:10px}.announcements-list__item__title:hover,.announcements-list__item__title:focus,.announcements-list__item__title:active{color:#000}.announcements-list__item__meta{padding:0 15px;color:#444b5d}.announcements-list__item__action-bar{display:flex;justify-content:space-between;align-items:center}.announcements-list__item:last-child{border-bottom:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#ccd7e0;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#c0cdd9}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#000;font-family:\"mastodon-font-display\",sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#282c37;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#282c37;font-weight:500;text-decoration:none}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .status__avatar{left:auto;right:10px}body.rtl .status,body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:68px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(249, 250, 251, 0), #f9fafb)}body.rtl .simple_form select{background:#f9fafb url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff);transform:scale(0.71)}html{scrollbar-color:#d9e1e8 rgba(217,225,232,.25)}.button{color:#fff}.button.button-alternative-2{color:#fff}.status-card__actions button,.status-card__actions a{color:rgba(255,255,255,.8)}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.column>.scrollable,.getting-started,.column-inline-form,.error-column,.regeneration-indicator{background:#fff;border:1px solid #c0cdd9;border-top:0}.directory__card__img{background:#b3c3d1}.filter-form,.directory__card__bar{background:#fff;border-bottom:1px solid #c0cdd9}.scrollable .directory__list{width:calc(100% + 2px);margin-left:-1px;margin-right:-1px}.directory__card,.table-of-contents{border:1px solid #c0cdd9}.column-back-button,.column-header{background:#fff;border:1px solid #c0cdd9}@media screen and (max-width: 415px){.column-back-button,.column-header{border-top:0}}.column-back-button--slim-button,.column-header--slim-button{top:-50px;right:0}.column-header__back-button,.column-header__button,.column-header__button.active,.account__header__bar,.directory__card__extra{background:#fff}.column-header__button.active{color:#2b90d9}.column-header__button.active:hover,.column-header__button.active:active,.column-header__button.active:focus{color:#2b90d9;background:#fff}.account__header__bar .avatar .account__avatar{border-color:#fff}.getting-started__footer a{color:#282c37;text-decoration:underline}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{color:#86a0b6}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#000}.column-subheading{background:#e6ebf0;border-bottom:1px solid #c0cdd9}.getting-started .column-link,.scrollable .column-link{background:#fff;border-bottom:1px solid #c0cdd9}.getting-started .column-link:hover,.getting-started .column-link:active,.getting-started .column-link:focus,.scrollable .column-link:hover,.scrollable .column-link:active,.scrollable .column-link:focus{background:#d9e1e8}.getting-started .navigation-bar{border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9}@media screen and (max-width: 415px){.getting-started .navigation-bar{border-top:0}}.compose-form__autosuggest-wrapper,.poll__option input[type=text],.compose-form .spoiler-input__input,.compose-form__poll-wrapper select,.search__input,.setting-text,.box-widget input[type=text],.box-widget input[type=email],.box-widget input[type=password],.box-widget textarea,.statuses-grid .detailed-status,.audio-player{border:1px solid #c0cdd9}@media screen and (max-width: 415px){.search__input{border-top:0;border-bottom:0}}.list-editor .search .search__input{border-top:0;border-bottom:0}.compose-form__poll-wrapper select{background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px}.compose-form__poll-wrapper,.compose-form__poll-wrapper .poll__footer{border-top-color:#c0cdd9}.notification__filter-bar{border:1px solid #c0cdd9;border-top:0}.compose-form .compose-form__buttons-wrapper{background:#d9e1e8;border:1px solid #c0cdd9;border-top:0}.drawer__header,.drawer__inner{background:#fff;border:1px solid #c0cdd9}.drawer__inner__mastodon{background:#fff url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button{color:#ededed}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:active,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:focus,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:hover{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload-description input{color:#ededed}.compose-form .compose-form__modifiers .compose-form__upload-description input::placeholder{color:#ededed}.compose-form .compose-form__buttons-wrapper{background:#ecf0f4}.compose-form .autosuggest-textarea__suggestions{background:#ecf0f4}.compose-form .autosuggest-textarea__suggestions__item:hover,.compose-form .autosuggest-textarea__suggestions__item:focus,.compose-form .autosuggest-textarea__suggestions__item:active,.compose-form .autosuggest-textarea__suggestions__item.selected{background:#ccd7e0}.emoji-mart-bar{border-color:#ccd7e0}.emoji-mart-bar:first-child{background:#ecf0f4}.emoji-mart-search input{background:rgba(217,225,232,.3);border-color:#d9e1e8}.focusable:focus{background:#d9e1e8}.status.status-direct{background:#ccd7e0}.focusable:focus .status.status-direct{background:#c0cdd9}.detailed-status,.detailed-status__action-bar{background:#fff}.reply-indicator__content .status__content__spoiler-link,.status__content .status__content__spoiler-link{background:#d9e1e8}.reply-indicator__content .status__content__spoiler-link:hover,.status__content .status__content__spoiler-link:hover{background:#ccd7e0}.media-spoiler,.video-player__spoiler{background:#d9e1e8}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#fff}.account-gallery__item a{background-color:#d9e1e8}.dropdown-menu{background:#fff}.dropdown-menu__arrow.left{border-left-color:#fff}.dropdown-menu__arrow.top{border-top-color:#fff}.dropdown-menu__arrow.bottom{border-bottom-color:#fff}.dropdown-menu__arrow.right{border-right-color:#fff}.dropdown-menu__item a{background:#fff;color:#282c37}.privacy-dropdown__option.active,.privacy-dropdown__option:hover,.privacy-dropdown__option.active .privacy-dropdown__option__content,.privacy-dropdown__option.active .privacy-dropdown__option__content strong,.privacy-dropdown__option:hover .privacy-dropdown__option__content,.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,.dropdown-menu__item a:active,.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.admin-wrapper .sidebar ul .simple-navigation-active-leaf a,.simple_form .block-button,.simple_form .button,.simple_form button{color:#fff}.dropdown-menu__separator{border-bottom-color:#ccd7e0}.actions-modal,.boost-modal,.confirmation-modal,.mute-modal,.block-modal,.report-modal,.embed-modal,.error-modal,.onboarding-modal,.report-modal__comment .setting-text__wrapper,.report-modal__comment .setting-text{background:#fff;border:1px solid #c0cdd9}.report-modal__comment{border-right-color:#c0cdd9}.report-modal__container{border-top-color:#c0cdd9}.column-header__collapsible-inner{background:#e6ebf0;border:1px solid #c0cdd9;border-top:0}.focal-point__preview strong{color:#fff}.boost-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar,.onboarding-modal__paginator,.error-modal__footer{background:#ecf0f4}.boost-modal__action-bar .onboarding-modal__nav:hover,.boost-modal__action-bar .onboarding-modal__nav:focus,.boost-modal__action-bar .onboarding-modal__nav:active,.boost-modal__action-bar .error-modal__nav:hover,.boost-modal__action-bar .error-modal__nav:focus,.boost-modal__action-bar .error-modal__nav:active,.confirmation-modal__action-bar .onboarding-modal__nav:hover,.confirmation-modal__action-bar .onboarding-modal__nav:focus,.confirmation-modal__action-bar .onboarding-modal__nav:active,.confirmation-modal__action-bar .error-modal__nav:hover,.confirmation-modal__action-bar .error-modal__nav:focus,.confirmation-modal__action-bar .error-modal__nav:active,.mute-modal__action-bar .onboarding-modal__nav:hover,.mute-modal__action-bar .onboarding-modal__nav:focus,.mute-modal__action-bar .onboarding-modal__nav:active,.mute-modal__action-bar .error-modal__nav:hover,.mute-modal__action-bar .error-modal__nav:focus,.mute-modal__action-bar .error-modal__nav:active,.block-modal__action-bar .onboarding-modal__nav:hover,.block-modal__action-bar .onboarding-modal__nav:focus,.block-modal__action-bar .onboarding-modal__nav:active,.block-modal__action-bar .error-modal__nav:hover,.block-modal__action-bar .error-modal__nav:focus,.block-modal__action-bar .error-modal__nav:active,.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{background-color:#fff}.display-case__case{background:#fff}.embed-modal .embed-modal__container .embed-modal__html{background:#fff;border:1px solid #c0cdd9}.embed-modal .embed-modal__container .embed-modal__html:focus{border-color:#b3c3d1;background:#fff}.react-toggle-track{background:#282c37}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background:#3d4455}.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background:#2074b1}.empty-column-indicator,.error-column{color:#000;background:#fff}.tabs-bar{background:#fff;border:1px solid #c0cdd9;border-bottom:0}@media screen and (max-width: 415px){.tabs-bar{border-top:0}}.tabs-bar__link{padding-bottom:14px;border-bottom-width:1px;border-bottom-color:#c0cdd9}.tabs-bar__link:hover,.tabs-bar__link:active,.tabs-bar__link:focus{background:#d9e1e8}.tabs-bar__link.active:hover,.tabs-bar__link.active:active,.tabs-bar__link.active:focus{background:transparent;border-bottom-color:#2b90d9}.activity-stream-tabs{background:#fff;border-bottom-color:#c0cdd9}.box-widget,.nothing-here,.page-header,.directory__tag>a,.directory__tag>div,.landing-page__call-to-action,.contact-widget,.landing .hero-widget__text,.landing-page__information.contact-widget{background:#fff;border:1px solid #c0cdd9}@media screen and (max-width: 415px){.box-widget,.nothing-here,.page-header,.directory__tag>a,.directory__tag>div,.landing-page__call-to-action,.contact-widget,.landing .hero-widget__text,.landing-page__information.contact-widget{border-left:0;border-right:0;border-top:0}}.landing .hero-widget__text{border-top:0;border-bottom:0}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#b3c3d1}.landing .hero-widget__footer{background:#fff;border:1px solid #c0cdd9;border-top:0}@media screen and (max-width: 415px){.landing .hero-widget__footer{border:0}}.brand__tagline{color:#282c37}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#d9e1e8}@media screen and (max-width: 415px){.directory__tag>a{border:0}}.directory__tag.active>a,.directory__tag.active>div{border-color:#2b90d9}.directory__tag.active>a,.directory__tag.active>a h4,.directory__tag.active>a h4 small,.directory__tag.active>a .fa,.directory__tag.active>a .trends__item__current,.directory__tag.active>div,.directory__tag.active>div h4,.directory__tag.active>div h4 small,.directory__tag.active>div .fa,.directory__tag.active>div .trends__item__current{color:#fff}.directory__tag.active>a:hover,.directory__tag.active>a:active,.directory__tag.active>a:focus,.directory__tag.active>div:hover,.directory__tag.active>div:active,.directory__tag.active>div:focus{background:#2b90d9}.batch-table__toolbar,.batch-table__row,.batch-table .nothing-here{border-color:#c0cdd9}.activity-stream{border:1px solid #c0cdd9}.activity-stream--under-tabs{border-top:0}.activity-stream .entry{background:#fff}.activity-stream .entry .detailed-status.light,.activity-stream .entry .more.light,.activity-stream .entry .status.light{border-bottom-color:#c0cdd9}.activity-stream .status.light .status__content{color:#000}.activity-stream .status.light .display-name strong{color:#000}.accounts-grid .account-grid-card .controls .icon-button{color:#282c37}.accounts-grid .account-grid-card .name a{color:#000}.accounts-grid .account-grid-card .username{color:#282c37}.accounts-grid .account-grid-card .account__header__content{color:#000}.simple_form .warning,.table-form .warning{box-shadow:none;background:rgba(223,64,90,.5);text-shadow:none}.simple_form .recommended,.table-form .recommended{border-color:#2b90d9;color:#2b90d9;background-color:rgba(43,144,217,.1)}.compose-form .compose-form__warning{border-color:#2b90d9;background-color:rgba(43,144,217,.1)}.compose-form .compose-form__warning,.compose-form .compose-form__warning a{color:#2b90d9}.status__content a,.reply-indicator__content a{color:#2b90d9}.button.logo-button{color:#fff}.button.logo-button svg{fill:#fff}.public-layout .account__section-headline{border:1px solid #c0cdd9}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-top:0}}.public-layout .header,.public-layout .public-account-header,.public-layout .public-account-bio{box-shadow:none}.public-layout .public-account-bio,.public-layout .hero-widget__text{background:#fff;border:1px solid #c0cdd9}.public-layout .header{background:#d9e1e8;border:1px solid #c0cdd9}@media screen and (max-width: 415px){.public-layout .header{border:0}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#ccd7e0}.public-layout .public-account-header__image{background:#b3c3d1}.public-layout .public-account-header__image::after{box-shadow:none}.public-layout .public-account-header__bar::before{background:#fff;border:1px solid #c0cdd9;border-top:0}.public-layout .public-account-header__bar .avatar img{border-color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{background:#fff;border:1px solid #c0cdd9;border-top:0}}.public-layout .public-account-header__tabs__name h1,.public-layout .public-account-header__tabs__name h1 small{color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__name h1,.public-layout .public-account-header__tabs__name h1 small{color:#000}}.public-layout .public-account-header__extra .public-account-bio{border:0}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-color:#c0cdd9}.notification__filter-bar button.active::after,.account__section-headline a.active::after{border-color:transparent transparent #fff}.hero-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.moved-account-widget,.memoriam-widget,.activity-stream,.nothing-here,.directory__tag>a,.directory__tag>div,.card>a,.page-header,.compose-form .compose-form__warning{box-shadow:none}.audio-player .video-player__controls button,.audio-player .video-player__time-sep,.audio-player .video-player__time-current,.audio-player .video-player__time-total{color:#000}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Dependent colors\n$black: #000000;\n$white: #ffffff;\n\n$classic-base-color: #282c37;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #2b90d9;\n\n// Differences\n$success-green: lighten(#3c754d, 8%);\n\n$base-overlay-background: $white !default;\n$valid-value-color: $success-green !default;\n\n$ui-base-color: $classic-secondary-color !default;\n$ui-base-lighter-color: #b0c0cf;\n$ui-primary-color: #9bcbed;\n$ui-secondary-color: $classic-base-color !default;\n$ui-highlight-color: #2b90d9;\n\n$primary-text-color: $black !default;\n$darker-text-color: $classic-base-color !default;\n$dark-text-color: #444b5d;\n$action-button-color: #606984;\n\n$inverted-text-color: $black !default;\n$lighter-text-color: $classic-base-color !default;\n$light-text-color: #444b5d;\n\n//Newly added colors\n$account-background-color: $white !default;\n\n//Invert darkened and lightened colors\n@function darken($color, $amount) {\n @return hsl(hue($color), saturation($color), lightness($color) + $amount);\n}\n\n@function lighten($color, $amount) {\n @return hsl(hue($color), saturation($color), lightness($color) - $amount);\n}\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n\n @return '%23' + unquote($color);\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.player {\n text-align: center;\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n &__illustration {\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div,\n & > noscript {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n\n & > noscript {\n height: 100vh;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n\n.error-boundary,\n.app-holder noscript {\n flex-direction: column;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.7;\n color: lighten($error-red, 4%);\n text-align: center;\n\n & > div {\n max-width: 500px;\n }\n\n p {\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &__footer {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n }\n }\n\n button {\n display: inline;\n border: 0;\n background: transparent;\n color: $dark-text-color;\n font: inherit;\n padding: 0;\n margin: 0;\n line-height: inherit;\n cursor: pointer;\n outline: 0;\n transition: color 300ms linear;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.copied {\n color: $valid-value-color;\n transition: none;\n }\n }\n}\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1 / 3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small,\n .trends__item__current {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n\n .trends__item__current {\n padding-right: 0;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a !default; // Padua\n$error-red: #df405a !default; // Cerise\n$warning-red: #ff5050 !default; // Sunset Orange\n$gold-star: #ca8f04 !default; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: 'mastodon-font-sans-serif' !default;\n$font-display: 'mastodon-font-display' !default;\n$font-monospace: 'mastodon-font-monospace' !default;\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n\n li {\n list-style: disc;\n margin-left: 18px;\n }\n }\n\n ul.hint {\n margin-bottom: 15px;\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .input.datetime .label_input select {\n display: inline-block;\n width: auto;\n flex: 0;\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\nbutton.icon-button.disabled i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.animated-number {\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n overflow: hidden;\n position: relative;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: $ui-highlight-color;\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 10%);\n transition: all 200ms ease-out;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled,\n &.disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n color: $darker-text-color;\n background: transparent;\n padding: 3px 15px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.compose-form {\n padding: 10px;\n\n &__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n }\n\n .compose-form__warning {\n color: $inverted-text-color;\n margin-bottom: 10px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n strong {\n color: $inverted-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 0;\n right: 0;\n }\n\n .compose-form__autosuggest-wrapper {\n position: relative;\n }\n\n .autosuggest-textarea,\n .autosuggest-input,\n .spoiler-input {\n position: relative;\n width: 100%;\n }\n\n .spoiler-input {\n height: 0;\n transform-origin: bottom;\n opacity: 0;\n\n &.spoiler-input--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1;\n }\n }\n\n .autosuggest-textarea__textarea,\n .spoiler-input__input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .spoiler-input__input {\n border-radius: 4px;\n }\n\n .autosuggest-textarea__textarea {\n min-height: 100px;\n border-radius: 4px 4px 0 0;\n padding-bottom: 0;\n padding-right: 10px + 22px;\n resize: none;\n scrollbar-color: initial;\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n @media screen and (max-width: 600px) {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n\n .autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n }\n\n .autosuggest-textarea__suggestions {\n box-sizing: border-box;\n display: none;\n position: absolute;\n top: 100%;\n width: 100%;\n z-index: 99;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n background: $ui-secondary-color;\n border-radius: 0 0 4px 4px;\n color: $inverted-text-color;\n font-size: 14px;\n padding: 6px;\n\n &.autosuggest-textarea__suggestions--visible {\n display: block;\n }\n }\n\n .autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n\n .autosuggest-account,\n .autosuggest-emoji,\n .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .autosuggest-account-icon,\n .autosuggest-emoji img {\n display: block;\n margin-right: 8px;\n width: 16px;\n height: 16px;\n }\n\n .autosuggest-account .display-name__account {\n color: $lighter-text-color;\n }\n\n .compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n\n .compose-form__upload-wrapper {\n overflow: hidden;\n }\n\n .compose-form__uploads-wrapper {\n display: flex;\n flex-direction: row;\n padding: 5px;\n flex-wrap: wrap;\n }\n\n .compose-form__upload {\n flex: 1 1 0;\n min-width: 40%;\n margin: 5px;\n\n &__actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $secondary-text-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($secondary-text-color, 7%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n\n &-description {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n padding: 10px;\n opacity: 0;\n transition: opacity .1s ease;\n\n textarea {\n background: transparent;\n color: $secondary-text-color;\n border: 0;\n padding: 0;\n margin: 0;\n width: 100%;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n\n &:focus {\n color: $white;\n }\n\n &::placeholder {\n opacity: 0.75;\n color: $secondary-text-color;\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n }\n\n .compose-form__upload-thumbnail {\n border-radius: 4px;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 140px;\n width: 100%;\n overflow: hidden;\n }\n }\n\n .compose-form__buttons-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n\n .compose-form__buttons {\n display: flex;\n\n .compose-form__upload-button-icon {\n line-height: 27px;\n }\n\n .compose-form__sensitive-button {\n display: none;\n\n &.compose-form__sensitive-button--visible {\n display: block;\n }\n\n .compose-form__sensitive-button__icon {\n line-height: 27px;\n }\n }\n }\n\n .icon-button,\n .text-icon-button {\n box-sizing: content-box;\n padding: 0 3px;\n }\n\n .character-counter__wrapper {\n align-self: center;\n margin-right: 4px;\n }\n }\n\n .compose-form__publish {\n display: flex;\n justify-content: flex-end;\n min-width: 0;\n flex: 0 0 auto;\n\n .compose-form__publish-button-wrapper {\n overflow: hidden;\n padding-top: 10px;\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .spoiler-input {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.reply-indicator {\n border-radius: 4px;\n margin-bottom: 10px;\n background: $ui-primary-color;\n padding: 10px;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n}\n\n.reply-indicator__header {\n margin-bottom: 5px;\n overflow: hidden;\n}\n\n.reply-indicator__cancel {\n float: right;\n line-height: 24px;\n}\n\n.reply-indicator__display-name {\n color: $inverted-text-color;\n display: block;\n max-width: 100%;\n line-height: 24px;\n overflow: hidden;\n padding-right: 25px;\n text-decoration: none;\n}\n\n.reply-indicator__display-avatar {\n float: left;\n margin-right: 5px;\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content,\n.reply-indicator__content {\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n color: $primary-text-color;\n\n &:focus {\n outline: 0;\n }\n\n &.status__content--with-spoiler {\n white-space: normal;\n\n .status__content__text {\n white-space: pre-wrap;\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n\n .status__content__spoiler-link {\n background: $action-button-color;\n\n &:hover {\n background: lighten($action-button-color, 7%);\n text-decoration: none;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n .status__content__text {\n display: none;\n\n &.status__content__text--visible {\n display: block;\n }\n }\n}\n\n.announcements__item__content {\n word-wrap: break-word;\n overflow-y: auto;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 10px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n &.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n.status__content.status__content--collapsed {\n max-height: 20px * 15; // 15 lines is roughly above 500 characters\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n text-decoration: none;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: transparent;\n border: 0;\n color: $inverted-text-color;\n font-weight: 700;\n font-size: 11px;\n padding: 0 6px;\n text-transform: uppercase;\n line-height: 20px;\n cursor: pointer;\n vertical-align: middle;\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n .status.status-direct {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 8px 10px;\n padding-left: 68px;\n position: relative;\n min-height: 54px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 26px; // 10px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $light-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n color: $light-text-color;\n\n strong {\n color: $inverted-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time,\n.notification__relative_time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n}\n\n.status__display-name {\n color: $dark-text-color;\n}\n\n.status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n}\n\n.status__info {\n font-size: 15px;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n overflow: hidden;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-left: 68px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.reply-indicator__content {\n color: $inverted-text-color;\n font-size: 14px;\n\n a {\n color: $lighter-text-color;\n }\n}\n\n.domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &.compact {\n padding: 0;\n border-bottom: 0;\n\n .account__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius;\n position: relative;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n border-radius: 50%;\n overflow: hidden;\n position: relative;\n\n & > div {\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\na .account__avatar {\n cursor: pointer;\n}\n\n.account__avatar-overlay {\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius;\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius;\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__disclaimer {\n padding: 10px;\n border-top: 1px solid lighten($ui-base-color, 8%);\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-dropdown {\n padding: 10px;\n\n .icon-button {\n vertical-align: middle;\n }\n\n .dropdown--active {\n .dropdown__content.dropdown__right {\n left: 6px;\n right: initial;\n }\n\n &::after {\n bottom: initial;\n margin-left: 11px;\n margin-top: -7px;\n right: initial;\n }\n }\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-right: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\n.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\na.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n height: 48px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n}\n\n.status__expand {\n width: 68px;\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n cursor: pointer;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-lighter-color, 7%);\n text-decoration: none;\n }\n }\n}\n\n.notification__message {\n margin: 0 10px 0 68px;\n padding: 8px 0 0;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n line-height: 22px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: inline;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: -26px;\n position: absolute;\n\n .star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.notification__relative_time {\n float: right;\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.navigation-bar {\n padding: 10px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n cursor: default;\n color: $darker-text-color;\n\n strong {\n color: $secondary-text-color;\n }\n\n a {\n color: inherit;\n }\n\n .permalink {\n text-decoration: none;\n }\n\n .navigation-bar__actions {\n position: relative;\n\n .icon-button.close {\n position: absolute;\n pointer-events: none;\n transform: scale(0, 1) translate(-100%, 0);\n opacity: 0;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: auto;\n transform: scale(1, 1) translate(0, 0);\n opacity: 1;\n }\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n line-height: 20px;\n margin-top: -1px;\n overflow: hidden;\n}\n\n.navigation-bar__profile-account {\n display: block;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.navigation-bar__profile-edit {\n color: inherit;\n text-decoration: none;\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n z-index: 9999;\n\n ul {\n list-style: none;\n }\n\n &.left {\n transform-origin: 100% 50%;\n }\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n\n &.right {\n transform-origin: 0 50%;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &.unscrollable {\n overflow-x: hidden;\n }\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .drawer,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 350px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.drawer {\n width: 330px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n}\n\n.drawer__tab {\n display: block;\n flex: 1 1 auto;\n padding: 15px 5px 13px;\n color: $darker-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 16px;\n border-bottom: 2px solid transparent;\n}\n\n.column,\n.drawer {\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @media screen and (min-width: 631px) {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $highlight-text-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__favourite-icon-wrapper {\n left: -32px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n\n .account__avatar-wrapper {\n margin-left: 17px;\n margin-right: 15px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .getting-started__trends,\n .search {\n margin-bottom: 10px;\n }\n\n .getting-started__panel {\n margin: 10px 0;\n }\n\n .column,\n .drawer {\n min-width: 330px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .navigation-bar {\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 0 1 48px;\n min-height: 20px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .compose-form {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n padding-bottom: 71px;\n margin-bottom: -71px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n border-radius: 2px;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 85%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__header {\n flex: 0 0 auto;\n font-size: 16px;\n background: lighten($ui-base-color, 8%);\n margin-bottom: 10px;\n display: flex;\n flex-direction: row;\n border-radius: 2px;\n\n a {\n transition: background 100ms ease-in;\n\n &:hover {\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n line-height: inherit;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n outline: 0;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n white-space: nowrap;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.getting-started__wrapper,\n.getting-started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n color: $dark-text-color;\n overflow: auto;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n\n &__wrapper,\n &__panel,\n &__footer {\n height: min-content;\n }\n\n &__panel,\n &__footer\n {\n padding: 10px;\n padding-top: 20px;\n flex-grow: 0;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__wrapper,\n &__footer\n {\n color: $dark-text-color;\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n border-radius: 4px;\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n z-index: 1;\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n bottom: -13px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n\n .announcements {\n z-index: 1;\n position: relative;\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n\n & > button {\n margin: 0;\n border: 0;\n padding: 15px 0 15px 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($highlight-text-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n z-index: 1;\n position: relative;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n border-radius: 4px;\n appearance: none;\n\n &:hover,\n &:active,\n &:focus {\n padding: 0;\n color: lighten($darker-text-color, 8%);\n }\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 700;\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: block;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout;\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.empty-column-indicator,\n.error-column,\n.follow_requests-unlocked_explanation {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.follow_requests-unlocked_explanation {\n background: darken($ui-base-color, 4%);\n contain: initial;\n}\n\n.error-column {\n flex-direction: column;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.no-reduce-motion .pulse-loading {\n transform-origin: center center;\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n@keyframes shake-bottom {\n 0%,\n 100% {\n transform: rotate(0deg);\n transform-origin: 50% 100%;\n }\n\n 10% {\n transform: rotate(2deg);\n }\n\n 20%,\n 40%,\n 60% {\n transform: rotate(-4deg);\n }\n\n 30%,\n 50%,\n 70% {\n transform: rotate(4deg);\n }\n\n 80% {\n transform: rotate(-2deg);\n }\n\n 90% {\n transform: rotate(2deg);\n }\n}\n\n.no-reduce-motion .shake-bottom {\n transform-origin: 50% 100%;\n animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.upload-progress {\n padding: 10px;\n color: $lighter-text-color;\n overflow: hidden;\n display: flex;\n\n .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n span {\n font-size: 12px;\n text-transform: uppercase;\n font-weight: 500;\n display: block;\n }\n}\n\n.upload-progess__message {\n flex: 1 1 auto;\n}\n\n.upload-progress__backdrop {\n width: 100%;\n height: 6px;\n border-radius: 6px;\n background: $ui-base-lighter-color;\n position: relative;\n margin-top: 5px;\n}\n\n.upload-progress__tracker {\n position: absolute;\n left: 0;\n top: 0;\n height: 6px;\n background: $ui-highlight-color;\n border-radius: 6px;\n}\n\n.emoji-button {\n display: block;\n padding: 5px 5px 2px 2px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.privacy-dropdown__dropdown {\n position: absolute;\n background: $simple-background-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-left: 40px;\n overflow: hidden;\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n}\n\n.privacy-dropdown__option {\n color: $inverted-text-color;\n padding: 10px;\n cursor: pointer;\n display: flex;\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n outline: 0;\n\n .privacy-dropdown__option__content {\n color: $primary-text-color;\n\n strong {\n color: $primary-text-color;\n }\n }\n }\n\n &.active:hover {\n background: lighten($ui-highlight-color, 4%);\n }\n}\n\n.privacy-dropdown__option__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 10px;\n}\n\n.privacy-dropdown__option__content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n strong {\n font-weight: 500;\n display: block;\n color: $inverted-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.privacy-dropdown.active {\n .privacy-dropdown__value {\n background: $simple-background-color;\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n\n .icon-button {\n transition: none;\n }\n\n &.active {\n background: $ui-highlight-color;\n\n .icon-button {\n color: $primary-text-color;\n }\n }\n }\n\n &.top .privacy-dropdown__value {\n border-radius: 0 0 4px 4px;\n }\n\n .privacy-dropdown__dropdown {\n display: block;\n box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);\n }\n}\n\n.search {\n position: relative;\n}\n\n.search__input {\n @include search-input;\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(90deg);\n\n &.active {\n pointer-events: none;\n transform: rotate(0deg);\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n}\n\n.search-results__section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n}\n\n.search-results__hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $primary-text-color;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $highlight-text-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n }\n\n .status__avatar {\n height: 28px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n .status__content,\n .status__content p {\n color: $inverted-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n max-height: 80vh;\n max-width: 80vw;\n\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.loading-bar {\n background-color: $highlight-text-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n margin-top: 32px;\n\n audio {\n width: 100%;\n }\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n/* Media Gallery */\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n }\n\n img {\n object-fit: cover;\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n object-fit: cover;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n z-index: 1;\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n/* End Media Gallery */\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-overlay-background;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n\n.directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n width: 100%;\n white-space: nowrap;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\n.search-popout {\n @include search-popout;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@media screen and (max-width: 630px) and (max-height: 400px) {\n $duration: 400ms;\n $delay: 100ms;\n\n .tabs-bar,\n .search {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar {\n will-change: padding-bottom;\n transition: padding-bottom $duration $delay;\n }\n\n .navigation-bar {\n & > a:first-child {\n will-change: margin-top, margin-left, margin-right, width;\n transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay);\n }\n\n & > .navigation-bar__profile-edit {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar__actions {\n & > .icon-button.close {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay,\n transform $duration $delay;\n }\n\n & > .compose__action-bar .icon-button {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay + $duration * 0.5,\n transform $duration $delay;\n }\n }\n }\n\n .is-composing {\n .tabs-bar,\n .search {\n margin-top: -50px;\n }\n\n .navigation-bar {\n padding-bottom: 0;\n\n & > a:first-child {\n margin: -100px 10px 0 -50px;\n }\n\n .navigation-bar__profile {\n padding-top: 2px;\n }\n\n .navigation-bar__profile-edit {\n position: absolute;\n margin-top: -60px;\n }\n\n .navigation-bar__actions {\n .icon-button.close {\n pointer-events: auto;\n opacity: 1;\n transform: scale(1, 1) translate(0, 0);\n bottom: 5px;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: none;\n opacity: 0;\n transform: scale(0, 1) translate(100%, 0);\n }\n }\n }\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.column-inline-form {\n padding: 15px;\n padding-right: 0;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 10px;\n }\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n\n.list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n cursor: pointer;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.announcements {\n background: lighten($ui-base-color, 8%);\n font-size: 13px;\n display: flex;\n align-items: flex-end;\n\n &__mastodon {\n width: 124px;\n flex: 0 0 auto;\n\n @media screen and (max-width: 124px + 300px) {\n display: none;\n }\n }\n\n &__container {\n width: calc(100% - 124px);\n flex: 0 0 auto;\n position: relative;\n\n @media screen and (max-width: 124px + 300px) {\n width: 100%;\n }\n }\n\n &__item {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n max-height: 50vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &__range {\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n padding-right: 18px;\n }\n\n &__unread {\n position: absolute;\n top: 19px;\n right: 19px;\n display: block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n }\n }\n\n &__pagination {\n padding: 15px;\n color: $darker-text-color;\n position: absolute;\n bottom: 3px;\n right: 0;\n }\n}\n\n.layout-multiple-columns .announcements__mastodon {\n display: none;\n}\n\n.layout-multiple-columns .announcements__container {\n width: 100%;\n}\n\n.reactions-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-top: 15px;\n margin-left: -2px;\n width: calc(100% - (90px - 33px));\n\n &__item {\n flex-shrink: 0;\n background: lighten($ui-base-color, 12%);\n border: 0;\n border-radius: 3px;\n margin: 2px;\n cursor: pointer;\n user-select: none;\n padding: 0 6px;\n display: flex;\n align-items: center;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &__emoji {\n display: block;\n margin: 3px 0;\n width: 16px;\n height: 16px;\n\n img {\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n min-width: auto;\n min-height: auto;\n vertical-align: bottom;\n object-fit: contain;\n }\n }\n\n &__count {\n display: block;\n min-width: 9px;\n font-size: 13px;\n font-weight: 500;\n text-align: center;\n margin-left: 6px;\n color: $darker-text-color;\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 16%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n\n &__count {\n color: lighten($darker-text-color, 4%);\n }\n }\n\n &.active {\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%);\n\n .reactions-bar__item__count {\n color: lighten($highlight-text-color, 8%);\n }\n }\n }\n\n .emoji-picker-dropdown {\n margin: 2px;\n }\n\n &:hover .emoji-button {\n opacity: 0.85;\n }\n\n .emoji-button {\n color: $darker-text-color;\n margin: 0;\n font-size: 16px;\n width: auto;\n flex-shrink: 0;\n padding: 0 6px;\n height: 22px;\n display: flex;\n align-items: center;\n opacity: 0.5;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n opacity: 1;\n color: lighten($darker-text-color, 4%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n }\n\n &--empty {\n .emoji-button {\n padding: 0;\n }\n }\n}\n",null,"@mixin avatar-radius {\n border-radius: 4px;\n background: transparent no-repeat;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size: 48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin search-input {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: 0;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n border-radius: 4px;\n display: block;\n background: darken($ui-primary-color, 5%);\n height: 5px;\n min-width: 1%;\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__option {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n &__text {\n display: inline-block;\n word-wrap: break-word;\n overflow-wrap: break-word;\n max-width: calc(100% - 45px - 25px);\n }\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($valid-value-color, 15%);\n border-width: 4px;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 45px;\n font-weight: 700;\n flex: 0 0 45px;\n }\n\n &__voted {\n padding: 0 5px;\n display: inline-block;\n\n &__mark {\n font-size: 18px;\n }\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__option {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".emoji-mart {\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: -1px;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -5px;\n left: 0;\n width: 100%;\n height: 4px;\n background-color: $highlight-text-color;\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n summary {\n display: list-item;\n }\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: 0;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &--with-select strong {\n display: block;\n margin-bottom: 10px;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n line-height: 20px;\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: $darker-text-color;\n font-size: 14px;\n padding: 0 10px;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n\n.announcements-list {\n border: 1px solid lighten($ui-base-color, 4%);\n border-radius: 4px;\n\n &__item {\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &__title {\n padding: 0 15px;\n display: block;\n font-weight: 500;\n font-size: 18px;\n line-height: 1.5;\n color: $secondary-text-color;\n text-decoration: none;\n margin-bottom: 10px;\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n }\n\n &__meta {\n padding: 0 15px;\n color: $dark-text-color;\n }\n\n &__action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .status__avatar {\n left: auto;\n right: 10px;\n }\n\n .status,\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n","$black-emojis: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash';\n\n%white-emoji-outline {\n filter: drop-shadow(1px 1px 0 $white) drop-shadow(-1px 1px 0 $white) drop-shadow(1px -1px 0 $white) drop-shadow(-1px -1px 0 $white);\n transform: scale(.71);\n}\n\n.emojione {\n @each $emoji in $black-emojis {\n &[title=':#{$emoji}:'] {\n @extend %white-emoji-outline;\n }\n }\n}\n","// Notes!\n// Sass color functions, \"darken\" and \"lighten\" are automatically replaced.\n\nhtml {\n scrollbar-color: $ui-base-color rgba($ui-base-color, 0.25);\n}\n\n// Change the colors of button texts\n.button {\n color: $white;\n\n &.button-alternative-2 {\n color: $white;\n }\n}\n\n.status-card__actions button,\n.status-card__actions a {\n color: rgba($white, 0.8);\n\n &:hover,\n &:active,\n &:focus {\n color: $white;\n }\n}\n\n// Change default background colors of columns\n.column > .scrollable,\n.getting-started,\n.column-inline-form,\n.error-column,\n.regeneration-indicator {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n}\n\n.directory__card__img {\n background: lighten($ui-base-color, 12%);\n}\n\n.filter-form,\n.directory__card__bar {\n background: $white;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.scrollable .directory__list {\n width: calc(100% + 2px);\n margin-left: -1px;\n margin-right: -1px;\n}\n\n.directory__card,\n.table-of-contents {\n border: 1px solid lighten($ui-base-color, 8%);\n}\n\n.column-back-button,\n.column-header {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 0;\n }\n\n &--slim-button {\n top: -50px;\n right: 0;\n }\n}\n\n.column-header__back-button,\n.column-header__button,\n.column-header__button.active,\n.account__header__bar,\n.directory__card__extra {\n background: $white;\n}\n\n.column-header__button.active {\n color: $ui-highlight-color;\n\n &:hover,\n &:active,\n &:focus {\n color: $ui-highlight-color;\n background: $white;\n }\n}\n\n.account__header__bar .avatar .account__avatar {\n border-color: $white;\n}\n\n.getting-started__footer a {\n color: $ui-secondary-color;\n text-decoration: underline;\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n color: lighten($ui-base-color, 26%);\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n}\n\n.column-subheading {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.getting-started,\n.scrollable {\n .column-link {\n background: $white;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:hover,\n &:active,\n &:focus {\n background: $ui-base-color;\n }\n }\n}\n\n.getting-started .navigation-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 0;\n }\n}\n\n.compose-form__autosuggest-wrapper,\n.poll__option input[type=\"text\"],\n.compose-form .spoiler-input__input,\n.compose-form__poll-wrapper select,\n.search__input,\n.setting-text,\n.box-widget input[type=\"text\"],\n.box-widget input[type=\"email\"],\n.box-widget input[type=\"password\"],\n.box-widget textarea,\n.statuses-grid .detailed-status,\n.audio-player {\n border: 1px solid lighten($ui-base-color, 8%);\n}\n\n.search__input {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 0;\n border-bottom: 0;\n }\n}\n\n.list-editor .search .search__input {\n border-top: 0;\n border-bottom: 0;\n}\n\n.compose-form__poll-wrapper select {\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n}\n\n.compose-form__poll-wrapper,\n.compose-form__poll-wrapper .poll__footer {\n border-top-color: lighten($ui-base-color, 8%);\n}\n\n.notification__filter-bar {\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n}\n\n.compose-form .compose-form__buttons-wrapper {\n background: $ui-base-color;\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n}\n\n.drawer__header,\n.drawer__inner {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n}\n\n.drawer__inner__mastodon {\n background: $white url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n}\n\n// Change the colors used in compose-form\n.compose-form {\n .compose-form__modifiers {\n .compose-form__upload__actions .icon-button {\n color: lighten($white, 7%);\n\n &:active,\n &:focus,\n &:hover {\n color: $white;\n }\n }\n\n .compose-form__upload-description input {\n color: lighten($white, 7%);\n\n &::placeholder {\n color: lighten($white, 7%);\n }\n }\n }\n\n .compose-form__buttons-wrapper {\n background: darken($ui-base-color, 6%);\n }\n\n .autosuggest-textarea__suggestions {\n background: darken($ui-base-color, 6%);\n }\n\n .autosuggest-textarea__suggestions__item {\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: lighten($ui-base-color, 4%);\n }\n }\n}\n\n.emoji-mart-bar {\n border-color: lighten($ui-base-color, 4%);\n\n &:first-child {\n background: darken($ui-base-color, 6%);\n }\n}\n\n.emoji-mart-search input {\n background: rgba($ui-base-color, 0.3);\n border-color: $ui-base-color;\n}\n\n// Change the background colors of statuses\n.focusable:focus {\n background: $ui-base-color;\n}\n\n.status.status-direct {\n background: lighten($ui-base-color, 4%);\n}\n\n.focusable:focus .status.status-direct {\n background: lighten($ui-base-color, 8%);\n}\n\n.detailed-status,\n.detailed-status__action-bar {\n background: $white;\n}\n\n// Change the background colors of status__content__spoiler-link\n.reply-indicator__content .status__content__spoiler-link,\n.status__content .status__content__spoiler-link {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 4%);\n }\n}\n\n// Change the background colors of media and video spoilers\n.media-spoiler,\n.video-player__spoiler {\n background: $ui-base-color;\n}\n\n.privacy-dropdown.active .privacy-dropdown__value.active .icon-button {\n color: $white;\n}\n\n.account-gallery__item a {\n background-color: $ui-base-color;\n}\n\n// Change the colors used in the dropdown menu\n.dropdown-menu {\n background: $white;\n\n &__arrow {\n &.left {\n border-left-color: $white;\n }\n\n &.top {\n border-top-color: $white;\n }\n\n &.bottom {\n border-bottom-color: $white;\n }\n\n &.right {\n border-right-color: $white;\n }\n }\n\n &__item {\n a {\n background: $white;\n color: $darker-text-color;\n }\n }\n}\n\n// Change the text colors on inverted background\n.privacy-dropdown__option.active,\n.privacy-dropdown__option:hover,\n.privacy-dropdown__option.active .privacy-dropdown__option__content,\n.privacy-dropdown__option.active .privacy-dropdown__option__content strong,\n.privacy-dropdown__option:hover .privacy-dropdown__option__content,\n.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,\n.dropdown-menu__item a:active,\n.dropdown-menu__item a:focus,\n.dropdown-menu__item a:hover,\n.actions-modal ul li:not(:empty) a.active,\n.actions-modal ul li:not(:empty) a.active button,\n.actions-modal ul li:not(:empty) a:active,\n.actions-modal ul li:not(:empty) a:active button,\n.actions-modal ul li:not(:empty) a:focus,\n.actions-modal ul li:not(:empty) a:focus button,\n.actions-modal ul li:not(:empty) a:hover,\n.actions-modal ul li:not(:empty) a:hover button,\n.admin-wrapper .sidebar ul .simple-navigation-active-leaf a,\n.simple_form .block-button,\n.simple_form .button,\n.simple_form button {\n color: $white;\n}\n\n.dropdown-menu__separator {\n border-bottom-color: lighten($ui-base-color, 4%);\n}\n\n// Change the background colors of modals\n.actions-modal,\n.boost-modal,\n.confirmation-modal,\n.mute-modal,\n.block-modal,\n.report-modal,\n.embed-modal,\n.error-modal,\n.onboarding-modal,\n.report-modal__comment .setting-text__wrapper,\n.report-modal__comment .setting-text {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n}\n\n.report-modal__comment {\n border-right-color: lighten($ui-base-color, 8%);\n}\n\n.report-modal__container {\n border-top-color: lighten($ui-base-color, 8%);\n}\n\n.column-header__collapsible-inner {\n background: darken($ui-base-color, 4%);\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n}\n\n.focal-point__preview strong {\n color: $white;\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar,\n.onboarding-modal__paginator,\n.error-modal__footer {\n background: darken($ui-base-color, 6%);\n\n .onboarding-modal__nav,\n .error-modal__nav {\n &:hover,\n &:focus,\n &:active {\n background-color: darken($ui-base-color, 12%);\n }\n }\n}\n\n.display-case__case {\n background: $white;\n}\n\n.embed-modal .embed-modal__container .embed-modal__html {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n\n &:focus {\n border-color: lighten($ui-base-color, 12%);\n background: $white;\n }\n}\n\n.react-toggle-track {\n background: $ui-secondary-color;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background: darken($ui-secondary-color, 10%);\n}\n\n.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background: lighten($ui-highlight-color, 10%);\n}\n\n// Change the default color used for the text in an empty column or on the error column\n.empty-column-indicator,\n.error-column {\n color: $primary-text-color;\n background: $white;\n}\n\n.tabs-bar {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 0;\n }\n\n &__link {\n padding-bottom: 14px;\n border-bottom-width: 1px;\n border-bottom-color: lighten($ui-base-color, 8%);\n\n &:hover,\n &:active,\n &:focus {\n background: $ui-base-color;\n }\n\n &.active {\n &:hover,\n &:active,\n &:focus {\n background: transparent;\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\n// Change the default colors used on some parts of the profile pages\n.activity-stream-tabs {\n background: $account-background-color;\n border-bottom-color: lighten($ui-base-color, 8%);\n}\n\n.box-widget,\n.nothing-here,\n.page-header,\n.directory__tag > a,\n.directory__tag > div,\n.landing-page__call-to-action,\n.contact-widget,\n.landing .hero-widget__text,\n.landing-page__information.contact-widget {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-left: 0;\n border-right: 0;\n border-top: 0;\n }\n}\n\n.landing .hero-widget__text {\n border-top: 0;\n border-bottom: 0;\n}\n\n.simple_form {\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n &:hover {\n border-color: lighten($ui-base-color, 12%);\n }\n }\n}\n\n.landing .hero-widget__footer {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border: 0;\n }\n}\n\n.brand__tagline {\n color: $ui-secondary-color;\n}\n\n.directory__tag > a {\n &:hover,\n &:active,\n &:focus {\n background: $ui-base-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border: 0;\n }\n}\n\n.directory__tag.active > a,\n.directory__tag.active > div {\n border-color: $ui-highlight-color;\n\n &,\n h4,\n h4 small,\n .fa,\n .trends__item__current {\n color: $white;\n }\n\n &:hover,\n &:active,\n &:focus {\n background: $ui-highlight-color;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row,\n .nothing-here {\n border-color: lighten($ui-base-color, 8%);\n }\n}\n\n.activity-stream {\n border: 1px solid lighten($ui-base-color, 8%);\n\n &--under-tabs {\n border-top: 0;\n }\n\n .entry {\n background: $account-background-color;\n\n .detailed-status.light,\n .more.light,\n .status.light {\n border-bottom-color: lighten($ui-base-color, 8%);\n }\n }\n\n .status.light {\n .status__content {\n color: $primary-text-color;\n }\n\n .display-name {\n strong {\n color: $primary-text-color;\n }\n }\n }\n}\n\n.accounts-grid {\n .account-grid-card {\n .controls {\n .icon-button {\n color: $darker-text-color;\n }\n }\n\n .name {\n a {\n color: $primary-text-color;\n }\n }\n\n .username {\n color: $darker-text-color;\n }\n\n .account__header__content {\n color: $primary-text-color;\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-shadow: none;\n background: rgba($error-red, 0.5);\n text-shadow: none;\n }\n\n .recommended {\n border-color: $ui-highlight-color;\n color: $ui-highlight-color;\n background-color: rgba($ui-highlight-color, 0.1);\n }\n}\n\n.compose-form .compose-form__warning {\n border-color: $ui-highlight-color;\n background-color: rgba($ui-highlight-color, 0.1);\n\n &,\n a {\n color: $ui-highlight-color;\n }\n}\n\n.status__content,\n.reply-indicator__content {\n a {\n color: $highlight-text-color;\n }\n}\n\n.button.logo-button {\n color: $white;\n\n svg {\n fill: $white;\n }\n}\n\n.public-layout {\n .account__section-headline {\n border: 1px solid lighten($ui-base-color, 8%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 0;\n }\n }\n\n .header,\n .public-account-header,\n .public-account-bio {\n box-shadow: none;\n }\n\n .public-account-bio,\n .hero-widget__text {\n background: $account-background-color;\n border: 1px solid lighten($ui-base-color, 8%);\n }\n\n .header {\n background: $ui-base-color;\n border: 1px solid lighten($ui-base-color, 8%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border: 0;\n }\n\n .brand {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n\n .public-account-header {\n &__image {\n background: lighten($ui-base-color, 12%);\n\n &::after {\n box-shadow: none;\n }\n }\n\n &__bar {\n &::before {\n background: $account-background-color;\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n }\n\n .avatar img {\n border-color: $account-background-color;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n background: $account-background-color;\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n }\n }\n\n &__tabs {\n &__name {\n h1,\n h1 small {\n color: $white;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n color: $primary-text-color;\n }\n }\n }\n }\n\n &__extra {\n .public-account-bio {\n border: 0;\n }\n\n .public-account-bio .account__header__fields {\n border-color: lighten($ui-base-color, 8%);\n }\n }\n }\n}\n\n.notification__filter-bar button.active::after,\n.account__section-headline a.active::after {\n border-color: transparent transparent $white;\n}\n\n.hero-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.moved-account-widget,\n.memoriam-widget,\n.activity-stream,\n.nothing-here,\n.directory__tag > a,\n.directory__tag > div,\n.card > a,\n.page-header,\n.compose-form .compose-form__warning {\n box-shadow: none;\n}\n\n.audio-player .video-player__controls button,\n.audio-player .video-player__time-sep,\n.audio-player .video-player__time-current,\n.audio-player .video-player__time-total {\n color: $primary-text-color;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/skins/vanilla/mastodon-light/common.js b/priv/static/packs/skins/vanilla/mastodon-light/common.js index 6acf14a24..18bbb7f3b 100644 Binary files a/priv/static/packs/skins/vanilla/mastodon-light/common.js and b/priv/static/packs/skins/vanilla/mastodon-light/common.js differ diff --git a/priv/static/packs/skins/vanilla/win95/common.css b/priv/static/packs/skins/vanilla/win95/common.css index 061d665f0..9e1c6e9e0 100644 Binary files a/priv/static/packs/skins/vanilla/win95/common.css and b/priv/static/packs/skins/vanilla/win95/common.css differ diff --git a/priv/static/packs/skins/vanilla/win95/common.css.map b/priv/static/packs/skins/vanilla/win95/common.css.map index 7edf53558..74f240491 100644 --- a/priv/static/packs/skins/vanilla/win95/common.css.map +++ b/priv/static/packs/skins/vanilla/win95/common.css.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///common.scss","webpack:///./app/javascript/styles/win95.scss","webpack:///./app/javascript/styles/mastodon/reset.scss","webpack:///./app/javascript/styles/mastodon/variables.scss","webpack:///./app/javascript/styles/mastodon/basics.scss","webpack:///./app/javascript/styles/mastodon/containers.scss","webpack:///./app/javascript/styles/mastodon/lists.scss","webpack:///./app/javascript/styles/mastodon/footer.scss","webpack:///./app/javascript/styles/mastodon/compact_header.scss","webpack:///./app/javascript/styles/mastodon/widgets.scss","webpack:///./app/javascript/styles/mastodon/forms.scss","webpack:///./app/javascript/styles/mastodon/accounts.scss","webpack:///./app/javascript/styles/mastodon/statuses.scss","webpack:///./app/javascript/styles/mastodon/boost.scss","webpack:///./app/javascript/styles/mastodon/components.scss","webpack:///","webpack:///./app/javascript/styles/mastodon/_mixins.scss","webpack:///./app/javascript/styles/mastodon/polls.scss","webpack:///./app/javascript/styles/mastodon/modal.scss","webpack:///./app/javascript/styles/mastodon/emoji_picker.scss","webpack:///./app/javascript/styles/mastodon/about.scss","webpack:///./app/javascript/styles/mastodon/tables.scss","webpack:///./app/javascript/styles/mastodon/admin.scss","webpack:///./app/javascript/styles/mastodon/dashboard.scss","webpack:///./app/javascript/styles/mastodon/rtl.scss","webpack:///./app/javascript/styles/mastodon/accessibility.scss"],"names":[],"mappings":"AAAA,WCwEA,wBACE,+DACA,4ZCrEF,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,sCACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,0BACA,CCtEW,iED6Eb,kBC7Ea,4BDiFb,sBACE,MErFF,iDACE,mBACA,CACA,gBACA,gBACA,WDXM,kCCaN,6BACA,8BACA,CADA,0BACA,CADA,yBACA,CADA,qBACA,0CACA,wCACA,kBAEA,iKAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBD7CW,kBCiDX,iBACE,kBACA,0BAEA,iBACE,aAIJ,iBACE,YAGF,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cD3EoB,mBAPX,WCqFT,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,sCAGE,aACE,gBACA,WACA,YACA,kBACA,uBAIJ,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,kDAKF,YAGE,WACA,mBACA,uBACA,oBACA,sBAGF,YACE,yEAKF,gBAEE,+EAKF,WAEE,sCAIJ,qBAEE,eACA,gBACA,gBACA,cACA,kBACA,8CAEA,eACE,0CAGF,mBACE,gEAEA,eACE,0CAIJ,aHlLoB,kKGqLlB,oBAGE,sDAIJ,aH9LgB,eGgMd,0DAEA,aHlMc,oDGuMhB,cACE,SACA,uBACA,cH1Mc,aG4Md,UACA,SACA,oBACA,eACA,UACA,4BACA,0BACA,gMAEA,oBAGE,kEAGF,aD9NY,gBCgOV,gBCnON,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SFrBI,YEuBF,kBACA,sBAGF,YACE,uBACA,mBACA,WF9BE,qBEgCF,UACA,kBACA,iBACA,6CACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAGF,UACE,YACA,iBACA,6BAEA,UACE,YACA,cACA,SACA,kBACA,uBAIJ,aACE,cF7EsB,wBE+EtB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UFxUA,qCE2UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cF7UkB,mBE+UlB,kBACA,uHAEA,yBAGE,WFrWA,qCEyWF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBFtaoB,8CE2atB,yBACE,gBACA,aACA,kBACA,gBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,YACA,aACA,kBACA,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,qCAIJ,2CArCF,YAsCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAGF,UACE,YACA,CACA,sBACA,wDAEA,QACE,kBACA,2DAGF,mDAXF,YAYI,sCAKN,2CAhEF,eAiEI,sCAGF,2CApEF,cAqEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WF1kBF,gBE4kBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WFplBJ,gBEslBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aF5lBY,oDEmmBlB,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cFxnBc,aE0nBd,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BFzpBc,wEE+pBd,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WFnsBJ,6CEqsBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cFztBgB,uDE4tBhB,oBACE,cF7tBc,qBE+tBd,aACA,gBACA,8DAEA,eACE,WFpvBJ,qCE0vBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aFryBU,8DE2yBV,mBACA,WF7yBE,qFEizBJ,YAEE,eACA,cFpyBkB,2CEwyBpB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBF32BK,+IE82BH,kBAGE,WC53BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,wBCfF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,eACE,kBACA,cJ/EkB,6BIkFlB,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBCjIR,cACE,iBACA,cLeoB,gBKbpB,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cLFoB,wBKMtB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBNPI,uBMUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBNVW,aMYT,0BACA,eACA,cNPoB,iBMSpB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aNtCsB,qBMwCpB,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,gBACA,eACA,cN7DoB,+BMiEtB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aN1FsB,aM+FxB,YACE,kBACA,mBNxGW,mCM0GX,qBAGF,YACE,kBACA,0BACA,kBACA,cN1GsB,mBM4GtB,iBAGF,eACE,eACA,cNjHsB,iBMmHtB,qBACA,gBACA,UACA,oBAEA,YACE,gBACA,eACA,cN3HoB,0BM+HtB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cNxIoB,qBM0IpB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBNjKW,mCMmKX,cN3JwB,gBM6JxB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cNvMkB,8DM6MpB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eNhPM,CMkPN,cACA,cNlOsB,mBMoOtB,+BANA,iBACA,CNhPM,kCM8PN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,UN/PM,eMiQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cNxPoB,qCM4PtB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBN7Qa,kBM+QX,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBN1RO,kBM4RP,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBR9SkB,eQgThB,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WNjUE,mBMmUF,gBACA,uBACA,wBAEA,aNvTkB,0BM2TlB,aACE,gBACA,eACA,eACA,cN/TgB,0IMqUlB,UNrVE,+BM6VJ,aACE,YACA,uDAGF,oBR5VkB,wCQgWlB,eACE,eAKN,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,cNrYoB,gBMuYpB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WN7aI,8BMgbJ,aACE,cNjakB,gBMmalB,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aNlgBsB,iCMigBxB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cRjiBkB,4JQoiBlB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WNhkBI,gCMkkBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MCjlBJ,+CACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WPhDA,cOkDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aT/DgB,0BSiEd,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aPpFsB,sBOuFpB,aTjGkB,yBSqGlB,iBACE,kBACA,gBACA,uBAGF,eACE,iBACA,sBAIJ,kBACE,wBAGF,aACE,eACA,eACA,qBAGF,kBACE,cPlHoB,iCOqHpB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WPlKA,gBOoKA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WPxLE,cO0LF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WP9ME,cOgNF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,6BAIJ,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WP5RI,cO8RJ,WACA,2CAKE,mBACE,eACA,WPtSA,qBOwSA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WPtUI,cOwUJ,WACA,UACA,oBACA,gBACA,mBACA,sBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,wQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBP7VY,oLOiWZ,iBACE,4WAGF,oBThWkB,mBSmWhB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBTjZkB,WENd,eO0ZJ,oBACA,YACA,aACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,qBACE,gLAGF,qBAEE,kHAGF,wBPpaoB,gGOwapB,kBPtbQ,kHOybN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WPzcI,cO2cJ,WACA,UACA,oBACA,gBACA,wXACA,sBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cTneY,oBSqeZ,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,8DACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,8BACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UPvhBF,aOiiBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cPzhBsB,kBO2hBtB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cPjjBY,sBOqjBd,mCACE,+BACA,cPtjBQ,kBO0jBV,oBACE,cP7iBoB,qBO+iBpB,wBAEA,UPjkBI,0BOmkBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBPzkBS,WATL,eOqlBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aP1mBsB,qBO4mBpB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aTxoBoB,qBS0oBlB,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cP7oBsB,oCOgpBtB,cACE,mBACA,kBACA,4CAGF,aPrpBwB,gBOupBtB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBP7rBM,YO+rBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cP1rBwB,WO4rBxB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WPzuBI,qCO2uBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UAEE,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cPhxBsB,0BOmxBtB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WP7yBI,kBO+yBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aPvzBc,0SOi0BZ,+CACE,aAIJ,kBACE,sBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gDACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBP32Bc,gBO62BZ,2BAEA,kBP/2BY,gBOi3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SCl7BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,gBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,WACA,YACA,gBACA,wBAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WR7EA,gBQ+EA,gBACA,uBACA,+BAGF,aACE,eACA,cRtEgB,gBQwEhB,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WR3GI,gBQ6GJ,qBACA,iBACA,qBACA,sBAGF,eRnHM,oBQqHJ,cR5GS,eQ8GT,cACA,kBAGF,cACE,uCAGF,aR9GwB,oBQmHxB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,cACA,qCAGF,YA7DF,iBA8DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBRlKa,mCQoKX,cR7JsB,eQ+JtB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cR3LwB,sCQ6LxB,sCACA,6DAEA,aRhNc,sCQkNZ,kCACA,qDAGF,aACE,sCACA,kCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cR1OsB,0BQ4OtB,6BAGF,aACE,cRjPoB,4BQqPtB,aV/PoB,qBUiQlB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aRnRY,gBQqRV,0CAGF,aRxRY,wCQ6Rd,eACE,wCAIJ,UACE,0BAIA,aRxRsB,4BQ2RpB,aR1RsB,qBQ4RpB,qGAEA,yBAGE,iCAIJ,URtTI,gBQwTF,wBAIJ,eACE,kBC/TJ,kCACE,kBACA,gBACA,mBACA,8BAEA,yBACE,qCAGF,iBAVF,eAWI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBTpBW,6GSuBT,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBXzEoB,WENd,oBSkFN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UT5FI,gFSgGN,kBAGE,qNAKA,kBTxFoB,4ISgGpB,kBT9GQ,qCSqHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAGF,gBACE,iBACA,mFAGF,UACE,qMAGF,eAGE,iCC/JN,u+KACE,uCAEA,u+KACE,0CAIJ,u+KACE,WCTF,gCACE,4CACA,cAGF,aACE,eACA,iBACA,cbAoB,SaEpB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,aXFsB,eWIpB,SAIJ,wBblBsB,YaoBpB,kBACA,sBACA,WX5BM,eW8BN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,qBACA,uBACA,2BACA,mBACA,WACA,4CAEA,wBAGE,4BACA,sBAGF,eACE,mFAEA,wBXxDQ,gBW4DN,mCAIJ,wBXlDsB,eWqDpB,2BAGF,QACE,wDAGF,mBAGE,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,aXpFW,mBAOW,qGWiFpB,wBAGE,8BAIJ,kBbpGgB,2GauGd,wBAGE,0BAIJ,aXlGsB,uBWoGpB,iBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,kBAIJ,YACE,cACA,kBACA,cAGF,oBACE,CACA,ab9IgB,SagJhB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,oCACA,4BACA,2CACA,oBAGF,kCACE,uBAGF,aACE,6BACA,eACA,qBAGF,abxKoB,gCa4KpB,QACE,uEAGF,mBAGE,uBAGF,abxLgB,sFa2Ld,aAGE,oCACA,6BAGF,kCACE,gCAGF,aACE,6BACA,8BAGF,abzMkB,uCa4MhB,aACE,wBAKN,sBACE,0BACA,yBACA,kBACA,YACA,8BAEA,yBACE,mBb5NY,QamOhB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,oCACA,4BACA,2CACA,yBAGF,kCACE,4BAGF,aACE,6BACA,eACA,0BAGF,abhQoB,qCaoQpB,QACE,sFAGF,mBAGE,CAKF,0BADF,iBAUE,CATA,WAGF,WACE,cACA,qBACA,QACA,SAEA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,eAIJ,YACE,iCAGE,mBACA,eAEA,gBACA,wCAEA,abrTkB,sDayTlB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBb1UgB,yDaiVpB,aX9UW,mBWgVT,mBXzUoB,oCW2UpB,iBACA,kBACA,eACA,gBACA,6CAEA,aXxVS,gBW0VP,CAII,kRADF,eACE,wCAKN,abxWc,gBa0WZ,0BACA,yIAEA,oBAGE,sCAKN,iBACE,QACA,UACA,kDAGF,iBACE,mGAGF,iBAGE,WACA,8BAGF,QACE,wBACA,UACA,qDAEA,WACE,mBACA,UACA,mFAIJ,aAEE,sBACA,WACA,SACA,cXlZS,gBATL,aW8ZJ,oBACA,eACA,gBACA,SACA,UACA,yIAEA,abjac,Ca+Zd,sHAEA,abjac,Ca+Zd,8HAEA,abjac,Ca+Zd,gIAEA,abjac,Ca+Zd,4GAEA,abjac,+Faqad,SACE,qCAGF,kFAvBF,cAwBI,sCAIJ,iBACE,+CAGF,gBACE,0BACA,iBACA,mBACA,YACA,qBACA,kEAEA,SACE,qCAGF,8CAZF,sBAaI,gBACA,2DAIJ,iBACE,SACA,kDAGF,qBACE,aACA,kBACA,SACA,WACA,WACA,sCACA,mBXncsB,0BWqctB,cX7cS,eW+cT,YACA,6FAEA,aACE,wDAIJ,YACE,eACA,kBACA,yPAEA,kBAIE,wGAIJ,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,oCAGF,6BACE,0CAEA,aACE,gBACA,uBACA,mBACA,2CAGF,eACE,0CAGF,aACE,iBACA,gBACA,uBACA,mBACA,8EAIJ,aAEE,iBACA,WACA,YACA,2DAGF,abnhBgB,wCauhBhB,aXlhBW,oBWohBT,eACA,gBX9hBI,sEWiiBJ,eACE,uEAGF,YACE,mBACA,YACA,eACA,8DAGF,UACE,cACA,WACA,uEAEA,iFACE,aACA,uBACA,8BACA,UACA,4BACA,oFAEA,aACE,cXziBgB,eW2iBhB,gBACA,aACA,oBACA,6QAEA,aAGE,8EAIJ,SACE,0EAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,gFACA,aACA,UACA,4BACA,mFAEA,sBACE,cXzkBgB,SW2kBhB,UACA,SACA,WACA,oBACA,eACA,gBACA,yFAEA,UXpmBF,8GWwmBE,WACE,cXxlBc,CAjBlB,oGWwmBE,WACE,cXxlBc,CAjBlB,wGWwmBE,WACE,cXxlBc,CAjBlB,yGWwmBE,WACE,cXxlBc,CAjBlB,+FWwmBE,WACE,cXxlBc,iFW6lBlB,SACE,wEAKN,iBACE,sBXtnBE,wBWwnBF,sBACA,4BACA,aACA,WACA,gBACA,8CAIJ,YACE,mBACA,0BACA,aACA,8BACA,cACA,qEAEA,YACE,uGAEA,gBACE,qGAGF,YACE,6IAEA,aACE,2IAGF,gBACE,0HAKN,sBAEE,cACA,0EAGF,iBACE,iBACA,sCAIJ,YACE,yBACA,YACA,cACA,4EAEA,eACE,iBACA,oBAKN,cACE,kDACA,eACA,gBACA,cbrrBgB,4CawrBhB,aXzrBY,kCW8rBd,2CACE,WCpsBF,8DDysBE,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,kBAIJ,iBACE,mBACA,mBXpsBsB,aWssBtB,gBACA,gBACA,cACA,0BAGF,iBACE,gBACA,0BAGF,WACE,iBACA,gCAGF,aX7tBa,cW+tBX,eACA,iBACA,gBACA,mBACA,qBACA,kCAGF,UACE,iBACA,+BAGF,cACE,4CAGF,iBAEE,eACA,iBACA,qBACA,gBACA,gBACA,uBACA,gBACA,WXlwBM,wDWqwBN,SACE,wGAGF,kBACE,sJAEA,oBACE,gEAIJ,UACE,YACA,gBACA,oDAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,gDAGF,kBACE,qBACA,sEAEA,eACE,gDAIJ,aX1xBc,qBW4xBZ,4DAEA,yBACE,oEAEA,aACE,4EAKF,oBACE,sFAEA,yBACE,wDAKN,abxzBc,8Ea6zBhB,aACE,0GAGF,kBbj0BgB,sHao0Bd,kBACE,qBACA,8IAGF,QACE,0XAGF,mBAGE,0FAIJ,YACE,wJAEA,aACE,6CAKN,gBACE,oCAGF,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,oFAEA,yBAEE,gCAIJ,oBACE,kBACA,uBACA,SACA,cXh3BW,gBWk3BX,eACA,cACA,iBACA,eACA,sBACA,4BAGF,ab/3BkB,Sai4BhB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,kBAIA,SACE,mBACA,wCAEA,kBACE,8CAEA,sBACE,iFAIJ,kBAEE,SAMJ,yBACA,kBACA,gBACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QARF,kBAWI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,aX37BoB,CAPX,uEW28BP,aX38BO,kCW+8BP,aXx8BkB,gCW68BpB,aXp9BS,kCWu9BP,ab19BgB,gEa89BhB,UXp+BE,mBAgBgB,sEWw9BhB,kBACE,+CAQR,sBACE,qEAEA,aACE,qDAKN,abt/BkB,Yay/BhB,eACA,uBAGF,ab7/BkB,qCaigClB,aACE,eACA,mBACA,eAGF,cACE,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,cbjjCgB,CamjChB,iBACA,eACA,kBACA,+CAEA,abxjCgB,uBa4jChB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cbrlCY,4Ba2lClB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,kEAGF,gBACE,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cbnpCgB,eaqpChB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,2BAGF,aX1qCa,eW4qCX,6BAEA,abnrCgB,SawrClB,YACE,gCACA,8BAEA,aACE,cACA,WXlsCI,qBWosCJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,UAGF,YACE,gCACA,kBAEA,SACE,gBACA,2CAEA,aACE,iCAIJ,aACE,cACA,cXntCoB,gBWqtCpB,qBACA,eACA,mBAIJ,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,iBEtvCE,iCACA,wBACA,4BACA,kBFqvCA,yBAEA,oBACE,sBACA,iBACA,4BAGF,iBEhwCA,iCACA,wBACA,4BACA,kBF+vCE,gBACA,kBACA,eACA,gCAEA,UACE,kBACA,sBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WXjxCE,6BWmxCF,gBACA,eACA,oBAKN,cACE,0BAGF,UACuB,sCEvxCrB,+BFyxCA,iBElyCA,iCACA,wBACA,4BACA,WFiyCuB,sCE3xCvB,kCF8xCA,iBEvyCA,iCACA,wBACA,4BACA,WFsyCuB,sCEhyCvB,kBFkyCE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,sBAGF,YACE,6BACA,cbrzCgB,6BawzChB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,+BAGF,YACE,4CAEA,qBACE,oFAIA,QACE,WACA,uDAGF,WACE,iBACA,gBACA,WACA,4BAKN,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,+BACA,eACA,oCACA,kCAEA,+BACE,gCAGF,aACE,eACA,cXv3CoB,kCW23CtB,aACE,eACA,gBACA,WX94CI,CWm5CA,2NADF,eACE,oBAMR,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,6JAGF,oBAME,4DAKA,UXn7CM,kBWy7CN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,aXr8C0B,cWu8CxB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WXr+CI,kCW0+CR,UACE,kBACA,iBAGF,WACE,UACA,kBACA,SACA,WACA,iBAGF,UACE,kBACA,OACA,MACA,YACA,eACA,Cbz/CgB,gHamgDhB,abngDgB,wBaugDhB,UACE,wCAGF,kBb3gDgB,cEKL,8CW0gDT,kBACE,qBACA,wBAKN,oBACE,gBACA,eACA,cX7gDsB,eW+gDtB,iBACA,kBACA,4BAEA,ab7hDoB,6BaiiDpB,cACE,gBACA,uBACA,uCAIJ,UACE,kBACA,CX5iDU,mEWmjDZ,aXnjDY,uBWujDZ,aXxjDc,4DW8jDV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UXllDM,0BWolDJ,8BAIJ,WACE,eAGF,aACE,eACA,gBACA,uBACA,mBACA,qBAGF,eACE,wBAGF,cACE,+DAKA,yBACE,eAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cXzkD4B,eAEC,0DW0kD3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cXjmD4B,eAEC,WWkmD3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,iBAIJ,YACE,aACA,mBACA,cACA,eACA,cXlpDsB,wBWqpDtB,aXppDwB,mBWwpDxB,aACE,4BAGF,oBACE,0CAGF,iBACE,6DAEA,iBACE,oBACA,qCACA,UACA,4EAGF,mBACE,gCACA,UACA,0BAKN,aACE,gBACA,iBACA,gBACA,gBACA,kCAGF,aACE,gBACA,gBACA,uBACA,+BAGF,aACE,qBACA,WAGF,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBXrtD0B,cWutDxB,kBACA,uCACA,aACA,mBAEA,eACE,qBAGF,yBACE,oBAGF,yBACE,uBAGF,sBACE,sBAGF,sBACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BX1vDsB,2BW8vDxB,WACE,iBACA,uBACA,yBXjwDsB,8BWqwDxB,QACE,iBACA,uBACA,4BXxwDsB,6BW4wDxB,SACE,gBACA,2BACA,2BX/wDsB,wBWqxDxB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBX3xDsB,cARb,gBWsyDT,uBACA,mBACA,yFAEA,kBb7yDkB,cEWI,UWuyDpB,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBXrzDsB,cWuzDtB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBX90DsB,cARb,gBWy1DT,uBACA,mBACA,oDAEA,SACE,oDAGF,kBbp2DkB,cEWI,iBWg2D1B,qBACE,eAGF,YACE,cACA,mBACA,2BACA,gBACA,kBACA,4BAEA,iBACE,uBAGF,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,gKAMJ,WAIE,mCAIJ,YACE,mBACA,uBACA,YACA,SAGF,WACE,kBACA,sBACA,aACA,sBACA,qBAEA,kBX78DW,8BW+8DT,+BACA,KAIJ,aACE,CACA,qBACA,WACA,YACA,aAJA,YAYA,CARA,QAGF,WACE,sBACA,CACA,qBACA,kBACA,cAGF,aACE,cACA,sBACA,cXh+DsB,qBWk+DtB,kBACA,eACA,oCACA,iBAGF,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WXxiEM,qBW0iEN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCAMA,mEAHF,kBAII,4BACA,yBAIJ,+BACE,cb3jEkB,sBa+jEpB,eACE,aACA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,YACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,2BACE,gBACA,uCAEA,SACE,SACA,wCAGF,eACE,wCAGF,gBACE,iBACA,qDAGF,UACE,gLAGF,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,iBACA,6DAGF,UACE,CAIA,yFAGF,eACE,8DAGF,gBACE,kBACA,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WX/uEM,kBWivEN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,4DAGF,kBAGE,yBAGF,aACE,iBAGF,eAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,mBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBbpzEkB,yBaszElB,gBACA,kBACA,eACA,gBACA,iBACA,WXj0EI,mDWs0ER,oBACE,gBAGF,WACE,gBACA,aACA,sBACA,yBACA,kBACA,gCAEA,gBACE,oBACA,cACA,gBACA,6BAGF,sBACE,8BAGF,MACE,kBACA,aACA,sBACA,iBACA,oBACA,oBACA,mDAGF,eACE,sBXx2EI,0BW02EJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,gBAMF,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAiBA,CAhBA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,kBACA,uBAEA,kBX/5EW,0BWo6Eb,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,WACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,sCAGF,yBAjBF,aAkBI,iBAIJ,kBACE,eACA,gBACA,iBAGF,aACE,eACA,mBACA,mBACA,aACA,mBACA,kBACA,mBAEA,iCACE,yBAEA,kBACE,mCACA,aAKN,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,sBAIJ,qBACE,WACA,mBACA,cbz/EoB,ea2/EpB,cACA,eACA,oBACA,SACA,iBACA,aACA,SACA,UACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cb9gFoB,eaghFpB,mBACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,CACA,OACA,UACA,eAGF,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,0CACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBXhlFW,qCWklFX,sEAGF,wBACE,4CAGF,wBb5lFsB,+EagmFtB,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,yBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBbxpFoB,ca4pFtB,kBACE,WXnqFM,cWqqFN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cXpqFsB,kGWuqFtB,sBAGE,WX3rFE,kCW+rFJ,abzrFkB,oBa+rFtB,oBACE,iBACA,qBAGF,oBACE,kBACA,eACA,iBACA,gBACA,mBXtsFW,gBWwsFX,iBACA,oBAGF,kBX5sFa,cFLK,iBaotFhB,eACA,gBACA,eACA,yDAGF,kBXrtFa,cW2tFb,aACE,kBAGF,abpuFkB,casuFhB,8BACA,+BACA,4EAEA,0BAGE,CAHF,uBAGE,CAHF,kBAGE,kDAMA,sBACA,YACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,cACE,0DAEA,ablwFY,0BaowFV,sDAIJ,oBACE,cX7vFkB,sMWgwFlB,yBAGE,oDAKN,abpxFgB,0Ba0xFhB,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,cXrxFkB,aWuxFlB,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA1BF,YA2BI,yCAGF,eACE,aACA,iDAEA,aXhzFkB,qBWuzFxB,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,aACE,sBACA,WACA,SACA,cXv1FW,gBATL,aWm2FN,oBACA,eACA,gBACA,SACA,UACA,kBACA,qBAEA,SACE,qCAGF,cAnBF,cAoBI,oDAIJ,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAKJ,uBACE,2BACA,gDAGF,abn4FkB,6Baq4FhB,uDAGF,abt4FsB,ca04FtB,YACE,eACA,yBACA,kBACA,cbh5FgB,gBak5FhB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cX/5FoB,uBWi6FpB,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UXz7FE,yBWg8FJ,cACE,kBACA,YACA,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACA,YACA,SACA,2BAIA,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cXn9FsB,gBWq9FtB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,aXj+FwB,oBWq+FxB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,YAGF,aACE,cb9jGgB,6BagkGhB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,yBAGF,iBACE,eACA,gBACA,cbxlGgB,mBEKL,eWslGX,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,cbtnGY,qCa0nGd,cACE,gBACA,yBAKN,iBACE,cACA,uCAGE,aACE,WACA,kBACA,SACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,4EACA,gBAKN,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,2BACA,4BACA,uBAEA,QACE,SACA,yBACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,abhrGoB,uBaorGpB,mCACE,4CAEA,abvrGkB,sCayrGhB,4CAIJ,SAEE,yBAIJ,WACE,aACA,uBAGF,kBACE,iCAGF,iBACE,wBAGF,kBACE,SACA,cXxsGsB,eW0sGtB,eACA,eACA,8BAEA,aACE,CAKA,kEAEA,UXtuGI,mBWwuGF,6BAKN,eACE,gBACA,gBACA,cXhuGsB,0DWkuGtB,UACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,mCAIJ,kBACE,aACA,mCAIA,aX7vGsB,0BW+vGpB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,sBAGF,oBACE,iBACA,oBAGF,ab3yGkB,ea6yGhB,gBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,gCAGF,kBACE,gBXz6GM,WACA,eW26GN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,eXv7GQ,cAiBgB,SWy6GtB,UACA,WACA,YACA,kBACA,wBACA,CADA,oBACA,CADA,eACA,iEAEA,SAGE,cACA,yBAIJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,iBAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,aACE,SACA,QACA,WACA,YACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,0BACA,kBACA,iBACA,WXt/GE,gBWw/GF,eACA,+LAMA,yBACE,mEAKF,yBACE,6BAMR,kBACE,iBAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,aXphHwB,eWshHtB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SEtiHF,sBACA,WACA,SACA,gBACA,oBACA,mBbRW,cAOW,eaItB,SACA,+EFgiHI,aACE,CEjiHN,qEFgiHI,aACE,CEjiHN,yEFgiHI,aACE,CEjiHN,0EFgiHI,aACE,CEjiHN,gEFgiHI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,abxkHc,iBa0kHZ,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,aXrlHoB,0HW0lHpB,cAEE,gBACA,cbzmHY,kZa4mHZ,aAGE,gEAIJ,wBACE,iDAGF,eX3nHI,kBa0BN,CAEA,eACA,cbbsB,uCaetB,UF8lHI,mBX5mHoB,oDagBxB,abjBsB,eamBpB,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,cbxCS,sDWwnHT,WACE,mDAGF,aX5nHS,kBW8nHP,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UXxpHQ,kBW0pHN,cACA,mBACA,sBX7pHM,eW+pHN,gBACA,YACA,kBACA,WACA,yBAEA,SACE,iBAIJ,aACE,iBACA,wBAGF,aX9pHwB,qBWgqHtB,mBACA,gBACA,sBACA,uCAGF,ablrHkB,mBEKL,kBWirHX,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBAEA,sCAdF,cAeI,kDAGF,eACE,2CAGF,abtsHoB,qBawsHlB,uDAEA,yBACE,eAKN,qBACE,8BAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA1BF,qBAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,mCAIJ,8BACE,2DACA,CADA,kDACA,iCAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,EA/BF,wBAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,kCAIJ,yBACE,8EACA,CADA,qEACA,8BAGF,eX/xHQ,kBWiyHN,sCACA,kBACA,eAEA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBX3zHM,kBW6zHN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,+BAGE,2DAIJ,WACE,wBAKF,2BACE,cAIJ,kBACE,0BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBXp3HW,kCWs3HX,uBAGF,MACE,aACA,mBACA,uBACA,cXr3HwB,eWu3HxB,gBACA,0BACA,kBACA,kBAGF,YACE,cb34HgB,gBa64HhB,aACA,sBAEA,cACE,kBACA,uBAGF,cACE,gBACA,cACA,0BAIJ,aACE,4BAGF,UACE,WACA,kBACA,mBbn6HgB,kBaq6HhB,eACA,2BAGF,iBACE,OACA,MACA,WACA,mBb36HoB,kBa66HpB,eAGF,aACE,eACA,iBACA,gBACA,WACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,CACA,UACA,YACA,eACA,CAQE,6GAKN,SACE,oBACA,CADA,WACA,6BAGF,iBACE,gBX99HM,uCWg+HN,kBACA,iBACA,gBACA,iCAEA,yBACE,oCAGF,sBACE,2BAIJ,aXr+Ha,aWu+HX,eACA,aACA,kEAEA,kBb9+HoB,WENd,UWw/HJ,CXx/HI,4RW6/HF,UX7/HE,wCWmgIN,kBACE,iCAIJ,YACE,mBACA,uBACA,kBACA,oCAGF,aACE,cb5gIgB,2Ca+gIhB,eACE,cACA,cX5gIS,CWihIL,wQADF,eACE,mDAON,eXjiIM,0BWmiIJ,qCACA,gEAEA,eACE,0DAGF,kBbpiIkB,uEauiIhB,UX7iIE,uDWmjIN,yBACE,sDAGF,aACE,sCACA,SAIJ,iBACE,gBAGF,SErjIE,sBACA,WACA,SACA,gBACA,oBACA,mBbRW,cAOW,eaItB,SACA,cF+iIA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,sCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,sCACA,eACA,WACA,YACA,cXrmIsB,eWumItB,oBACA,0BAEA,mBACE,WACA,0BAIJ,uBACE,iCAEA,mBACE,uBACA,gCAIJ,QACE,uBACA,cbxoIc,ea0oId,uCAEA,uBACE,sCAGF,aACE,yBAKN,abtpIkB,mBawpIhB,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,cb9qIc,iCairId,oBACE,iBACA,8FAIJ,eAEE,0BAIJ,aACE,aACA,cXlrIwB,qBWorIxB,+FAEA,aAGE,0BACA,uBAIJ,YACE,cXhsIsB,kBWksItB,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,0BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,cX7tI0B,eAEC,CWuuI7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,yBACE,sBACA,SACA,WXzzIM,eW2zIN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,cXt1IsB,mFWy1ItB,yBAGE,wBAKN,oBACE,sBAGF,qBXt3IQ,YWw3IN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wBb33IsB,qBa+3ItB,iBACE,UACA,QACA,YACA,6CAGF,kBX33I0B,cARb,kBWw4IX,gBACA,aACA,sBACA,oBAGF,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,mDAGF,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,ab/7IgB,Sak8Id,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,qiBAGF,aX98IS,qwDWk9IP,aAGE,sBAMR,sBACE,eAGF,iBACE,eACA,mBACA,sBAEA,eACE,cXr+IS,kBWu+IT,eACA,qBAGF,kBX3+IW,cAQa,gBWs+ItB,aACA,kBACA,kBAIJ,oBACE,eACA,gBACA,iBACA,wFAGF,kBAME,cXjgJW,kBWmgJX,gBACA,eACA,YACA,kBACA,sBACA,4NAEA,aACE,eACA,mBACA,wLAGF,WACE,UACA,kBACA,SACA,WACA,kRAGF,aACE,wBAKF,eXviJM,CAiBkB,gBWyhJtB,oBACA,iEX3iJI,2BAiBkB,yBWkiJ1B,iBACE,aACA,iCAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,2GAIJ,YAIE,8BACA,mBXjjJwB,aWmjJxB,iBACA,2HAEA,aACE,iBACA,cbrkJc,mBaukJd,2IAGF,aACE,6BAIJ,cACE,2BAGF,WACE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,abjoJoB,iLaqoJpB,aXloJW,qCWuoJX,oDAjBF,eAkBI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,aXjqJS,gBATL,aW6qJJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,eX7rJI,yBW+rJF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,aXpsJO,oBWssJL,eACA,gBXhtJA,+CWqtJJ,YACE,8BACA,mBACA,4CAIJ,aACE,cXptJS,eWstJT,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,aX/tJS,eWiuJP,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eACE,eACA,wBAEA,eACE,iBACA,2CAGF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,aX3wJO,aW6wJL,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBb/xJY,WENd,uDW4yJA,iBACE,oMAUR,aACE,iIAIJ,4BAIE,cb5zJgB,ea8zJhB,gBACA,6cAEA,aAGE,6BACA,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,aXv2JS,CWy2JP,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,wBb33JsB,Wa63JpB,kBACA,MACA,OACA,aACA,6BAGF,aACE,kBACA,WX54JM,0BW84JN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,2DAKE,YACE,wDAKF,SACE,uBAKN,eACE,6BAEA,UACE,kBAIJ,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cbv7Jc,iBay7Jd,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cbr9JY,gBau9JZ,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,abx+Jc,gBag/JhB,cACA,CACA,iBACA,CACA,UACA,qCANF,qBACE,CACA,eACA,CACA,iBAYA,CAVA,qBAGF,QACE,CACA,aACA,WACA,CACA,iBAEA,qEAGE,cACE,MACA,gCAKN,cACE,cACA,qBACA,cX//JwB,kBWigKxB,UACA,mEAEA,WAEE,WACA,CAIA,2DADF,mBACE,CADF,8BACE,CADF,gBX5hKM,CW6hKJ,wBAIJ,UACE,YACA,CACA,iBACA,MACA,OACA,UACA,gBXxiKM,iCW2iKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,qCAGF,cACE,YACA,oBACA,CADA,8BACA,CADA,gBACA,kBACA,QACA,2BACA,WACA,UACA,sCAGF,0BACE,2BACA,gBACA,kBACA,qKAMA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,iCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gBXxoKM,eW0oKN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,qBAGF,eACE,gBACA,UACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gBXrtKI,cAiBgB,gBWusKpB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,0DAEA,aACE,wBAIJ,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,UXpxKE,+EW4xKN,cAGE,gBACA,6BAGF,UXnyKM,iBWqyKJ,yBAGF,oBACE,aACA,mDAGF,UX7yKM,uBWkzKN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,WXl2KE,sFWq2KF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,kBAON,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,gBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WX5/KF,gBW8/KE,gBACA,uBACA,0CAGF,aACE,eACA,cXr/Kc,gBWu/Kd,gBACA,uBACA,yBAKN,kBXrgLS,aWugLP,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,6BAOV,YACE,eACA,gBACA,wBAGF,QACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cX7kLoB,eW+kLpB,eACA,gBACA,kBACA,qBACA,kBACA,yJAEA,aXrlLsB,qWWwlLpB,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,cAOV,kBXzoLa,sBW4oLX,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,2BAKN,eACE,gBAGF,eXvsLQ,kBa0BN,CACA,sBACA,gBACA,cbbsB,uCaetB,mBAEA,abjBsB,eamBpB,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,cbxCS,UWksLb,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cXrsLsB,gBWusLtB,gBAEA,abptLkB,0BastLhB,sBAEA,oBACE,4BAMR,GACE,cACA,eACA,WATM,mBAMR,GACE,cACA,eACA,qEAGF,kBAIE,sBAEE,8BACA,iBAGF,0BACE,kCACA,+BAIA,qDACE,uEACA,+CAGF,sBACE,8BACA,6DAIA,6BACE,6CACA,4EAIF,6BACE,6CACA,+CAOJ,gBAEE,+BAGF,gBACE,6CAEA,0BACE,wDAGF,eACE,6DAGF,iBACE,iBACA,2EAIA,mBACE,UACA,gCACA,WACA,0FAGF,mBACE,UACA,oCACA,eAOV,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBX70LO,WATL,eWy1LF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,sBAMJ,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cbh4Lc,Cam4Ld,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,qBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,uCAEA,SACE,kCAKN,aACE,cACA,mBAIJ,cACE,kBACA,MACA,OACA,WACA,YACA,0BACA,cAGF,kBX37La,sBW67LX,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kBXj/La,sBWm/LX,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,cAIJ,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBX3iMM,yDW8iMN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBXtjMI,uBW0jMN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UXvlMI,eWylMF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,4BAKN,aXjmMwB,eWmmMtB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WXruMA,gBWuuMA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cX9tMc,gBWguMd,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,WXlwME,gDWswMJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,aXjxMU,yBWuxMd,cACE,gCAEA,cACE,cX5wMkB,eW8wMlB,kCAEA,oBACE,cXjxMgB,qBWmxMhB,iBACA,gBACA,yCAEA,eACE,WXxyMF,iBWizMN,ab7yMgB,mBa+yMd,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cbv0MY,gBay0MZ,uBACA,mBACA,4BAEA,eACE,uBAGF,aXr0MkB,qBWu0MhB,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cX/1MoB,0BWm2MtB,aACE,WACA,2CAEA,gCACE,yBACA,0CAGF,wBACE,eAMR,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,uBAGF,oBACE,mBbj5MkB,kBam5MlB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cX75MkB,kBW+5MlB,+BAGF,aXl6MoB,eWo6MlB,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UX57ME,qBW87MA,oHAEA,yBAGE,0BAKN,qBACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UXx9MI,OcFR,eACE,eACA,UAEA,kBACE,kBACA,cAGF,iBACE,MACA,OACA,YACA,qBACA,kBACA,mBACA,sBAEA,kBhBVkB,agBepB,iBACE,aACA,cACA,iBACA,eACA,gBACA,gEAEA,YAEE,gCAGF,aACE,8BAGF,aACE,sBACA,WACA,eACA,cdjCO,UcmCP,oBACA,gBd7CE,yBc+CF,kBACA,iBACA,oCAEA,oBhB7CgB,wBgBkDlB,cACE,sBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBdtFY,8Ec2FZ,gBAGE,gBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,CACA,oBACA,iBACA,gBACA,mBACA,cACA,mBAGF,UACE,iBACA,eAGF,eACE,mBACA,chB7Hc,agBiIhB,cACE,uBACA,UACA,SACA,SACA,chBtIc,0BgBwId,kBACA,mBAEA,oBACE,sCAGF,kCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,4BACE,gCAEA,YACE,2CAGF,4BACE,aACA,aACA,mBACA,mGAEA,YAEE,+GAEA,oBhB5KgB,sDgBkLpB,cACE,gBACA,iBACA,YACA,oBACA,chBzLc,sCgB4Ld,gCAGF,YACE,mBACA,4CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,cdxMS,qBc0MT,WACA,UACA,oBACA,qXACA,yBACA,kBACA,CACA,yBACA,mDAGF,aACE,cAIJ,ahB/NkB,qBgBkOhB,+BACE,6BAEA,2BACE,eC5ON,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,cCtBJ,cACE,qBACA,chBSW,2BgBNX,qBAEE,iBACA,+BAGF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mBhBHsB,4BgBOxB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,clB/BgB,ckBiChB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,alBhDsB,mCkBmDpB,aACE,oDAGF,WACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBlBjEoB,uBkBsEpB,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gBhB5FM,sBgB8FN,sGAEA,+BAEE,oBAKF,2BACA,gBhBxGM,0BgB2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,gCACA,chBzGS,yBgB2GT,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,sCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gBhBpKI,mBgByKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,chBvKsB,mDgB0KtB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,YCrMF,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,iDACE,eACA,gBACA,gBACA,qBACA,cjBJsB,oBiBOtB,anBjBoB,0BmBmBlB,6EAEA,oBAGE,wCAIJ,ajBlBsB,oBiBuBtB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,cjBhCsB,qBiBoCxB,iBACE,cjBrCsB,uBiByCxB,eACE,mBACA,kBACA,kBACA,yHAGF,4CAME,mBACA,oBACA,gBACA,cjBzDsB,qBiB6DxB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,cjBrIkB,iCiByIpB,uBACE,gBACA,gBACA,cnBxJY,qDmB4Jd,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,kDACA,eACA,iBACA,WjBpNI,iBiBsNJ,kBACA,qEAEA,aAEE,6CAIA,ajB9MoB,oCiBmNtB,4CACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,4CACE,eACA,iBACA,gBACA,cjB/OkB,mBiBiPlB,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAEA,UACE,YACA,CACA,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iCAIJ,cACE,mCAEA,aACE,WjBzSA,qBiB2SA,uDAGE,yBACE,2CAKN,aACE,cjBrSgB,kCiB6StB,iDAEE,CACA,eACA,eACA,iBACA,mBACA,cjBpToB,sCiBuTpB,anBjUkB,0BmBmUhB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,4CACE,eACA,iBACA,gBACA,mBACA,cjB7UsB,wBiBgVtB,iDACE,cACA,eACA,gBACA,cACA,kBAIJ,4CACE,eACA,iBACA,gBACA,mBACA,cjB9VsB,kBiBmWtB,cjBnWsB,mCiBkWxB,4CACE,CACA,gBACA,gBACA,mBACA,cjBvWsB,kBiB4WtB,cjB5WsB,kBiBqXtB,cjBrXsB,mCiBoXxB,4CACE,CACA,gBACA,gBACA,mBACA,cjBzXsB,kBiB8XtB,cjB9XsB,mCiBsYxB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,0CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBjB1bW,kBiB4bT,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAGF,UACE,YACA,0BACA,mDAGF,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA7DF,iBA8DI,mFAIJ,qBAGE,mBjBnjBS,kBiBqjBT,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,ajB3kBsB,qCiB+kBtB,eACE,WjBjmBE,gBiBmmBF,2CAEA,ajBrlBkB,gDiBwlBhB,ajBvlBkB,+CiB6lBtB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SjBvrBI,YiByrBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,gBACA,eACA,cjBhsBkB,6BiBosBpB,eACE,iBACA,+BAGF,kBjBhtBS,aiBktBP,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,4CACE,eACA,gBACA,cACA,qCAGF,cACE,cjB/uBgB,uFiBqvBtB,eACE,cASA,CjB/vBoB,2CiB4vBpB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,cjB51BsB,qBiB81BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,cnBh3Bc,SoBNlB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBlBhBW,UkBqBX,apBxBoB,0BoB0BlB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBlBzDS,6BkB2DP,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+CACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,clB5FsB,gBkB8FtB,0DAEA,UlBhHM,wDkBoHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBlBvJS,sBkByJT,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBlBtKS,gCkByKT,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBlB9LS,uCkBiMP,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,clB/NgB,gBkBiOhB,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,uCAEA,iBACE,sCAGF,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBC7RN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBnBPO,YmBSP,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SnBxCA,YmB0CE,kBACA,YACA,uCAIJ,aACE,cnBjCgB,qBmBmChB,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,cnB3EgB,qBmB6EhB,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UnBzGA,yBmB2GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UnBjIE,yBFMc,gBqB8Hd,gBACA,mEAEA,qBACE,6DAKN,yBACE,iCAKF,UACA,gBAEA,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,anBnMsB,emBqMpB,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,anB9MsB,emBgNpB,iBACA,gBACA,mBACA,4BAGF,cACE,gBACA,cnBzNkB,mBmB2NlB,kBACA,gCACA,4BAGF,cACE,cnBhOoB,iBmBkOpB,gBACA,0CAGF,UnBvPI,gBmByPF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WnBvQE,oBmByQF,iBACA,gBACA,gBACA,2BAGF,cACE,iBACA,cnBhQoB,mBmBkQpB,kCAEA,UnBrRE,gBmBuRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,0CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA7SF,aA8SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BrB5UgB,YqBmVtB,UACE,SACA,cACA,WACA,sDAKA,anBlVsB,0DmBqVpB,arB/VkB,4DqBoWpB,anBzWc,gBmB2WZ,4DAGF,anB7WU,gBmB+WR,0DAGF,arBhXgB,gBqBkXd,0DAGF,anBrXU,gBmBuXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,eACA,CAII,iNADF,eACE,2BAKN,oBACE,cnBjZkB,qBmBmZlB,eACA,gBACA,gCACA,iCAEA,UnBxaE,gCmB0aA,oCAGF,arBvagB,gCqByad,CAkBJ,gBAIJ,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,cnBrdsB,CmB0dlB,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,arB/iBoB,qBqBijBlB,oBAEA,yBACE,SAKN,aACE,YAGF,kBACE,iBACA,oBAEA,YACE,2BACA,mBACA,aACA,mBnBlkBS,cAOW,0BmB8jBpB,eACA,kBACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,arBnmBgB,oBqBumBhB,kBACE,0BACA,aACA,cnB9lBoB,gDmBgmBpB,eACA,qBACA,gBACA,kBAGF,cACE,kBACA,crBpnBc,2BqBwnBhB,iBACE,SACA,WACA,WACA,YACA,kBACA,oCAEA,kBnBnoBY,oCmBuoBZ,kBACE,mCAGF,kBrBtoBkB,sDqB2oBpB,anBhoBwB,qBmBooBtB,gBACA,sBAGF,aACE,0BAGF,anB5oBwB,sBmBgpBxB,anBhqBc,yDmBqqBhB,oBAIE,cnBzpBwB,iGmB4pBxB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBnBrtBc,yBmBytBd,yBACE,wBAGF,yBnB1tBU,wBmB+tBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,anB3tBoB,uBmBiuBpB,wBACA,qBAGF,arBjvBgB,cqBsvBlB,kBnBjvBa,kBmBmvBX,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,cnBhwBkB,iBmBkwBlB,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,anB7xBM,6BmBoyBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,cnBpyBgB,mLmBuyBhB,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,arB/zBU,iBqBi0BR,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,cnB/zBgB,WmBs0BxB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,anBn4BY,8CmBw4Bd,qBACE,aACA,WnB34BI,cmBg5BR,iBACE,sBCn5BF,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WpBrCI,6CoBuCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,cpBjCoB,kBoBmCpB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,apBrDwB,gBoBuDtB,qBACA,UC3EJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,0BAGF,SACE,WACA,0DAGF,iBAEE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,+DACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,kkEC7ZJ,kIACE,CADF,sIACE,qBACA,sCxB6EF,QACE,qBACE,gBACA,SAGF,SACE,gBACA,gBACA,+BAIJ,eAEE,sBACA,kBACA,gBACA,kBACA,kCACA,4BACA,gEAGF,gBAEE,uBACA,2BACA,qBAGF,eACE,UACA,wDAGF,qBAEE,sBACA,MAKF,cACE,oDACA,WACA,kCAGF,eAGE,cAGF,UACE,sBACA,WAGF,kBAzIW,sGAmBT,gBAIA,YAqHA,iBAGF,UACE,CAEA,oBACA,CADA,mBACA,CADA,4BACA,WACA,YACA,wBAGF,qGA7GE,eAIA,gBACA,WA0GA,mCAGF,eACE,WACA,gBACA,eACA,UACA,cACA,kBACA,QACA,4BAGF,iBACE,0BACA,YACA,cA3KS,yDA8KT,4BACA,uBACA,4BACA,yBACA,wBAGF,gBACE,eACA,mBAvLS,eA2LX,aACI,YACA,kBAEA,YACA,UACA,YACA,aACA,iGACA,4BACA,iCACA,UACA,gBAGJ,eACE,UACA,6BAGF,SACE,SAGF,gBACE,qBAGF,kBAvNW,CAcT,eACA,6CA2MA,CA3MA,kBA2MA,CA3MA,sBA2MA,CAMA,uCAHF,UACE,gBACA,mBAYA,CAXA,eAGF,WACE,eACA,CAvNA,eACA,6CAyNA,CAzNA,kBAyNA,CAzNA,sBAyNA,CAEA,oBACA,gCAGF,kBA3OsB,uCA+OtB,YACE,uBAEF,gBACE,mBAnPoB,4CAuPtB,UACE,yBAGF,eACE,eACA,wBAGF,kBAnQW,WAqQT,cACA,eACA,gBACA,cACA,eACA,sGAvPA,gBAIA,8BAsPA,UACE,mEAIJ,qGAvOE,eAIA,gBACA,yBAoOA,6BAMA,eACA,eAIA,iDARF,kBAvRW,WAyRT,YACA,CAEA,qGAzQA,gBAIA,eAuQA,gBAUA,kCAGF,iBACE,UACA,UACA,gBACA,eACA,cACA,2BAGF,cACE,gBACA,6BAGF,8BACE,gCACA,mCAGF,kBA9TW,WAgUT,oCAGF,UACE,oDAGF,yBACE,kBACA,kBACA,YACA,qBAGF,wBA9UW,CAcT,eACA,CAkUA,4CACA,CADA,kBACA,CADA,kBACA,2BAGF,UACE,gBACA,eACA,kBACA,UACA,SACA,yBA3VS,qBA6VT,cACA,gBACA,6CAGF,UACE,gBACA,kCAGF,WACE,iCAEF,WACE,iBAGF,gBACE,mCAIA,qBACA,CAvVA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,WAwVA,YACA,sEAGF,qBACE,yCAGF,QACE,iBACA,kDAGF,SACE,qCAGF,YACE,mCAGF,eACE,aACA,WAGF,wBAjZW,sGAmBT,gBAIA,YA6XA,iBAGF,oBACE,WACA,CAzWA,+BA4WF,qGAjXE,eAIA,gBAsXA,CArXA,cAgXF,UACE,sBACA,CAlXA,cAoXA,YACA,+FAGF,UAEE,gCACA,CAIA,iIAGF,gBACE,oBAGF,wBAtbW,WAwbT,sGAraA,gBAIA,wBAqaF,0lBACE,wBAEA,uCAGF,kBAlcW,WAqcT,kBAGF,yBACE,WACA,SAraA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,sBAwaA,CACA,mBACA,mBACA,uBAGF,wBArdW,kBAydX,cACE,uEAGF,aAEE,qBAGF,qBACE,kBACA,YACA,UACA,mBAteS,uBAweT,CAEA,eACA,iCACA,8BACA,iBACA,sCAGF,qBACE,4BAGF,WACE,8BAGF,gBACE,kBACA,2CAEA,cACE,kCAGJ,UACE,CAlgBS,+DAugBT,kBAvgBS,4DA2gBT,eACE,wBACA,gCAIJ,iBACE,oDAGF,cACE,kBAGF,eACE,4BACA,WACA,0BACA,YACA,gCAGF,aACE,uCAGF,UACE,gBACA,0GAlgBA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,uBAugBA,CAvgBA,cAugBA,6CACA,CADA,oCACA,8BAGF,wBAljBW,SAojBT,iCACA,kBACA,mBACA,iBACA,cAEF,kBA1jBW,CAaT,4CACA,CADA,kBACA,CADA,gBACA,gBACA,UA8iBA,iBAGA,0HAFA,aAIE,qBAriBF,4CACA,CADA,kBACA,CADA,gBACA,gBACA,kCA2iBF,kBACE,eACA,sDAGF,sBAEE,YACA,CEjlBU,2IFslBV,aEtlBU,0BF2lBZ,kBA5lBW,CAaT,4CACA,CADA,kBACA,CADA,gBACA,gBACA,mBAglBA,iCAlkBA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,mBAukBF,aArmBkB,uCAymBlB,gBACE,sBACA,mBACA,0BAGF,aACE,uCAGF,gBACE,mBACA,cAGF,eACE,gBACA,sBACA,WACA,oBAGF,qBACE,qBAGF,UACE,0BACA,gBACA,YAGF,UACE,gBACA,CA5oBS,qGAmBT,gBAIA,CAwnBA,eACA,6BAJA,kBA5oBS,CAuBT,UA6nBE,2BAIJ,UACC,4DAGD,UACE,gBACA,iCAGF,UACE,UAGF,gCACE,0GAGF,kBAzqBW,sGAmBT,gBAIA,sHAupBF,kBA9qBW,wHAkrBX,qGAvoBE,eAIA,gBACA,gDAsoBF,UACE,eAGF,yBACE,WACA,wBAGF,UACE,eACA,6BAGF,eACE,iBAGF,kBAxsBW,CAaT,+BACA,gBACA,qBA4rBA,gBACA,mBACA,6CACA,CADA,+BACA,CADA,gBACA,cAGF,UACE,sGA/rBA,gBAIA,YA6rBA,WACA,cACA,iCAGF,eACE,WACA,gBACA,eACA,UACA,cACA,kBACA,QACA,0BAIF,iBACE,iBACA,WACA,YACA,cAzuBS,yDA4uBT,4BACA,uBACA,4BACA,yBACA,yBAGF,4BACE,qCAGF,8YACE,4BACA,uBACA,4BACA,yBACA,iBACA,SAOF,kBApwBW,CAswBT,WACA,iCACA,CACA,oBACA,CADA,iCACA,CADA,sBACA,gBACA,eAIA,UACA,CA3uBA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,oCAuuBF,qBAOE,gBAGF,gBACE,WACA,gBACA,sBAvxBqB,sBAyxBrB,mBAEA,UACE,oBACA,gBACA,yBAIJ,wBAtyBW,WAwyBT,iCACA,0BAGF,UACE,sOAGF,wBA7yBsB,WAkzBpB,mBAGF,UACE,0BAEA,SACE,yBAGF,UACE,sCAIJ,wBAp0BW,CAu0BT,yBACA,CADA,2BACA,iBAGF,UACE,wBAGF,UACE,gBACA,mFA5yBA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,+CAmzBF,eACE,gCAGF,eACE,gCACA,mBACA,+BAGF,6BACE,+BACA,8CAGF,wBAz2BW,0BA22BT,eACA,gBACA,wBAGF,wBAh3BW,gBAk3BT,iBACA,kCAGF,8BACE,4HAGF,kBA13BW,uEA+3BX,aA93BkB,mDAk4BlB,kBAn4BW,iBAs4BT,yGAGF,kBAt4BsB,4LA24BtB,gBAKE,WACA,sGAj4BA,gBAIA,mBAvBS,oCAy5BX,UACE,2CAGF,eACE,+BAGF,cACE,gBACA,cACA,kBACA,UACA,yBAt6BS,eAw6BT,cACA,wBAGF,iBACE,iBACA,0BACA,yBA/6BS,WAi7BT,0BAGF,UACE,+BAGF,UACE,0BACA,iDA75BA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,mBAg6BA,cACA,iCAGF,eACE,0BACA,yBAr8BS,YAu8BT,sBACA,8CAGF,cACE,gBACA,2BACA,qDAGF,WACE,eACA,gBACA,WACA,gDAGF,YACE,8BAGF,SACE,2BAGF,gBACE,gBACA,yBAl+BS,sBAo+BT,uBACA,6BAIF,UACE,sBACA,CACA,qGAj8BA,eAIA,gBACA,qCAg8BF,gCACE,qCAGF,UACE,gBACA,kBAGF,wBAz/BW,kBA2/BT,0BACA,SA5/BS,qGAmBT,CAIA,eA2+BA,WACA,gBACA,sDALF,wBA//BW,gBA0gCT,qGA/9BA,eAIA,gBACA,kBA89BA,UACE,8BACA,yBAEA,qGA//BF,gBAIA,kBAkgCF,wBAzhCW,sGA2CT,CAIA,eACA,eA4+BA,yBAGF,eACE,WACA,gBACA,eACA,UACA,kBACA,cACA,kBACA,UACA,kBAGF,iBACE,iBACA,WACA,YACA,cA/iCS,+YAkjCT,4BACA,uBACA,4BACA,yBACA,oBAGF,wBAzjCW,WA2jCT,iCACA,oBACA,eACA,cAGF,4BACE,WACA,oBACA,wBAjkCoB,WAmkClB,8CAKF,WACE,SACA,UACA,wCAMA,iBACA,qFAJF,yBACE,4BACA,6BAOE,0CAGF,WACE,WACA,CAMJ,4FACA,yDAGA,wGACA,yDAGA,wEACA,yDAGA,gFACA,yDAGA,sEACA,0DAGA,0FACA,0DAGA,gGACA,0DAGA,wEACA,0DAGA,sEACA,0DAGA,4FACA,0DAGA,wEACA,0DAGA,8EACA,mFAGF,YACE,kCAGF,qBACE,gBACA,eACA,WACA,iBACA,kBACA,mBACA,OAEA,aACA,cACA,kBACA,yBACA,WACA,YACA,CAIA,wBACA,0BACA,2BAjqCA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,yBAfS,yCAsrCX,YACE,yBAGF,wBA1rCW,kBA8rCX,wBACE,4CAGF,UACE,6BAGF,yBACE,WACA,YACA,iBAGF,wBA5sCW,SA8sCT,8BACA,8CAGF,UACE,YACA,gCAGF,UACE,gBACA,kCAGF,UACE,sBAGF,YACE,2BAGF,yBACE,kCAGF,qGA7rCE,eAIA,gBACA,wDA4rCF,eAxuCuB,gBA2uCrB,sBACA,iBACA,kBAGF,4BACE,yBAGF,YACE,gCAGF,UACE,sGAltCA,eAIA,gBACA,8CAitCF,sBACE,oDAGF,sBACE,WACA,0BACA,0CAGF,oBAGE,2FAGF,UACE,4GAGF,qBAII,qBACA,sBACA,yCAGJ,eACI,8BAGJ,iBACI,SACA,iDAGJ,iBACI,SACA,mCAGJ,kBACI,uBAGJ,iBACI,0BAGJ,iBACI,kBAGJ,iBACI,0BAGJ,iBACI,SACA,2GAGJ,qGA9yCE,gBAIA,mBAvBS,2FAu0CX,sBAIE,cACA,mBAz0CoB,WA20CpB,gBACA,iBACA,qBAGF,4BACE,0CAGF,eACE,gBACA,oFAGF,kBA51CW,iBA81CT,sDAGF,kBA91CsB,WAg2CpB,gBACA,YACA,eACA,gBACA,CAKE,+RAEA,UAGE,CAj0CJ,gMAo0CE,qGAz0CF,eAIA,gBACA,uHA00CF,eAEE,WA50CA,2CAi1CF,oQAEE,uBAGF,iBACE,MACA,wBACA,WACA,yBAv4CoB,eAy4CpB,gBACA,WACA,WACA,cACA,CACA,wBACA,sBACA,gBAGF,iBACE,mBAv5CS,sGAmBT,gBAIA,WAm4CA,YACA,iBACA,WACA,iBACA,sBACA,gBACA,sCAGF,eACE,UACE,YACA,kBACA,sCAIJ,eACE,WACE,YACA,0BACA,SACA,kCAIJ,eACE,YACA,cACA,WACA,iCAGF,aACE,wBACA,CAh7CA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,kBAg7CA,iBACA,kBACA,mBACA,sBACA,yBAGF,wBAt8CW,WAw8CT,eACA,gBACA,sBACA,kBACA,yBAGF,eACE,mBAh9CS,WAk9CT,WACA,YACA,oBACA,+BAGF,iBACE,QACA,SACA,WACA,YACA,SACA,4BAGF,kBAj+CW,CAm+CT,gBACA,WACA,+BAEA,oBACE,4EAEA,WAEE,2BACA,sCAt9CJ,UA69CI,wEAJF,iBACE,sGA99CJ,gBAIA,CA49CI,WASA,CARA,kCAGF,oBACE,CAEA,SAEA,iCAGF,oBACE,qIA58CJ,gBAMA,2BACA,4BACA,gBAs8CI,SACA,WACA,wBACA,0CAEA,kBAvgDK,WAygDH,gBACA,mBACA,uCAGF,kBA9gDK,WAghDH,kCAIJ,uBACE,uBACA,kBACA,UACA,SACA,UACA,qCAEA,kBA5hDK,qBA8hDH,wBACA,uCAEA,kBAjiDG,qIAoDT,gBAMA,2BACA,4BACA,WAw+CQ,gBACA,kBACA,UACA,gDAEA,kBAziDC,WA2iDC,mBACA,gBACA,kBACA,iBACA,kBACA,kBACA,UACA,4DAEA,aACE,sDAGF,sBACE,WACA,6CAIJ,kBA9jDC,WAgkDC,sCAQZ,iCACE,gBACE,yBAGF,mBACE,sCAIJ,iCACE,eACE,yBAKE,gBACA,WACA,YACA,iCAEF,aACE,WACA,0BACA,iBAKN,qBAlmDuB,WAomDrB,sBACA,gBACA,kBACA,MACA,OACA,WACA,sBAGF,qBACE,CA7kDA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,weA+kDF,UAeE,qEAGF,qBAEE,sJAGF,UAKE,sBACA,CA9mDA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,4WA+mDA,qBACE,qEAIJ,kBA3pDW,sGAmBT,gBAIA,WA0oDA,gBACA,uFAEA,kBApqDS,4CAyqDX,eArqDuB,WAwqDrB,iBACA,kBACA,sBACA,gDAEA,UACE,0BACA,gGAIJ,kBAvrDW,yBA8rDX,yBACE,YACA,kCAGF,UACE,sBACA,kBACA,CAIA,4CACA,CADA,kBACA,CADA,gBACA,WACA,YACA,qBACA,sBACA,iBACA,2CAGF,qBACE,gCACA,8FAGF,UAGE,kCACA,ooB","file":"skins/vanilla/win95/common.css","sourcesContent":["@font-face{font-family:\"premillenium\";src:url(\"~fonts/premillenium/MSSansSerif.ttf\") format(\"truetype\")}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#192432 rgba(0,0,0,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#192432;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#1c2938}::-webkit-scrollbar-thumb:active{background:#192432}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(0,0,0,.1)}::-webkit-scrollbar-track:hover{background:#121a24}::-webkit-scrollbar-track:active{background:#121a24}::-webkit-scrollbar-corner{background:transparent}body{font-family:\"mastodon-font-sans-serif\",sans-serif;background:#06090c;font-size:13px;line-height:18px;font-weight:400;color:#fff;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",\"mastodon-font-sans-serif\",sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#121a24}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.player{text-align:center}body.embed{background:#192432;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#0b1016;padding:0}body.error{position:absolute;text-align:center;color:#9baec8;background:#121a24;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog__illustration img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div,.app-holder>noscript{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.app-holder>noscript{height:100vh}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.error-boundary,.app-holder noscript{flex-direction:column;font-size:16px;font-weight:400;line-height:1.7;color:#e25169;text-align:center}.error-boundary>div,.app-holder noscript>div{max-width:500px}.error-boundary p,.app-holder noscript p{margin-bottom:.85em}.error-boundary p:last-child,.app-holder noscript p:last-child{margin-bottom:0}.error-boundary a,.app-holder noscript a{color:#00007f}.error-boundary a:hover,.error-boundary a:focus,.error-boundary a:active,.app-holder noscript a:hover,.app-holder noscript a:focus,.app-holder noscript a:active{text-decoration:none}.error-boundary__footer,.app-holder noscript__footer{color:#404040;font-size:13px}.error-boundary__footer a,.app-holder noscript__footer a{color:#404040}.error-boundary button,.app-holder noscript button{display:inline;border:0;background:transparent;color:#404040;font:inherit;padding:0;margin:0;line-height:inherit;cursor:pointer;outline:0;transition:color 300ms linear;text-decoration:underline}.error-boundary button:hover,.error-boundary button:focus,.error-boundary button:active,.app-holder noscript button:hover,.app-holder noscript button:focus,.app-holder noscript button:active{text-decoration:none}.error-boundary button.copied,.app-holder noscript button.copied{color:#79bd9a;transition:none}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#fff;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#fff;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px}.account-header .name{flex:1 1 auto;color:#d9e1e8;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#fff}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#26374d}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#9baec8;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#fff}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#2d415a;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#344b68}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#d9e1e8}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#000}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#192432;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #192432;background:#040609}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#192432;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#fff;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#9baec8}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#9baec8;padding:10px;border-right:1px solid #192432;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #00007f;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#d9e1e8}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#fff;font-family:\"mastodon-font-display\",sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #26374d}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#9baec8}.public-layout .public-account-header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#0000a8}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#fff}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#9baec8}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #202e3f}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #202e3f}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#121a24}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#192432}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#4c6d98}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#4c6d98}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{font-weight:700;margin-bottom:8px;color:#9baec8}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#4c6d98}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#4c6d98}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#5377a5}.compact-header h1{font-size:24px;line-height:28px;color:#9baec8;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#d9e1e8}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#121a24;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.hero-widget__text a{color:#d9e1e8;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;font-weight:700;font-size:14px;color:#9baec8}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#9baec8}.box-widget{padding:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #404040;text-align:center;color:#9baec8;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;font-weight:700;font-size:14px;color:#9baec8}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#9baec8;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#d9e1e8;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#9baec8}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#9baec8;margin-bottom:10px}.page-header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#fff;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#9baec8}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#192432}.page-header h1{font-size:24px}}.directory{background:#121a24;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#121a24;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#202e3f}.directory__tag.active>a{background:#00007f;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#9baec8}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#9baec8}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small,.directory__tag.active h4 .trends__item__current{color:#fff}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#00007f}.directory__tag .trends__item__current{padding-right:0}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#040609;border:2px solid #121a24}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;color:#9baec8;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #202e3f}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#fff}.accounts-table__count small{display:block;color:#9baec8;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #2d415a}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#9baec8}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#00007f}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#0b1016;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#fff;border-bottom:1px solid #192432}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #192432}code{font-family:\"mastodon-font-monospace\",monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#fff;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#00007f;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#9baec8}.simple_form .hint a{color:#00007f}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#000}.simple_form .hint li{list-style:disc;margin-left:18px}.simple_form ul.hint{margin-bottom:15px}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#9baec8}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#fff;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .required abbr{text-decoration:none;color:#e87487}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#fff;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#fff;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #404040;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102;border:1px solid #000;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#a8b9cf}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#e87487}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#000}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#00007f;background:#040609}.simple_form .input.field_with_errors label{color:#e87487}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#e87487}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#e87487;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#00007f;color:#fff;font-size:18px;line-height:inherit;height:auto;padding:10px;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#009}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#006}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#e3566d}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#db2a47}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #000;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#404040;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(1, 1, 2, 0), #010102)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(18,26,36,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#fff}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#202e3f;color:#9baec8;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#9baec8;text-decoration:none}.flash-message a:hover{color:#fff;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#121a24;color:#fff;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#192432}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#9baec8;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#00007f;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#0000a8}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#9baec8}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#d9e1e8;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#d9e1e8;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#fff;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#9baec8}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#fff;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:\"mastodon-font-monospace\",monospace}.input-copy{background:#010102;border:1px solid #000;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:\"mastodon-font-monospace\",monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#0b1016;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#0b1016;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#202e3f}.card__img{height:130px;position:relative;background:#000;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#192432;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#040609;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#fff;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#121a24;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{color:#d9e1e8}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#233346}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#9baec8;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#d9e1e8;background-color:rgba(217,225,232,.1);border:1px solid rgba(217,225,232,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#e87487;background-color:rgba(232,116,135,.1);border-color:rgba(232,116,135,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #26374d;border-bottom:1px solid #26374d;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #26374d}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#d9e1e8;background:rgba(4,6,9,.5)}.account__header__fields dd{flex:1 1 auto;color:#9baec8}.account__header__fields a{color:#00007f;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#9baec8}.pending-account__header a{color:#d9e1e8;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#fff;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}.activity-stream--under-tabs{border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#121a24}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#202e3f}.button.logo-button{flex:0 auto;font-size:14px;background:#00007f;color:#fff;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#fff}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#0000b2}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.link-button{display:block;font-size:15px;line-height:20px;color:#00007f;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#00007f;border:10px none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:15px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#0000b2;transition:all 200ms ease-out}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled,.button.disabled{background-color:#9baec8;cursor:default}.button::-moz-focus-inner{border:0}.button::-moz-focus-inner,.button:focus,.button:active{outline:0 !important}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#121a24;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#a8b9cf}.button.button-alternative-2{background:#404040}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#4a4a4a}.button.button-secondary{color:#9baec8;background:transparent;padding:3px 15px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#a8b9cf;color:#a8b9cf}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.icon-button{display:inline-block;padding:0;color:#404040;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#525252;background-color:rgba(64,64,64,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(64,64,64,.3)}.icon-button.disabled{color:#1f1f1f;background-color:transparent;cursor:default}.icon-button.active{color:#00007f}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#404040}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#2e2e2e;background-color:rgba(64,64,64,.15)}.icon-button.inverted:focus{background-color:rgba(64,64,64,.3)}.icon-button.inverted.disabled{color:#525252;background-color:transparent}.icon-button.inverted.active{color:#00007f}.icon-button.inverted.active.disabled{color:#0000c1}.icon-button.overlayed{box-sizing:content-box;background:rgba(0,0,0,.6);color:rgba(255,255,255,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(0,0,0,.9)}.text-icon-button{color:#404040;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#2e2e2e;background-color:rgba(64,64,64,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(64,64,64,.3)}.text-icon-button.disabled{color:#737373;background-color:transparent;cursor:default}.text-icon-button.active{color:#00007f}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.compose-form{padding:10px}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#00007f}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#00007f;background:#00007f}.compose-form .compose-form__warning{color:#121a24;margin-bottom:10px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.compose-form .compose-form__warning strong{color:#121a24;font-weight:500}.compose-form .compose-form__warning strong:lang(ja){font-weight:700}.compose-form .compose-form__warning strong:lang(ko){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-CN){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-HK){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-TW){font-weight:700}.compose-form .compose-form__warning a{color:#404040;font-weight:500;text-decoration:underline}.compose-form .compose-form__warning a:hover,.compose-form .compose-form__warning a:active,.compose-form .compose-form__warning a:focus{text-decoration:none}.compose-form .emoji-picker-dropdown{position:absolute;top:5px;right:5px}.compose-form .compose-form__autosuggest-wrapper{position:relative}.compose-form .autosuggest-textarea,.compose-form .autosuggest-input,.compose-form .spoiler-input{position:relative;width:100%}.compose-form .spoiler-input{height:0;transform-origin:bottom;opacity:0}.compose-form .spoiler-input.spoiler-input--visible{height:36px;margin-bottom:11px;opacity:1}.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0}.compose-form .autosuggest-textarea__textarea::placeholder,.compose-form .spoiler-input__input::placeholder{color:#404040}.compose-form .autosuggest-textarea__textarea:focus,.compose-form .spoiler-input__input:focus{outline:0}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{font-size:16px}}.compose-form .spoiler-input__input{border-radius:4px}.compose-form .autosuggest-textarea__textarea{min-height:100px;border-radius:4px 4px 0 0;padding-bottom:0;padding-right:32px;resize:none;scrollbar-color:initial}.compose-form .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.compose-form .autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.compose-form .autosuggest-textarea__suggestions{box-sizing:border-box;display:none;position:absolute;top:100%;width:100%;z-index:99;box-shadow:4px 4px 6px rgba(0,0,0,.4);background:#d9e1e8;border-radius:0 0 4px 4px;color:#121a24;font-size:14px;padding:6px}.compose-form .autosuggest-textarea__suggestions.autosuggest-textarea__suggestions--visible{display:block}.compose-form .autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.compose-form .autosuggest-textarea__suggestions__item:hover,.compose-form .autosuggest-textarea__suggestions__item:focus,.compose-form .autosuggest-textarea__suggestions__item:active,.compose-form .autosuggest-textarea__suggestions__item.selected{background:#b9c8d5}.compose-form .autosuggest-account,.compose-form .autosuggest-emoji,.compose-form .autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.compose-form .autosuggest-hashtag{justify-content:space-between}.compose-form .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-hashtag strong{font-weight:500}.compose-form .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-account-icon,.compose-form .autosuggest-emoji img{display:block;margin-right:8px;width:16px;height:16px}.compose-form .autosuggest-account .display-name__account{color:#404040}.compose-form .compose-form__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.compose-form .compose-form__modifiers .compose-form__upload-wrapper{overflow:hidden}.compose-form .compose-form__modifiers .compose-form__uploads-wrapper{display:flex;flex-direction:row;padding:5px;flex-wrap:wrap}.compose-form .compose-form__modifiers .compose-form__upload{flex:1 1 0;min-width:40%;margin:5px}.compose-form .compose-form__modifiers .compose-form__upload__actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button{flex:0 1 auto;color:#d9e1e8;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:hover,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:focus,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:active{color:#eff3f5}.compose-form .compose-form__modifiers .compose-form__upload__actions.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-description{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);padding:10px;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload-description textarea{background:transparent;color:#d9e1e8;border:0;padding:0;margin:0;width:100%;font-family:inherit;font-size:14px;font-weight:500}.compose-form .compose-form__modifiers .compose-form__upload-description textarea:focus{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload-description textarea::placeholder{opacity:.75;color:#d9e1e8}.compose-form .compose-form__modifiers .compose-form__upload-description.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-thumbnail{border-radius:4px;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;height:140px;width:100%;overflow:hidden}.compose-form .compose-form__buttons-wrapper{padding:10px;background:#ebebeb;border-radius:0 0 4px 4px;display:flex;justify-content:space-between;flex:0 0 auto}.compose-form .compose-form__buttons-wrapper .compose-form__buttons{display:flex}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__upload-button-icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button{display:none}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button.compose-form__sensitive-button--visible{display:block}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button .compose-form__sensitive-button__icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .icon-button,.compose-form .compose-form__buttons-wrapper .text-icon-button{box-sizing:content-box;padding:0 3px}.compose-form .compose-form__buttons-wrapper .character-counter__wrapper{align-self:center;margin-right:4px}.compose-form .compose-form__publish{display:flex;justify-content:flex-end;min-width:0;flex:0 0 auto}.compose-form .compose-form__publish .compose-form__publish-button-wrapper{overflow:hidden;padding-top:10px}.character-counter{cursor:default;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:600;color:#404040}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .spoiler-input{transition:height .4s ease,opacity .4s ease}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.reply-indicator{border-radius:4px;margin-bottom:10px;background:#9baec8;padding:10px;min-height:23px;overflow-y:auto;flex:0 2 auto}.reply-indicator__header{margin-bottom:5px;overflow:hidden}.reply-indicator__cancel{float:right;line-height:24px}.reply-indicator__display-name{color:#121a24;display:block;max-width:100%;line-height:24px;overflow:hidden;padding-right:25px;text-decoration:none}.reply-indicator__display-avatar{float:left;margin-right:5px}.status__content--with-action{cursor:pointer}.status__content,.reply-indicator__content{position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:hidden;text-overflow:ellipsis;padding-top:2px;color:#fff}.status__content:focus,.reply-indicator__content:focus{outline:0}.status__content.status__content--with-spoiler,.reply-indicator__content.status__content--with-spoiler{white-space:normal}.status__content.status__content--with-spoiler .status__content__text,.reply-indicator__content.status__content--with-spoiler .status__content__text{white-space:pre-wrap}.status__content .emojione,.reply-indicator__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img,.reply-indicator__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.reply-indicator__content p{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.reply-indicator__content p:last-child{margin-bottom:0}.status__content a,.reply-indicator__content a{color:#d8a070;text-decoration:none}.status__content a:hover,.reply-indicator__content a:hover{text-decoration:underline}.status__content a:hover .fa,.reply-indicator__content a:hover .fa{color:#525252}.status__content a.mention:hover,.reply-indicator__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span,.reply-indicator__content a.mention:hover span{text-decoration:underline}.status__content a .fa,.reply-indicator__content a .fa{color:#404040}.status__content a.unhandled-link,.reply-indicator__content a.unhandled-link{color:#0000a8}.status__content .status__content__spoiler-link,.reply-indicator__content .status__content__spoiler-link{background:#404040}.status__content .status__content__spoiler-link:hover,.reply-indicator__content .status__content__spoiler-link:hover{background:#525252;text-decoration:none}.status__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner{border:0}.status__content .status__content__spoiler-link::-moz-focus-inner,.status__content .status__content__spoiler-link:focus,.status__content .status__content__spoiler-link:active,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link:focus,.reply-indicator__content .status__content__spoiler-link:active{outline:0 !important}.status__content .status__content__text,.reply-indicator__content .status__content__text{display:none}.status__content .status__content__text.status__content__text--visible,.reply-indicator__content .status__content__text.status__content__text--visible{display:block}.status__content.status__content--collapsed{max-height:300px}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#0000a8;border:0;background:transparent;padding:0;padding-top:8px}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:transparent;border:0;color:#121a24;font-weight:700;font-size:12px;padding:0 6px;line-height:20px;cursor:pointer;vertical-align:middle}.status__wrapper--filtered{color:#404040;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #202e3f}.status__prepend-icon-wrapper{left:-26px;position:absolute}.focusable:focus{outline:0;background:#192432}.focusable:focus .status.status-direct{background:#26374d}.focusable:focus .status.status-direct.muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#202e3f}.status{padding:8px 10px;padding-left:68px;position:relative;min-height:54px;border-bottom:1px solid #202e3f;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:26px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#202e3f;border-bottom-color:#26374d}.status.light .status__relative-time{color:#9baec8}.status.light .status__display-name{color:#121a24}.status.light .display-name strong{color:#121a24}.status.light .display-name span{color:#9baec8}.status.light .status__content{color:#121a24}.status.light .status__content a{color:#00007f}.status.light .status__content a.status__content__spoiler-link{color:#fff;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#b5c3d6}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#616161}.status__relative-time,.notification__relative_time{color:#404040;float:right;font-size:14px}.status__display-name{color:#404040}.status__info .status__display-name{display:block;max-width:100%;padding-right:25px}.status__info{font-size:15px}.status-check-box{border-bottom:1px solid #d9e1e8;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-left:68px;color:#404040;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#404040}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#404040}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#192432;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .status__content .status__content__spoiler-link{line-height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#404040;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.reply-indicator__content{color:#121a24;font-size:14px}.reply-indicator__content a{color:#404040}.domain{padding:10px;border-bottom:1px solid #202e3f}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#fff;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}.account{padding:10px;border-bottom:1px solid #202e3f}.account.compact{padding:0;border-bottom:0}.account.compact .account__avatar-wrapper{margin-left:0}.account .account__display-name{flex:1 1 auto;display:block;color:#9baec8;overflow:hidden;text-decoration:none;font-size:14px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;position:relative}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;border-radius:50%;overflow:hidden;position:relative;cursor:default}.account__avatar-composite>div{float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}a .account__avatar{cursor:pointer}.account__avatar-overlay{width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__disclaimer{padding:10px;border-top:1px solid #202e3f;color:#404040}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-dropdown{padding:10px}.account__action-bar-dropdown .icon-button{vertical-align:middle}.account__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__right{left:6px;right:initial}.account__action-bar-dropdown .dropdown--active::after{bottom:initial;margin-left:11px;margin-top:-7px;right:initial}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-right:1px solid #202e3f;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab.active{border-bottom:4px solid #00007f}.account__action-bar__tab>span{display:block;font-size:12px;color:#9baec8}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#fff}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#fff}.muted .emojione{opacity:.5}.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,a.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#d9e1e8;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#fff}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{height:48px;left:10px;position:absolute;top:10px;width:48px}.status__expand{width:68px;position:absolute;left:0;top:0;height:100%;cursor:pointer}.muted .status__content,.muted .status__content p,.muted .status__content a{color:#404040}.muted .status__display-name strong{color:#404040}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#404040;color:#121a24}.muted a.status__content__spoiler-link:hover{background:#525252;text-decoration:none}.notification__message{margin:0 10px 0 68px;padding:8px 0 0;cursor:default;color:#9baec8;font-size:15px;line-height:22px;position:relative}.notification__message .fa{color:#00007f}.notification__message>span{display:inline;overflow:hidden;text-overflow:ellipsis}.notification__favourite-icon-wrapper{left:-26px;position:absolute}.notification__favourite-icon-wrapper .star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#fff;text-decoration:underline}.notification__relative_time{float:right}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.navigation-bar{padding:10px;display:flex;align-items:center;flex-shrink:0;cursor:default;color:#9baec8}.navigation-bar strong{color:#d9e1e8}.navigation-bar a{color:inherit}.navigation-bar .permalink{text-decoration:none}.navigation-bar .navigation-bar__actions{position:relative}.navigation-bar .navigation-bar__actions .icon-button.close{position:absolute;pointer-events:none;transform:scale(0, 1) translate(-100%, 0);opacity:0}.navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:auto;transform:scale(1, 1) translate(0, 0);opacity:1}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;line-height:20px;margin-top:-1px;overflow:hidden}.navigation-bar__profile-account{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile-edit{color:inherit;text-decoration:none}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #c0cdd9;margin:5px 7px 6px;height:0}.dropdown-menu{background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);z-index:9999}.dropdown-menu ul{list-style:none}.dropdown-menu.left{transform-origin:100% 50%}.dropdown-menu.top{transform-origin:50% 100%}.dropdown-menu.bottom{transform-origin:50% 0}.dropdown-menu.right{transform-origin:0 50%}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#d9e1e8}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#d9e1e8}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#00007f;color:#d9e1e8;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#00007f;color:#d9e1e8}.dropdown__icon{vertical-align:middle}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area.unscrollable{overflow-x:hidden}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#040609;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .drawer,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:350px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#121a24;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.drawer{width:330px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden}.drawer__tab{display:block;flex:1 1 auto;padding:15px 5px 13px;color:#9baec8;text-decoration:none;text-align:center;font-size:16px;border-bottom:2px solid transparent}.column,.drawer{flex:1 1 auto;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#202e3f;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#fff;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #202e3f;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.tabs-bar__link:hover,.tabs-bar__link:focus,.tabs-bar__link:active{background:#2a3c54;border-bottom-color:#2a3c54}}.tabs-bar__link.active{border-bottom:2px solid #00007f;color:#00007f}.tabs-bar__link span{margin-left:5px;display:none}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;height:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px 15px 15px 78px;min-height:50px}.columns-area--mobile .status__avatar{left:15px;top:17px}.columns-area--mobile .status__content{padding-top:5px}.columns-area--mobile .status__prepend{margin-left:78px;padding-top:15px}.columns-area--mobile .status__prepend-icon-wrapper{left:-32px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{margin-left:78px;padding-top:15px}.columns-area--mobile .notification__favourite-icon-wrapper{left:-32px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}.columns-area--mobile .notification .account__avatar-wrapper{margin-left:17px;margin-right:15px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#000070;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#0000a3}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.getting-started__trends,.search{margin-bottom:10px}.getting-started__panel{margin:10px 0}.column,.drawer{min-width:330px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#00007f;border:2px solid #202e3f;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#fff}.column-link--transparent .icon-with-badge__badge{border-color:#040609}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .navigation-bar{padding-top:20px;padding-bottom:20px;flex:0 1 48px;min-height:20px}.compose-panel .flex-spacer{background:transparent}.compose-panel .compose-form{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px;padding-bottom:71px;margin-bottom:-71px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #192432;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#283a50;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%;border-radius:2px}.drawer__inner.darker{background:#121a24}.drawer__inner__mastodon{background:#283a50 url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:100%;height:100%;pointer-events:none;user-drag:none;user-select:none}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#283a50;font-size:13px;text-align:left}.drawer__header{flex:0 0 auto;font-size:16px;background:#202e3f;margin-bottom:10px;display:flex;flex-direction:row;border-radius:2px}.drawer__header a{transition:background 100ms ease-in}.drawer__header a:hover{background:#17212e;transition:background 200ms ease-out}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.column-back-button{box-sizing:border-box;width:100%;background:#192432;color:#00007f;cursor:pointer;flex:0 0 auto;font-size:16px;line-height:inherit;border:0;text-align:unset;padding:15px;margin:0;z-index:3;outline:0}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#192432;border:0;font-family:inherit;color:#00007f;cursor:pointer;white-space:nowrap;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#121a24;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#010102}.react-toggle--checked .react-toggle-track{background-color:#00007f}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#0000b2}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #121a24;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#00007f}.column-link{background:#202e3f;color:#fff;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#253549}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#d9e1e8}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#fff}.column-link--transparent.active{color:#00007f}.column-link__icon{display:inline-block;margin-right:5px}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#121a24;padding:4px 8px;margin:-6px 10px}.column-subheading{background:#121a24;color:#404040;padding:8px 20px;font-size:13px;font-weight:500;cursor:default}.getting-started__wrapper,.getting-started,.flex-spacer{background:#121a24}.flex-spacer{flex:1 1 auto}.getting-started{color:#404040;overflow:auto;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.getting-started__wrapper,.getting-started__panel,.getting-started__footer{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex-grow:0}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#404040;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#9baec8}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__wrapper,.getting-started__footer{color:#404040}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:13px;color:#9baec8;padding:10px;font-weight:500;border-bottom:1px solid #202e3f}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#9baec8}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#202e3f;border:1px solid #0b1016}.setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0;border-radius:4px}.setting-text:focus{outline:0}@media screen and (max-width: 600px){.setting-text{font-size:16px}}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#404040;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#00007f}.status-card{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;color:#404040;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#d9e1e8;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}a.status-card{cursor:pointer}a.status-card:hover{background:#202e3f}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#9baec8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#9baec8}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#202e3f;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#192432}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#192432}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.load-more{display:block;color:#404040;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#151f2b}.load-gap{border-bottom:1px solid #202e3f}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#404040;background:#121a24;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#404040}.regeneration-indicator__label span{font-size:15px;font-weight:400}.column-header__wrapper{position:relative;flex:0 0 auto}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;top:35px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(0, 0, 127, 0.23) 0%, rgba(0, 0, 127, 0) 60%)}.column-header{display:flex;font-size:16px;background:#192432;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden;border-top-left-radius:2px;border-top-right-radius:2px}.column-header>button{margin:0;border:0;padding:15px 0 15px 15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#00007f}.column-header.active{box-shadow:0 1px 0 rgba(0,0,127,.3)}.column-header.active .column-header__icon{color:#00007f;text-shadow:0 0 10px rgba(0,0,127,.4)}.column-header:focus,.column-header:active{outline:0}.column-header__buttons{height:48px;display:flex}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button{background:#192432;border:0;color:#9baec8;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover{color:#b2c1d5}.column-header__button.active{color:#fff;background:#202e3f}.column-header__button.active:hover{color:#fff;background:#202e3f}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#9baec8;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #26374d;margin:10px 0}.column-header__collapsible-inner{background:#202e3f;padding:15px}.column-header__setting-btn:hover{color:#9baec8;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.column-header__icon{display:inline-block;margin-right:5px}.loading-indicator{color:#404040;font-size:13px;font-weight:400;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #3e5a7c;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#3e5a7c}29%{background-color:#3e5a7c}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.video-error-cover{align-items:center;background:#000;color:#fff;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#000;color:#9baec8;border:0;padding:0;width:100%;height:100%;border-radius:4px;appearance:none}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{padding:0;color:#b5c3d6}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:700}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:block;left:4px;top:4px;width:auto;height:auto}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(0,0,0,.5);border-radius:8px;padding:8px 12px;color:#fff;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(0,0,0,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(0,0,0,.5)}.modal-container--preloader{background:#202e3f}.account--panel{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#202e3f;padding:15px}.column-settings__section{color:#9baec8;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#a8b9cf}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#192432}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#404040;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#202e3f}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#26374d;color:#a8b9cf}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#9baec8}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#404040}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#4a4a4a}.column-settings__hashtags .column-select__indicator-separator{background-color:#202e3f}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#d9e1e8}.column-settings__hashtags .column-select__menu h4{color:#9baec8;font-size:14px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#121a24}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#121a24;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#b9c8d5}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#fff;margin-bottom:4px;display:block;vertical-align:top;background-color:#000;font-size:12px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.setting-toggle{display:block;line-height:24px}.setting-toggle__label{color:#9baec8;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.empty-column-indicator,.error-column{color:#404040;background:#121a24;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column{contain:strict}}.empty-column-indicator>span,.error-column>span{max-width:400px}.empty-column-indicator a,.error-column a{color:#00007f;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover{text-decoration:underline}.error-column{flex-direction:column}@keyframes heartbeat{from{transform:scale(1);animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.no-reduce-motion .pulse-loading{transform-origin:center center;animation:heartbeat 1.5s ease-in-out infinite both}@keyframes shake-bottom{0%,100%{transform:rotate(0deg);transform-origin:50% 100%}10%{transform:rotate(2deg)}20%,40%,60%{transform:rotate(-4deg)}30%,50%,70%{transform:rotate(4deg)}80%{transform:rotate(-2deg)}90%{transform:rotate(2deg)}}.no-reduce-motion .shake-bottom{transform-origin:50% 100%;animation:shake-bottom .8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(217,225,232,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.upload-area{align-items:center;background:rgba(0,0,0,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#121a24;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#d9e1e8;font-size:18px;font-weight:500;border:2px dashed #404040;border-radius:4px}.upload-progress{padding:10px;color:#404040;overflow:hidden;display:flex}.upload-progress .fa{font-size:34px;margin-right:10px}.upload-progress span{font-size:13px;font-weight:500;display:block}.upload-progess__message{flex:1 1 auto}.upload-progress__backdrop{width:100%;height:6px;border-radius:6px;background:#404040;position:relative;margin-top:5px}.upload-progress__tracker{position:absolute;left:0;top:0;height:6px;background:#00007f;border-radius:6px}.emoji-button{display:block;font-size:24px;line-height:24px;margin-left:2px;width:24px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px;margin-top:2px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.dropdown--active .emoji-button img{opacity:1;filter:none}.privacy-dropdown__dropdown{position:absolute;background:#fff;box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:4px;margin-left:40px;overflow:hidden}.privacy-dropdown__dropdown.top{transform-origin:50% 100%}.privacy-dropdown__dropdown.bottom{transform-origin:50% 0}.privacy-dropdown__option{color:#121a24;padding:10px;cursor:pointer;display:flex}.privacy-dropdown__option:hover,.privacy-dropdown__option.active{background:#00007f;color:#fff;outline:0}.privacy-dropdown__option:hover .privacy-dropdown__option__content,.privacy-dropdown__option.active .privacy-dropdown__option__content{color:#fff}.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,.privacy-dropdown__option.active .privacy-dropdown__option__content strong{color:#fff}.privacy-dropdown__option.active:hover{background:#000093}.privacy-dropdown__option__icon{display:flex;align-items:center;justify-content:center;margin-right:10px}.privacy-dropdown__option__content{flex:1 1 auto;color:#404040}.privacy-dropdown__option__content strong{font-weight:500;display:block;color:#121a24}.privacy-dropdown__option__content strong:lang(ja){font-weight:700}.privacy-dropdown__option__content strong:lang(ko){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-CN){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-HK){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-TW){font-weight:700}.privacy-dropdown.active .privacy-dropdown__value{background:#fff;border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1)}.privacy-dropdown.active .privacy-dropdown__value .icon-button{transition:none}.privacy-dropdown.active .privacy-dropdown__value.active{background:#00007f}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#fff}.privacy-dropdown.active.top .privacy-dropdown__value{border-radius:0 0 4px 4px}.privacy-dropdown.active .privacy-dropdown__dropdown{display:block;box-shadow:2px 4px 6px rgba(0,0,0,.1)}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#a8b9cf}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#192432}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:transform,opacity;font-size:18px;width:18px;height:18px;color:#d9e1e8;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(90deg)}.search__icon .fa-search.active{pointer-events:none;transform:rotate(0deg)}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#404040;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#525252}.search-results__header{color:#404040;background:#151f2b;padding:15px;font-weight:500;font-size:16px;cursor:default}.search-results__header .fa{display:inline-block;margin-right:5px}.search-results__section{margin-bottom:5px}.search-results__section h5{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#404040}.search-results__section h5 .fa{display:inline-block;margin-right:5px}.search-results__section .account:last-child,.search-results__section>div:last-child .status{border-bottom:0}.search-results__hashtag{display:block;padding:10px;color:#d9e1e8;text-decoration:none}.search-results__hashtag:hover,.search-results__hashtag:active,.search-results__hashtag:focus{color:#e6ebf0;text-decoration:underline}.search-results__info{padding:20px;color:#9baec8;text-align:center}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(0,0,0,.5);box-sizing:border-box;border:0;color:#fff;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#d9e1e8}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#00007f}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.onboarding-modal,.error-modal,.embed-modal{background:#d9e1e8;color:#121a24;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#c0cdd9;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#404040;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#363636;background-color:#a6b9c9}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#121a24}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#192432}.error-modal__footer{justify-content:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#121a24;margin-bottom:5px;font-size:13px}.display-case__case{background:#121a24;color:#d9e1e8;font-weight:500;padding:10px;border-radius:4px}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#f2f5f7;color:#121a24;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:block;max-width:100%;padding-right:25px}.boost-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:28px;left:10px;position:absolute;top:10px;width:48px}.boost-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#f2f5f7}.actions-modal .status{background:#fff;border-bottom-color:#d9e1e8;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#d9e1e8}.boost-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#d9e1e8;padding:10px;line-height:36px}.boost-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#404040;padding-right:10px}.boost-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header{font-size:15px}.boost-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #d9e1e8}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#00007f}.report-modal__statuses .status__content,.report-modal__statuses .status__content p,.focal-point-modal__content .status__content,.focal-point-modal__content .status__content p{color:#121a24}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #d9e1e8;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #d9e1e8;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #c0cdd9}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #d9e1e8;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#121a24;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#121a24;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#121a24;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#00007f;color:#fff}.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#404040;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#363636;background-color:transparent}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#121a24;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.loading-bar{background-color:#00007f;height:3px;position:absolute;top:0;left:0;z-index:9999}.media-gallery__gifv__label{display:block;position:absolute;color:#fff;background:rgba(0,0,0,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv.autoplay .media-gallery__gifv__label{display:none}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{margin-top:32px}.media-gallery__audio audio{width:100%}.attachment-list{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#404040;padding:8px 18px;cursor:default;border-right:1px solid #202e3f;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#404040;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#404040}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%}.media-gallery__item{border:0;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#d9e1e8;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%}.media-gallery__item-thumbnail img{object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#000}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;object-fit:cover;position:relative;top:50%;transform:translateY(-50%);width:100%;z-index:1}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#040609;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #192432;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(0,0,168,.5)}.audio-player__wave-placeholder{background-color:#2d415a}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#040609;border-top:1px solid #192432;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.video-player video{max-width:100vw;max-height:80vh;z-index:1}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#9baec8;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#b2c1d5}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#0000a8}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#0000a8;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#0000a8}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#0000a8;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#000;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#192432;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#040609;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#121a24;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #202e3f;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:0;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#0b1016;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#9baec8;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#d9e1e8}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #202e3f}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #121a24}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#0f151d;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #06090c}.filter-form{background:#121a24}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#0000a8;background:#0000a8}::-webkit-scrollbar-thumb{border-radius:0}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{color:#9baec8;font-size:14px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#121a24}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#d9e1e8;max-width:400px}noscript div a{color:#00007f;text-decoration:underline}noscript div a:hover{text-decoration:none}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}@media screen and (max-width: 630px)and (max-height: 400px){.tabs-bar,.search{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar{will-change:padding-bottom;transition:padding-bottom 400ms 100ms}.navigation-bar>a:first-child{will-change:margin-top,margin-left,margin-right,width;transition:margin-top 400ms 100ms,margin-left 400ms 500ms,margin-right 400ms 500ms}.navigation-bar>.navigation-bar__profile-edit{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar .navigation-bar__actions>.icon-button.close{will-change:opacity transform;transition:opacity 200ms 100ms,transform 400ms 100ms}.navigation-bar .navigation-bar__actions>.compose__action-bar .icon-button{will-change:opacity transform;transition:opacity 200ms 300ms,transform 400ms 100ms}.is-composing .tabs-bar,.is-composing .search{margin-top:-50px}.is-composing .navigation-bar{padding-bottom:0}.is-composing .navigation-bar>a:first-child{margin:-100px 10px 0 -50px}.is-composing .navigation-bar .navigation-bar__profile{padding-top:2px}.is-composing .navigation-bar .navigation-bar__profile-edit{position:absolute;margin-top:-60px}.is-composing .navigation-bar .navigation-bar__actions .icon-button.close{pointer-events:auto;opacity:1;transform:scale(1, 1) translate(0, 0);bottom:5px}.is-composing .navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:none;opacity:0;transform:scale(0, 1) translate(100%, 0)}}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#121a24;color:#fff;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#192432}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f}.account__moved-note__message{position:relative;margin-left:58px;color:#404040;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.column-inline-form{padding:15px;padding-right:0;display:flex;justify-content:flex-start;align-items:center;background:#192432}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 10px}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.list-editor{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#283a50;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#283a50}.list-adder__lists{background:#283a50;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #202e3f}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#fff;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.account__header__content{color:#9baec8;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#0b1016}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#192432;padding:5px;border-bottom:1px solid #26374d}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#040609;border:2px solid #192432}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #26374d;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#fff}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #26374d}.account__header__bio .account__header__fields a{color:#0000a8}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#9baec8;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#fff}.trends__header{color:#404040;background:#151f2b;border-bottom:1px solid #0b1016;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #202e3f}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#404040;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#9baec8;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#d9e1e8}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(0,0,127,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#00009e !important}.conversation{display:flex;border-bottom:1px solid #202e3f;padding:5px;padding-bottom:0}.conversation:focus{background:#151f2b;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative}.conversation__unread{display:inline-block;background:#00007f;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#9baec8;padding-left:15px}.conversation__content__names{color:#9baec8;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#fff;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content a{word-break:break-word}.conversation--unread{background:#151f2b}.conversation--unread:focus{background:#192432}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#fff}.poll{margin-top:16px;font-size:14px}.poll li{margin-bottom:10px;position:relative}.poll__chart{position:absolute;top:0;left:0;height:100%;display:inline-block;border-radius:4px;background:#6d89af}.poll__chart.leading{background:#00007f}.poll__text{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__text input[type=radio],.poll__text input[type=checkbox]{display:none}.poll__text .autossugest-input{flex:1 1 auto}.poll__text input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#121a24;outline:0;font-family:inherit;background:#fff;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px}.poll__text input[type=text]:focus{border-color:#00007f}.poll__text.selectable{cursor:pointer}.poll__text.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-width:4px;background:none}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:52px;font-weight:700;padding:0 10px;padding-left:8px;text-align:right;margin-top:auto;margin-bottom:auto;flex:0 0 52px}.poll__vote__mark{float:left;line-height:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#404040}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#404040;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(64,64,64,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #ebebeb}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #ebebeb;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#00007f}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#404040;border-color:#404040;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__text{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#121a24;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#dbdbdb}.muted .poll{color:#404040}.muted .poll__chart{background:rgba(109,137,175,.2)}.muted .poll__chart.leading{background:rgba(0,0,127,.2)}.modal-layout{background:#121a24 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.emoji-mart{font-size:13px;display:inline-block;color:#121a24}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #c0cdd9}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#d9e1e8}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#404040;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#363636}.emoji-mart-anchor-selected{color:#00007f}.emoji-mart-anchor-selected:hover{color:#00006b}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:-1px}.emoji-mart-anchor-bar{position:absolute;bottom:-5px;left:0;width:100%;height:4px;background-color:#00007f}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(217,225,232,.3);color:#121a24;border:1px solid #d9e1e8;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(217,225,232,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#9baec8}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#9baec8}.rich-formatting a{color:#00007f;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#9baec8}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#d9e1e8}.rich-formatting em{font-style:italic;color:#d9e1e8}.rich-formatting code{font-size:.85em;background:#040609;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:\"mastodon-font-display\",sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#d9e1e8}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #192432;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #192432;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#9baec8}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#404040}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#0b1016;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;line-height:28px;color:#fff;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#d9e1e8}.information-board__section strong{font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#040609;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#9baec8;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #192432;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#7a93b6}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#fff;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#9baec8}.landing-page p,.landing-page li{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#9baec8}.landing-page p a,.landing-page li a{color:#00007f;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.landing-page h1{font-family:\"mastodon-font-display\",sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h1 small{font-family:\"mastodon-font-sans-serif\",sans-serif;display:block;font-size:18px;font-weight:400;color:#bcc9da}.landing-page h2{font-family:\"mastodon-font-display\",sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h3{font-family:\"mastodon-font-display\",sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h4{font-family:\"mastodon-font-display\",sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h5{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h6{font-family:\"mastodon-font-display\",sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(64,64,64,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#121a24;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#bcc9da}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#121a24;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#d9e1e8}.landing-page__short-description h1{font-weight:500;color:#fff;margin-bottom:0}.landing-page__short-description h1 small{color:#9baec8}.landing-page__short-description h1 small span{color:#d9e1e8}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#fff;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;font-weight:700;font-size:14px;color:#9baec8}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#121a24;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:\"mastodon-font-display\",sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#9baec8}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#9baec8}.landing .simple_form p.lead{color:#9baec8;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #202e3f}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#404040}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #121a24;text-align:left;background:#0b1016}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #121a24;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#121a24}.table a{color:#00007f;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#121a24;border-top:1px solid #040609;border-bottom:1px solid #040609}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #040609}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #040609}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:\"mastodon-font-monospace\",monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#9baec8;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#fff}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #040609;background:#121a24;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #040609;border-top:0;background:#121a24}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #040609;border-top:0;background:#0b1016}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #040609}}.batch-table__row:hover{background:#0f151d}.batch-table__row:nth-child(even){background:#121a24}.batch-table__row:nth-child(even):hover{background:#151f2b}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#9baec8;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content summary{display:list-item}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #040609;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #040609}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#121a24;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#202e3f;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#fff;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#9baec8;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#26374d}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#9baec8;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#fff;background-color:#0a0e13;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#0f151d;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#0b1016;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#fff;background-color:#00007f;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#009}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #202e3f;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#d9e1e8;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#d9e1e8;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{font-size:14px;font-weight:700;color:#9baec8;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #202e3f}.admin-wrapper .content h6{font-size:16px;color:#d9e1e8;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#fff;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#fff;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:0}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#d9e1e8;margin-bottom:20px}.admin-wrapper .content>p strong{color:#fff;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(64,64,64,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #192432;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#00007f}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#9baec8}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#00007f}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#404040;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;font-size:13px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset a{display:inline-block;color:#9baec8;text-decoration:none;font-size:13px;font-weight:500;border-bottom:2px solid #121a24}.filters .filter-subset a:hover{color:#fff;border-bottom:2px solid #1b2635}.filters .filter-subset a.selected{color:#00007f;border-bottom:2px solid #00007f}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#d9e1e8}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#00007f;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{margin-bottom:20px;line-height:20px}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;padding:10px;background:#121a24;color:#9baec8;border-radius:4px 4px 0 0;font-size:14px;position:relative}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#404040}.log-entry__extras{background:#1c2938;border-radius:0 0 4px 4px;padding:10px;color:#9baec8;font-family:\"mastodon-font-monospace\",monospace;font-size:12px;word-wrap:break-word;min-height:20px}.log-entry__icon{font-size:28px;margin-right:10px;color:#404040}.log-entry__icon__overlay{position:absolute;top:10px;right:10px;width:10px;height:10px;border-radius:50%}.log-entry__icon__overlay.positive{background:#79bd9a}.log-entry__icon__overlay.negative{background:#e87487}.log-entry__icon__overlay.neutral{background:#00007f}.log-entry a,.log-entry .username,.log-entry .target{color:#d9e1e8;text-decoration:none;font-weight:500}.log-entry .diff-old{color:#e87487}.log-entry .diff-neutral{color:#d9e1e8}.log-entry .diff-new{color:#79bd9a}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#d9e1e8}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#e87487}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #00007f}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#e87487}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#9baec8}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#404040}.report-card{background:#121a24;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#9baec8;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#b5c3d6}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #0b1016}.report-card__summary__item:hover{background:#151f2b}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#9baec8}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#404040;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#9baec8}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#202e3f;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#0000a8}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#fff}.center-text{text-align:center}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#192432;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#202e3f}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#fff;font-family:\"mastodon-font-display\",sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#9baec8;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#d9e1e8;font-weight:500;text-decoration:none}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .status__avatar{left:auto;right:10px}body.rtl .status,body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:68px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(1, 1, 2, 0), #010102)}body.rtl .simple_form select{background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff);transform:scale(0.71)}@media screen and (min-width: 1300px){.column{flex-grow:1 !important;max-width:400px}.drawer{width:17%;max-width:400px;min-width:330px}}.media-gallery,.video-player{max-height:30vh;height:30vh !important;position:relative;margin-top:20px;margin-left:-68px;width:calc(100% + 80px) !important;max-width:calc(100% + 80px)}.detailed-status .media-gallery,.detailed-status .video-player{margin-left:-5px;width:calc(100% + 9px);max-width:calc(100% + 9px)}.video-player video{transform:unset;top:unset}.detailed-status .media-spoiler,.status .media-spoiler{height:100% !important;vertical-align:middle}body{font-size:13px;font-family:\"MS Sans Serif\",\"premillenium\",sans-serif;color:#000}.ui,.ui .columns-area,body.admin{background:teal}.loading-bar{height:5px;background-color:navy}.tabs-bar{background:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;height:30px}.tabs-bar__link{color:#000;border:2px outset #bfbfbf;border-top-width:1px;border-left-width:1px;margin:2px;padding:3px}.tabs-bar__link.active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px;color:#000}.tabs-bar__link:last-child::before{content:\"Start\";color:#000;font-weight:bold;font-size:15px;width:80%;display:block;position:absolute;right:0px}.tabs-bar__link:last-child{position:relative;flex-basis:60px !important;font-size:0px;color:#bfbfbf;background-image:url(\"~images/start.png\");background-repeat:no-repeat;background-position:8%;background-clip:padding-box;background-size:auto 50%}.drawer .drawer__inner{overflow:visible;height:inherit;background:#bfbfbf}.drawer:after{display:block;content:\" \";position:absolute;bottom:15px;left:15px;width:132px;height:117px;background-image:url(\"~images/clippy_wave.gif\"),url(\"~images/clippy_frame.png\");background-repeat:no-repeat;background-position:4px 20px,0px 0px;z-index:0}.drawer__pager{overflow-y:auto;z-index:1}.privacy-dropdown__dropdown{z-index:2}.column{max-height:100vh}.column>.scrollable{background:#bfbfbf;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;border-top-width:0px}.column-header__wrapper{color:#fff;font-weight:bold;background:#7f7f7f}.column-header{padding:2px;font-size:13px;background:#7f7f7f;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;border-bottom-width:0px;color:#fff;font-weight:bold;align-items:baseline}.column-header__wrapper.active{background:#00007f}.column-header__wrapper.active::before{display:none}.column-header.active{box-shadow:unset;background:#00007f}.column-header.active .column-header__icon{color:#fff}.column-header__buttons{max-height:20px;margin-right:0px}.column-header__button{background:#bfbfbf;color:#000;line-height:0px;font-size:14px;max-height:20px;padding:0px 2px;margin-top:2px;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px}.column-header__button:hover{color:#000}.column-header__button.active,.column-header__button.active:hover{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px;background-color:#7f7f7f}.column-header__back-button{background:#bfbfbf;color:#000;padding:2px;max-height:20px;margin-top:2px;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;font-size:13px;font-weight:bold}.column-back-button{background:#bfbfbf;color:#000;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;padding:2px;font-size:13px;font-weight:bold}.column-back-button--slim-button{position:absolute;top:-22px;right:4px;max-height:20px;max-width:60px;padding:0px 2px}.column-back-button__icon{font-size:11px;margin-top:-3px}.column-header__collapsible{border-left:2px outset #bfbfbf;border-right:2px outset #bfbfbf}.column-header__collapsible-inner{background:#bfbfbf;color:#000}.column-header__collapsible__extra{color:#000}.column-header__collapsible__extra div[role=group]{border:2px groove #bfbfbf;border-radius:4px;margin-bottom:8px;padding:4px}.column-inline-form{background-color:#bfbfbf;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;border-bottom-width:0px;border-top-width:0px}.column-settings__section{color:#000;font-weight:bold;font-size:11px;position:relative;top:-12px;left:4px;background-color:#bfbfbf;display:inline-block;padding:0px 4px;margin-bottom:0px}.setting-meta__label,.setting-toggle__label{color:#000;font-weight:normal}.setting-meta__label span:before{content:\"(\"}.setting-meta__label span:after{content:\")\"}.setting-toggle{line-height:13px}.react-toggle .react-toggle-track{border-radius:0px;background-color:#fff;border-left:2px solid #404040;border-top:2px solid #404040;border-right:2px solid #efefef;border-bottom:2px solid #efefef;border-radius:0px;width:12px;height:12px}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#fff}.react-toggle .react-toggle-track-check{left:2px;transition:unset}.react-toggle .react-toggle-track-check svg path{fill:#000}.react-toggle .react-toggle-track-x{display:none}.react-toggle .react-toggle-thumb{border-radius:0px;display:none}.text-btn{background-color:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;padding:4px}.text-btn:hover{text-decoration:none;color:#000}.text-btn:active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.setting-text{color:#000;background-color:#fff;box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px;font-size:13px;padding:2px}.setting-text:active,.setting-text:focus,.setting-text.light:active,.setting-text.light:focus{color:#000;border-bottom:2px inset #bfbfbf}.column-header__setting-arrows .column-header__setting-btn{padding:3px 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding:3px 10px}.missing-indicator{background-color:#bfbfbf;color:#000;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px}.missing-indicator>div{background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRUaXRsZQAACJnLyy9Jyy/NSwEAD5IDblIFOhoAAAAXelRYdEF1dGhvcgAACJlLzijKz0vMAQALmgLoDsFj8gAAAQpJREFUOMuVlD0OwjAMhd2oQl04Axfo0IGBgYELcAY6cqQuSO0ZOEAZGBg6VKg74gwsEaoESRVHjusI8aQqzY8/PbtOEz1qkFSn2YevlaNOpLMJh2DwvixhuXtOa6/LCh51DUMEFkAsgAZD207Doin8mQ562JpRE5CHBAAhmIqD1L8AqzUUUJkxc6kr3AgAJ+NuvIWRdk7WcrKl0AUqcIBBHOiEbpS4m27mIL5Onfg3k0rgggeQuS2sDOGSahKR+glgqaGLgUJs951NN1q9D72cQqQWR9cr3sm9YcEssEuz6eEuZh2bu0aSOhQ1MBezu2O/+TVSvEFII3qLsZWrSA2AAUQIh1HpyP/kC++zjVSMj6ntAAAAAElFTkSuQmCC\") no-repeat;background-position:center center}.empty-column-indicator,.error-column{background:#bfbfbf;color:#000}.status__wrapper{border:2px groove #bfbfbf;margin:4px}.status{border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px;background-color:#fff;margin:4px;padding-bottom:40px;margin-bottom:8px}.status.status-direct{background-color:#bfbfbf}.status__content{font-size:13px}.status.light .status__relative-time,.status.light .display-name span{color:#7f7f7f}.status__action-bar{box-sizing:border-box;position:absolute;bottom:-1px;left:-1px;background:#bfbfbf;width:calc(100% + 2px);padding-left:10px;padding:4px 2px;padding-bottom:4px;border-bottom:2px groove #bfbfbf;border-top:1px outset #bfbfbf;text-align:right}.status__wrapper .status__action-bar{border-bottom-width:0px}.status__action-bar-button{float:right}.status__action-bar-dropdown{margin-left:auto;margin-right:10px}.status__action-bar-dropdown .icon-button{min-width:28px}.status.light .status__content a{color:blue}.focusable:focus{background:#bfbfbf}.focusable:focus .detailed-status__action-bar{background:#bfbfbf}.focusable:focus .status,.focusable:focus .detailed-status{background:#fff;outline:2px dotted gray}.dropdown__trigger.icon-button{padding-right:6px}.detailed-status__action-bar-dropdown .icon-button{min-width:28px}.detailed-status{background:#fff;background-clip:padding-box;margin:4px;border:2px groove #bfbfbf;padding:4px}.detailed-status__display-name{color:#7f7f7f}.detailed-status__display-name strong{color:#000;font-weight:bold}.account__avatar,.account__avatar-overlay-base,.account__header__avatar,.account__avatar-overlay-overlay{border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px;clip-path:none;filter:saturate(1.8) brightness(1.1)}.detailed-status__action-bar{background-color:#bfbfbf;border:0px;border-bottom:2px groove #bfbfbf;margin-bottom:8px;justify-items:left;padding-left:4px}.icon-button{background:#bfbfbf;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;padding:0px 0px 0px 0px;margin-right:4px;color:#3f3f3f}.icon-button.inverted,.icon-button:hover,.icon-button.inverted:hover,.icon-button:active,.icon-button:focus{color:#3f3f3f}.icon-button:active{border-left:2px solid #404040;border-top:2px solid #404040;border-right:2px solid #efefef;border-bottom:2px solid #efefef;border-radius:0px}.status__action-bar>.icon-button{padding:0px 15px 0px 0px;min-width:25px}.icon-button.star-icon,.icon-button.star-icon:active{background:transparent;border:none}.icon-button.star-icon.active{color:#ca8f04}.icon-button.star-icon.active:active,.icon-button.star-icon.active:hover,.icon-button.star-icon.active:focus{color:#ca8f04}.icon-button.star-icon>i{background:#bfbfbf;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;padding-bottom:3px}.icon-button.star-icon:active>i{border-left:2px solid #404040;border-top:2px solid #404040;border-right:2px solid #efefef;border-bottom:2px solid #efefef;border-radius:0px}.text-icon-button{color:#404040}.detailed-status__action-bar-dropdown{margin-left:auto;justify-content:right;padding-right:16px}.detailed-status__button{flex:0 0 auto}.detailed-status__button .icon-button{padding-left:2px;padding-right:25px}.status-card{border-radius:0px;background:#fff;border:1px solid #000;color:#000}.status-card:hover{background-color:#fff}.status-card__title{color:blue;text-decoration:underline;font-weight:bold}.load-more{width:auto;margin:5px auto;background:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;color:#000;padding:2px 5px}.load-more:hover{background:#bfbfbf;color:#000}.status-card__description{color:#000}.account__display-name strong,.status__display-name strong{color:#000;font-weight:bold}.account .account__display-name{color:#000}.account{border-bottom:2px groove #bfbfbf}.reply-indicator__content .status__content__spoiler-link,.status__content .status__content__spoiler-link{background:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px}.reply-indicator__content .status__content__spoiler-link:hover,.status__content .status__content__spoiler-link:hover{background:#bfbfbf}.reply-indicator__content .status__content__spoiler-link:active,.status__content .status__content__spoiler-link:active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.reply-indicator__content a,.status__content a{color:blue}.notification{border:2px groove #bfbfbf;margin:4px}.notification__message{color:#000;font-size:13px}.notification__display-name{font-weight:bold}.drawer__header{background:#bfbfbf;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;justify-content:left;margin-bottom:0px;padding-bottom:2px;border-bottom:2px groove #bfbfbf}.drawer__tab{color:#000;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;padding:5px;margin:2px;flex:0 0 auto}.drawer__tab:first-child::before{content:\"Start\";color:#000;font-weight:bold;font-size:15px;width:80%;display:block;position:absolute;right:0px}.drawer__tab:first-child{position:relative;padding:5px 15px;width:40px;font-size:0px;color:#bfbfbf;background-image:url(\"~images/start.png\");background-repeat:no-repeat;background-position:8%;background-clip:padding-box;background-size:auto 50%}.drawer__header a:hover{background-color:transparent}.drawer__header a:first-child:hover{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAIAAACpTQvdAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRBdXRob3IAAAiZS84oys9LzAEAC5oC6A7BY/IAAACWSURBVCiRhVJJDsQgDEuqOfRZ7a1P5gbP4uaJaEjTADMWQhHYjlk4p0wLnNdptdF4KvBUDyGzVwc2xO+uKtH+1o0ytEEmqFpuxlvFCGCxKbNIT56QCi2MzaA/2Mz+mERSOeqzJG2RUxkjdTabgPtFoZ1bZxcKvgPcLZVufAyR9Ni8v5dWDzfFx0giC1RvZFv6l35QQ/Mvv39XXgGzQpoAAAAASUVORK5CYII=\");background-repeat:no-repeat;background-position:8%;background-clip:padding-box;background-size:auto 50%;transition:unset}.search{background:#bfbfbf;padding-top:2px;padding:2px;border:2px outset #bfbfbf;border-top-width:0px;border-bottom:2px groove #bfbfbf;margin-bottom:0px}.search input{background-color:#fff;color:#000;border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px}.search__input:focus{background-color:#fff}.search-popout{box-shadow:unset;color:#000;border-radius:0px;background-color:#ffc;border:1px solid #000}.search-popout h4{color:#000;text-transform:none;font-weight:bold}.search-results__header{background-color:#bfbfbf;color:#000;border-bottom:2px groove #bfbfbf}.search-results__hashtag{color:blue}.search-results__section .account:hover,.search-results__section .account:hover .account__display-name,.search-results__section .account:hover .account__display-name strong,.search-results__section .search-results__hashtag:hover{background-color:#00007f;color:#fff}.search__icon .fa{color:gray}.search__icon .fa.active{opacity:1}.search__icon .fa:hover{color:gray}.drawer__inner,.drawer__inner.darker{background-color:#bfbfbf;border:2px outset #bfbfbf;border-top-width:0px}.navigation-bar{color:#000}.navigation-bar strong{color:#000;font-weight:bold}.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{border-radius:0px;border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px}.compose-form .autosuggest-textarea__textarea{border-bottom:0px}.compose-form__uploads-wrapper{border-radius:0px;border-bottom:1px inset #bfbfbf;border-top-width:0px}.compose-form__upload-wrapper{border-left:1px inset #bfbfbf;border-right:1px inset #bfbfbf}.compose-form .compose-form__buttons-wrapper{background-color:#bfbfbf;border:2px groove #bfbfbf;margin-top:4px;padding:4px 8px}.compose-form__buttons{background-color:#bfbfbf;border-radius:0px;box-shadow:unset}.compose-form__buttons-separator{border-left:2px groove #bfbfbf}.privacy-dropdown.active .privacy-dropdown__value.active,.advanced-options-dropdown.open .advanced-options-dropdown__value{background:#bfbfbf}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#404040}.privacy-dropdown.active .privacy-dropdown__value{background:#bfbfbf;box-shadow:unset}.privacy-dropdown__option.active,.privacy-dropdown__option:hover,.privacy-dropdown__option.active:hover{background:#00007f}.privacy-dropdown__dropdown,.privacy-dropdown.active .privacy-dropdown__dropdown,.advanced-options-dropdown__dropdown,.advanced-options-dropdown.open .advanced-options-dropdown__dropdown{box-shadow:unset;color:#000;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;background:#bfbfbf}.privacy-dropdown__option__content{color:#000}.privacy-dropdown__option__content strong{font-weight:bold}.compose-form__warning::before{content:\"Tip:\";font-weight:bold;display:block;position:absolute;top:-10px;background-color:#bfbfbf;font-size:11px;padding:0px 5px}.compose-form__warning{position:relative;box-shadow:unset;border:2px groove #bfbfbf;background-color:#bfbfbf;color:#000}.compose-form__warning a{color:blue}.compose-form__warning strong{color:#000;text-decoration:underline}.compose-form__buttons button.active:last-child{border-left:2px solid #404040;border-top:2px solid #404040;border-right:2px solid #efefef;border-bottom:2px solid #efefef;border-radius:0px;background:#dfdfdf;color:#7f7f7f}.compose-form__upload-thumbnail{border-radius:0px;border:2px groove #bfbfbf;background-color:#bfbfbf;padding:2px;box-sizing:border-box}.compose-form__upload-thumbnail .icon-button{max-width:20px;max-height:20px;line-height:10px !important}.compose-form__upload-thumbnail .icon-button::before{content:\"X\";font-size:13px;font-weight:bold;color:#000}.compose-form__upload-thumbnail .icon-button i{display:none}.emoji-picker-dropdown__menu{z-index:2}.emoji-dialog.with-search{box-shadow:unset;border-radius:0px;background-color:#bfbfbf;border:1px solid #000;box-sizing:content-box}.emoji-dialog .emoji-search{color:#000;background-color:#fff;border-radius:0px;box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.emoji-dialog .emoji-search-wrapper{border-bottom:2px groove #bfbfbf}.emoji-dialog .emoji-category-title{color:#000;font-weight:bold}.reply-indicator{background-color:#bfbfbf;border-radius:3px;border:2px groove #bfbfbf}.button{background-color:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;border-radius:0px;color:#000;font-weight:bold}.button:hover,.button:focus,.button:disabled{background-color:#bfbfbf}.button:active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.button:disabled{color:gray;text-shadow:1px 1px 0px #efefef}.button:disabled:active{box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px}#Getting-started{background-color:#bfbfbf;box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px;border-bottom-width:0px}#Getting-started::before{content:\"Start\";color:#000;font-weight:bold;font-size:15px;width:80%;text-align:center;display:block;position:absolute;right:2px}#Getting-started{position:relative;padding:5px 15px;width:60px;font-size:0px;color:#bfbfbf;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAIAAACpTQvdAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRBdXRob3IAAAiZS84oys9LzAEAC5oC6A7BY/IAAACWSURBVCiRhVJJDsQgDEuqOfRZ7a1P5gbP4uaJaEjTADMWQhHYjlk4p0wLnNdptdF4KvBUDyGzVwc2xO+uKtH+1o0ytEEmqFpuxlvFCGCxKbNIT56QCi2MzaA/2Mz+mERSOeqzJG2RUxkjdTabgPtFoZ1bZxcKvgPcLZVufAyR9Ni8v5dWDzfFx0giC1RvZFv6l35QQ/Mvv39XXgGzQpoAAAAASUVORK5CYII=\");background-repeat:no-repeat;background-position:8%;background-clip:padding-box;background-size:auto 50%}.column-subheading{background-color:#bfbfbf;color:#000;border-bottom:2px groove #bfbfbf;text-transform:none;font-size:16px}.column-link{background-color:transparent;color:#000}.column-link:hover{background-color:#00007f;color:#fff}.getting-started__wrapper .column-subheading{font-size:0px;margin:0px;padding:0px}.getting-started__wrapper .column-link{background-size:32px 32px;background-repeat:no-repeat;background-position:36px 50%;padding-left:40px}.getting-started__wrapper .column-link:hover{background-size:32px 32px;background-repeat:no-repeat;background-position:36px 50%}.getting-started__wrapper .column-link i{font-size:0px;width:32px}.column-link[href=\"/web/timelines/public\"]{background-image:url(\"~images/icon_public.png\")}.column-link[href=\"/web/timelines/public\"]:hover{background-image:url(\"~images/icon_public.png\")}.column-link[href=\"/web/timelines/public/local\"]{background-image:url(\"~images/icon_local.png\")}.column-link[href=\"/web/timelines/public/local\"]:hover{background-image:url(\"~images/icon_local.png\")}.column-link[href=\"/web/pinned\"]{background-image:url(\"~images/icon_pin.png\")}.column-link[href=\"/web/pinned\"]:hover{background-image:url(\"~images/icon_pin.png\")}.column-link[href=\"/web/favourites\"]{background-image:url(\"~images/icon_likes.png\")}.column-link[href=\"/web/favourites\"]:hover{background-image:url(\"~images/icon_likes.png\")}.column-link[href=\"/web/lists\"]{background-image:url(\"~images/icon_lists.png\")}.column-link[href=\"/web/lists\"]:hover{background-image:url(\"~images/icon_lists.png\")}.column-link[href=\"/web/follow_requests\"]{background-image:url(\"~images/icon_follow_requests.png\")}.column-link[href=\"/web/follow_requests\"]:hover{background-image:url(\"~images/icon_follow_requests.png\")}.column-link[href=\"/web/keyboard-shortcuts\"]{background-image:url(\"~images/icon_keyboard_shortcuts.png\")}.column-link[href=\"/web/keyboard-shortcuts\"]:hover{background-image:url(\"~images/icon_keyboard_shortcuts.png\")}.column-link[href=\"/web/blocks\"]{background-image:url(\"~images/icon_blocks.png\")}.column-link[href=\"/web/blocks\"]:hover{background-image:url(\"~images/icon_blocks.png\")}.column-link[href=\"/web/mutes\"]{background-image:url(\"~images/icon_mutes.png\")}.column-link[href=\"/web/mutes\"]:hover{background-image:url(\"~images/icon_mutes.png\")}.column-link[href=\"/settings/preferences\"]{background-image:url(\"~images/icon_settings.png\")}.column-link[href=\"/settings/preferences\"]:hover{background-image:url(\"~images/icon_settings.png\")}.column-link[href=\"/about/more\"]{background-image:url(\"~images/icon_about.png\")}.column-link[href=\"/about/more\"]:hover{background-image:url(\"~images/icon_about.png\")}.column-link[href=\"/auth/sign_out\"]{background-image:url(\"~images/icon_logout.png\")}.column-link[href=\"/auth/sign_out\"]:hover{background-image:url(\"~images/icon_logout.png\")}.getting-started__footer{display:none}.getting-started__wrapper::before{content:\"Mastodon 95\";font-weight:bold;font-size:23px;color:#fff;line-height:30px;padding-left:20px;padding-right:40px;left:0px;bottom:-30px;display:block;position:absolute;background-color:#7f7f7f;width:200%;height:30px;-ms-transform:rotate(-90deg);-webkit-transform:rotate(-90deg);transform:rotate(-90deg);transform-origin:top left}.getting-started__wrapper{border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;background-color:#bfbfbf}.column .static-content.getting-started{display:none}.keyboard-shortcuts kbd{background-color:#bfbfbf}.account__header{background-color:#7f7f7f}.account__header .account__header__content{color:#fff}.account-authorize__wrapper{border:2px groove #bfbfbf;margin:2px;padding:2px}.account--panel{background-color:#bfbfbf;border:0px;border-top:2px groove #bfbfbf}.account-authorize .account__header__content{color:#000;margin:10px}.account__action-bar__tab>span{color:#000;font-weight:bold}.account__action-bar__tab strong{color:#000}.account__action-bar{border:unset}.account__action-bar__tab{border:1px outset #bfbfbf}.account__action-bar__tab:active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.dropdown--active .dropdown__content>ul,.dropdown-menu{background:#ffc;border-radius:0px;border:1px solid #000;box-shadow:unset}.dropdown-menu a{background-color:transparent}.dropdown--active::after{display:none}.dropdown--active .icon-button{color:#000;box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.dropdown--active .dropdown__content>ul>li>a{background:transparent}.dropdown--active .dropdown__content>ul>li>a:hover{background:transparent;color:#000;text-decoration:underline}.dropdown__sep,.dropdown-menu__separator{border-color:#7f7f7f}.detailed-status__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__left{left:unset}.dropdown>.icon-button,.detailed-status__button>.icon-button,.status__action-bar>.icon-button,.star-icon i{height:25px !important;width:28px !important;box-sizing:border-box}.status__action-bar-button .fa-floppy-o{padding-top:2px}.status__action-bar-dropdown{position:relative;top:-3px}.detailed-status__action-bar-dropdown .dropdown{position:relative;top:-4px}.notification .status__action-bar{border-bottom:none}.notification .status{margin-bottom:4px}.status__wrapper .status{margin-bottom:3px}.status__wrapper{margin-bottom:8px}.icon-button .fa-retweet{position:relative;top:-1px}.embed-modal,.error-modal,.onboarding-modal,.actions-modal,.boost-modal,.confirmation-modal,.report-modal{box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;background:#bfbfbf}.actions-modal::before,.boost-modal::before,.confirmation-modal::before,.report-modal::before{content:\"Confirmation\";display:block;background:#00007f;color:#fff;font-weight:bold;padding-left:2px}.boost-modal::before{content:\"Boost confirmation\"}.boost-modal__action-bar>div>span:before{content:\"Tip: \";font-weight:bold}.boost-modal__action-bar,.confirmation-modal__action-bar,.report-modal__action-bar{background:#bfbfbf;margin-top:-15px}.embed-modal h4,.error-modal h4,.onboarding-modal h4{background:#00007f;color:#fff;font-weight:bold;padding:2px;font-size:13px;text-align:left}.confirmation-modal__action-bar .confirmation-modal__cancel-button{color:#000}.confirmation-modal__action-bar .confirmation-modal__cancel-button:active,.confirmation-modal__action-bar .confirmation-modal__cancel-button:focus,.confirmation-modal__action-bar .confirmation-modal__cancel-button:hover{color:#000}.confirmation-modal__action-bar .confirmation-modal__cancel-button:active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.embed-modal .embed-modal__container .embed-modal__html,.embed-modal .embed-modal__container .embed-modal__html:focus{background:#fff;color:#000;box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.modal-root__overlay,.account__header>div{background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAFnpUWHRUaXRsZQAACJnLzU9JzElKBwALgwLXaCRlPwAAABd6VFh0QXV0aG9yAAAImUvOKMrPS8wBAAuaAugOwWPyAAAAEUlEQVQImWNgYGD4z4AE/gMADwMB/414xEUAAAAASUVORK5CYII=\")}.admin-wrapper::before{position:absolute;top:0px;content:\"Control Panel\";color:#fff;background-color:#00007f;font-size:13px;font-weight:bold;width:calc(100%);margin:2px;display:block;padding:2px;padding-left:22px;box-sizing:border-box}.admin-wrapper{position:relative;background:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;width:70vw;height:80vh;margin:10vh auto;color:#000;padding-top:24px;flex-direction:column;overflow:hidden}@media screen and (max-width: 1120px){.admin-wrapper{width:90vw;height:95vh;margin:2.5vh auto}}@media screen and (max-width: 740px){.admin-wrapper{width:100vw;height:95vh;height:calc(100vh - 24px);margin:0px 0px 0px 0px}}.admin-wrapper .sidebar-wrapper{position:static;height:auto;flex:0 0 auto;margin:2px}.admin-wrapper .content-wrapper{flex:1 1 auto;width:calc(100% - 20px);border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;position:relative;margin-left:10px;margin-right:10px;margin-bottom:40px;box-sizing:border-box}.admin-wrapper .content{background-color:#bfbfbf;width:100%;max-width:100%;min-height:100%;box-sizing:border-box;position:relative}.admin-wrapper .sidebar{position:static;background:#bfbfbf;color:#000;width:100%;height:auto;padding-bottom:20px}.admin-wrapper .sidebar .logo{position:absolute;top:2px;left:4px;width:18px;height:18px;margin:0px}.admin-wrapper .sidebar>ul{background:#bfbfbf;margin:0px;margin-left:8px;color:#000}.admin-wrapper .sidebar>ul>li{display:inline-block}.admin-wrapper .sidebar>ul>li#settings,.admin-wrapper .sidebar>ul>li#admin{padding:2px;border:0px solid transparent}.admin-wrapper .sidebar>ul>li#logout{position:absolute;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;right:12px;bottom:10px}.admin-wrapper .sidebar>ul>li#web{display:inline-block;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;position:absolute;left:12px;bottom:10px}.admin-wrapper .sidebar>ul>li>a{display:inline-block;box-shadow:inset -1px 0px 0px #000,inset 1px 0px 0px #fff,inset 0px 1px 0px #fff,inset 0px 2px 0px #dfdfdf,inset -2px 0px 0px gray,inset 2px 0px 0px #dfdfdf;border-radius:0px;border-top-left-radius:1px;border-top-right-radius:1px;padding:2px 5px;margin:0px;color:#000;vertical-align:baseline}.admin-wrapper .sidebar>ul>li>a.selected{background:#bfbfbf;color:#000;padding-top:4px;padding-bottom:4px}.admin-wrapper .sidebar>ul>li>a:hover{background:#bfbfbf;color:#000}.admin-wrapper .sidebar>ul>li>ul{width:calc(100% - 20px);background:transparent;position:absolute;left:10px;top:54px;z-index:3}.admin-wrapper .sidebar>ul>li>ul>li{background:#bfbfbf;display:inline-block;vertical-align:baseline}.admin-wrapper .sidebar>ul>li>ul>li>a{background:#bfbfbf;box-shadow:inset -1px 0px 0px #000,inset 1px 0px 0px #fff,inset 0px 1px 0px #fff,inset 0px 2px 0px #dfdfdf,inset -2px 0px 0px gray,inset 2px 0px 0px #dfdfdf;border-radius:0px;border-top-left-radius:1px;border-top-right-radius:1px;color:#000;padding:2px 5px;position:relative;z-index:3}.admin-wrapper .sidebar>ul>li>ul>li>a.selected{background:#bfbfbf;color:#000;padding-bottom:4px;padding-top:4px;padding-right:7px;margin-left:-2px;margin-right:-2px;position:relative;z-index:4}.admin-wrapper .sidebar>ul>li>ul>li>a.selected:first-child{margin-left:0px}.admin-wrapper .sidebar>ul>li>ul>li>a.selected:hover{background:transparent;color:#000}.admin-wrapper .sidebar>ul>li>ul>li>a:hover{background:#bfbfbf;color:#000}@media screen and (max-width: 1520px){.admin-wrapper .sidebar>ul>li>ul{max-width:1000px}.admin-wrapper .sidebar{padding-bottom:45px}}@media screen and (max-width: 600px){.admin-wrapper .sidebar>ul>li>ul{max-width:500px}.admin-wrapper .sidebar{padding:0px;padding-bottom:70px;width:100%;height:auto}.admin-wrapper .content-wrapper{overflow:auto;height:80%;height:calc(100% - 150px)}}.flash-message{background-color:#ffc;color:#000;border:1px solid #000;border-radius:0px;position:absolute;top:0px;left:0px;width:100%}.admin-wrapper table{background-color:#fff;border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px}.admin-wrapper .content h2,.simple_form .input.with_label .label_input>label,.admin-wrapper .content h6,.admin-wrapper .content>p,.admin-wrapper .content .muted-hint,.simple_form span.hint,.simple_form h4,.simple_form .check_boxes .checkbox label,.simple_form .input.with_label.boolean .label_input>label,.filters .filter-subset a,.simple_form .input.radio_buttons .radio label,a.table-action-link,a.table-action-link:hover,.simple_form .input.with_block_label>label,.simple_form p.hint{color:#000}.table>tbody>tr:nth-child(2n+1)>td,.table>tbody>tr:nth-child(2n+1)>th{background-color:#fff}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{color:#000;background-color:#fff;border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{background-color:#fff}.simple_form button,.simple_form .button,.simple_form .block-button{background:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;color:#000;font-weight:normal}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background:#bfbfbf}.simple_form .warning,.table-form .warning{background:#ffc;color:#000;box-shadow:unset;text-shadow:unset;border:1px solid #000}.simple_form .warning a,.table-form .warning a{color:blue;text-decoration:underline}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#bfbfbf}.filters .filter-subset{border:2px groove #bfbfbf;padding:2px}.filters .filter-subset a::before{content:\"\";background-color:#fff;border-radius:50%;border:2px solid #000;border-top-color:#7f7f7f;border-left-color:#7f7f7f;border-bottom-color:#f5f5f5;border-right-color:#f5f5f5;width:12px;height:12px;display:inline-block;vertical-align:middle;margin-right:2px}.filters .filter-subset a.selected::before{background-color:#000;box-shadow:inset 0 0 0 3px #fff}.filters .filter-subset a,.filters .filter-subset a:hover,.filters .filter-subset a.selected{color:#000;border-bottom:0px solid transparent}","// win95 theme from cybrespace.\n\n// Modified by kibi! to use webpack package syntax for urls (eg,\n// `url(~images/…)`) for easy importing into skins.\n\n$win95-bg: #bfbfbf;\n$win95-dark-grey: #404040;\n$win95-mid-grey: #808080;\n$win95-window-header: #00007f;\n$win95-tooltip-yellow: #ffffcc;\n$win95-blue: blue;\n\n$ui-base-lighter-color: $win95-dark-grey;\n$ui-highlight-color: $win95-window-header;\n\n@mixin win95-border-outset() {\n border-left: 2px solid #efefef;\n border-top: 2px solid #efefef;\n border-right: 2px solid #404040;\n border-bottom: 2px solid #404040;\n border-radius:0px;\n}\n\n@mixin win95-outset() {\n box-shadow: inset -1px -1px 0px #000000,\n inset 1px 1px 0px #ffffff,\n inset -2px -2px 0px #808080,\n inset 2px 2px 0px #dfdfdf;\n border-radius:0px;\n}\n\n@mixin win95-border-inset() {\n border-left: 2px solid #404040;\n border-top: 2px solid #404040;\n border-right: 2px solid #efefef;\n border-bottom: 2px solid #efefef;\n border-radius:0px;\n}\n\n@mixin win95-border-slight-inset() {\n border-left: 1px solid #404040;\n border-top: 1px solid #404040;\n border-right: 1px solid #efefef;\n border-bottom: 1px solid #efefef;\n border-radius:0px;\n}\n\n@mixin win95-inset() {\n box-shadow: inset 1px 1px 0px #000000,\n inset -1px -1px 0px #ffffff,\n inset 2px 2px 0px #808080,\n inset -2px -2px 0px #dfdfdf;\n border-width:0px;\n border-radius:0px;\n}\n\n@mixin win95-tab() {\n box-shadow: inset -1px 0px 0px #000000,\n inset 1px 0px 0px #ffffff,\n inset 0px 1px 0px #ffffff,\n inset 0px 2px 0px #dfdfdf,\n inset -2px 0px 0px #808080,\n inset 2px 0px 0px #dfdfdf;\n border-radius:0px;\n border-top-left-radius: 1px;\n border-top-right-radius: 1px;\n}\n\n@mixin win95-reset() {\n box-shadow: unset;\n}\n\n@font-face {\n font-family:\"premillenium\";\n src: url('~fonts/premillenium/MSSansSerif.ttf') format('truetype');\n}\n\n@import 'application';\n\n/* borrowed from cybrespace style: wider columns and full column width images */\n\n@media screen and (min-width: 1300px) {\n .column {\n flex-grow: 1 !important;\n max-width: 400px;\n }\n\n .drawer {\n width: 17%;\n max-width: 400px;\n min-width: 330px;\n }\n}\n\n.media-gallery,\n.video-player {\n max-height:30vh;\n height:30vh !important;\n position:relative;\n margin-top:20px;\n margin-left:-68px;\n width: calc(100% + 80px) !important;\n max-width: calc(100% + 80px);\n}\n\n.detailed-status .media-gallery,\n.detailed-status .video-player {\n margin-left:-5px;\n width: calc(100% + 9px);\n max-width: calc(100% + 9px);\n}\n\n.video-player video {\n transform: unset;\n top: unset;\n}\n\n.detailed-status .media-spoiler,\n.status .media-spoiler {\n height: 100%!important;\n vertical-align: middle;\n}\n\n/* main win95 style */\n\nbody {\n font-size:13px;\n font-family: \"MS Sans Serif\", \"premillenium\", sans-serif;\n color:black;\n}\n\n.ui,\n.ui .columns-area,\nbody.admin {\n background: #008080;\n}\n\n.loading-bar {\n height:5px;\n background-color: #000080;\n}\n\n.tabs-bar {\n background: $win95-bg;\n @include win95-outset();\n height: 30px;\n}\n\n.tabs-bar__link {\n color:black;\n border:2px outset $win95-bg;\n border-top-width: 1px;\n border-left-width: 1px;\n margin:2px;\n padding:3px;\n}\n\n.tabs-bar__link.active {\n @include win95-inset();\n color:black;\n}\n\n.tabs-bar__link:last-child::before {\n content:\"Start\";\n color:black;\n font-weight:bold;\n font-size:15px;\n width:80%;\n display:block;\n position:absolute;\n right:0px;\n}\n\n.tabs-bar__link:last-child {\n position:relative;\n flex-basis:60px !important;\n font-size:0px;\n color:$win95-bg;\n\n background-image: url(\"~images/start.png\");\n background-repeat:no-repeat;\n background-position:8%;\n background-clip:padding-box;\n background-size:auto 50%;\n}\n\n.drawer .drawer__inner {\n overflow: visible;\n height:inherit;\n background:$win95-bg;\n}\n\n.drawer:after {\n display:block;\n content: \" \";\n\n position:absolute;\n bottom:15px;\n left:15px;\n width:132px;\n height:117px;\n background-image:url(\"~images/clippy_wave.gif\"), url(\"~images/clippy_frame.png\");\n background-repeat:no-repeat;\n background-position: 4px 20px, 0px 0px;\n z-index:0;\n}\n\n.drawer__pager {\n overflow-y:auto;\n z-index:1;\n}\n\n.privacy-dropdown__dropdown {\n z-index:2;\n}\n\n.column {\n max-height:100vh;\n}\n\n.column > .scrollable {\n background: $win95-bg;\n @include win95-border-outset();\n border-top-width:0px;\n}\n\n.column-header__wrapper {\n color:white;\n font-weight:bold;\n background:#7f7f7f;\n}\n\n.column-header {\n padding:2px;\n font-size:13px;\n background:#7f7f7f;\n @include win95-border-outset();\n border-bottom-width:0px;\n color:white;\n font-weight:bold;\n align-items:baseline;\n}\n\n.column-header__wrapper.active {\n background:$win95-window-header;\n}\n\n.column-header__wrapper.active::before {\n display:none;\n}\n.column-header.active {\n box-shadow:unset;\n background:$win95-window-header;\n}\n\n.column-header.active .column-header__icon {\n color:white;\n}\n\n.column-header__buttons {\n max-height: 20px;\n margin-right:0px;\n}\n\n.column-header__button {\n background: $win95-bg;\n color: black;\n line-height:0px;\n font-size:14px;\n max-height:20px;\n padding:0px 2px;\n margin-top:2px;\n @include win95-outset();\n\n &:hover {\n color: black;\n }\n}\n\n.column-header__button.active, .column-header__button.active:hover {\n @include win95-inset();\n background-color:#7f7f7f;\n}\n\n.column-header__back-button {\n background: $win95-bg;\n color: black;\n padding:2px;\n max-height:20px;\n margin-top:2px;\n @include win95-outset();\n font-size:13px;\n font-weight:bold;\n}\n\n.column-back-button {\n background:$win95-bg;\n color:black;\n @include win95-outset();\n padding:2px;\n font-size:13px;\n font-weight:bold;\n}\n\n.column-back-button--slim-button {\n position:absolute;\n top:-22px;\n right:4px;\n max-height:20px;\n max-width:60px;\n padding:0px 2px;\n}\n\n.column-back-button__icon {\n font-size:11px;\n margin-top:-3px;\n}\n\n.column-header__collapsible {\n border-left:2px outset $win95-bg;\n border-right:2px outset $win95-bg;\n}\n\n.column-header__collapsible-inner {\n background:$win95-bg;\n color:black;\n}\n\n.column-header__collapsible__extra {\n color:black;\n}\n\n.column-header__collapsible__extra div[role=\"group\"] {\n border: 2px groove $win95-bg;\n border-radius:4px;\n margin-bottom:8px;\n padding:4px;\n}\n\n.column-inline-form {\n background-color: $win95-bg;\n @include win95-border-outset();\n border-bottom-width:0px;\n border-top-width:0px;\n}\n\n.column-settings__section {\n color:black;\n font-weight:bold;\n font-size:11px;\n position:relative;\n top: -12px;\n left:4px;\n background-color:$win95-bg;\n display:inline-block;\n padding:0px 4px;\n margin-bottom:0px;\n}\n\n.setting-meta__label, .setting-toggle__label {\n color:black;\n font-weight:normal;\n}\n\n.setting-meta__label span:before {\n content:\"(\";\n}\n.setting-meta__label span:after {\n content:\")\";\n}\n\n.setting-toggle {\n line-height:13px;\n}\n\n.react-toggle .react-toggle-track {\n border-radius:0px;\n background-color:white;\n @include win95-border-inset();\n\n width:12px;\n height:12px;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color:white;\n}\n\n.react-toggle .react-toggle-track-check {\n left:2px;\n transition:unset;\n}\n\n.react-toggle .react-toggle-track-check svg path {\n fill: black;\n}\n\n.react-toggle .react-toggle-track-x {\n display:none;\n}\n\n.react-toggle .react-toggle-thumb {\n border-radius:0px;\n display:none;\n}\n\n.text-btn {\n background-color:$win95-bg;\n @include win95-outset();\n padding:4px;\n}\n\n.text-btn:hover {\n text-decoration:none;\n color:black;\n}\n\n.text-btn:active {\n @include win95-inset();\n}\n\n.setting-text {\n color:black;\n background-color:white;\n @include win95-inset();\n font-size:13px;\n padding:2px;\n}\n\n.setting-text:active, .setting-text:focus,\n.setting-text.light:active, .setting-text.light:focus {\n color:black;\n border-bottom:2px inset $win95-bg;\n}\n\n.column-header__setting-arrows .column-header__setting-btn {\n padding:3px 10px;\n}\n\n.column-header__setting-arrows .column-header__setting-btn:last-child {\n padding:3px 10px;\n}\n\n.missing-indicator {\n background-color:$win95-bg;\n color:black;\n @include win95-outset();\n}\n\n.missing-indicator > div {\n background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRUaXRsZQAACJnLyy9Jyy/NSwEAD5IDblIFOhoAAAAXelRYdEF1dGhvcgAACJlLzijKz0vMAQALmgLoDsFj8gAAAQpJREFUOMuVlD0OwjAMhd2oQl04Axfo0IGBgYELcAY6cqQuSO0ZOEAZGBg6VKg74gwsEaoESRVHjusI8aQqzY8/PbtOEz1qkFSn2YevlaNOpLMJh2DwvixhuXtOa6/LCh51DUMEFkAsgAZD207Doin8mQ562JpRE5CHBAAhmIqD1L8AqzUUUJkxc6kr3AgAJ+NuvIWRdk7WcrKl0AUqcIBBHOiEbpS4m27mIL5Onfg3k0rgggeQuS2sDOGSahKR+glgqaGLgUJs951NN1q9D72cQqQWR9cr3sm9YcEssEuz6eEuZh2bu0aSOhQ1MBezu2O/+TVSvEFII3qLsZWrSA2AAUQIh1HpyP/kC++zjVSMj6ntAAAAAElFTkSuQmCC')\n no-repeat;\n background-position:center center;\n}\n\n.empty-column-indicator,\n.error-column {\n background: $win95-bg;\n color: black;\n}\n\n.status__wrapper {\n border: 2px groove $win95-bg;\n margin:4px;\n}\n\n.status {\n @include win95-border-slight-inset();\n background-color:white;\n margin:4px;\n padding-bottom:40px;\n margin-bottom:8px;\n}\n\n.status.status-direct {\n background-color:$win95-bg;\n}\n\n.status__content {\n font-size:13px;\n}\n\n.status.light .status__relative-time,\n.status.light .display-name span {\n color: #7f7f7f;\n}\n\n.status__action-bar {\n box-sizing:border-box;\n position:absolute;\n bottom:-1px;\n left:-1px;\n background:$win95-bg;\n width:calc(100% + 2px);\n padding-left:10px;\n padding: 4px 2px;\n padding-bottom:4px;\n border-bottom:2px groove $win95-bg;\n border-top:1px outset $win95-bg;\n text-align: right;\n}\n\n.status__wrapper .status__action-bar {\n border-bottom-width:0px;\n}\n\n.status__action-bar-button {\n float:right;\n}\n\n.status__action-bar-dropdown {\n margin-left:auto;\n margin-right:10px;\n\n .icon-button {\n min-width:28px;\n }\n}\n.status.light .status__content a {\n color:blue;\n}\n\n.focusable:focus {\n background: $win95-bg;\n .detailed-status__action-bar {\n background: $win95-bg;\n }\n\n .status, .detailed-status {\n background: white;\n outline:2px dotted $win95-mid-grey;\n }\n}\n\n.dropdown__trigger.icon-button {\n padding-right:6px;\n}\n\n.detailed-status__action-bar-dropdown .icon-button {\n min-width:28px;\n}\n\n.detailed-status {\n background:white;\n background-clip:padding-box;\n margin:4px;\n border: 2px groove $win95-bg;\n padding:4px;\n}\n\n.detailed-status__display-name {\n color:#7f7f7f;\n}\n\n.detailed-status__display-name strong {\n color:black;\n font-weight:bold;\n}\n.account__avatar,\n.account__avatar-overlay-base,\n.account__header__avatar,\n.account__avatar-overlay-overlay {\n @include win95-border-slight-inset();\n clip-path:none;\n filter: saturate(1.8) brightness(1.1);\n}\n\n.detailed-status__action-bar {\n background-color:$win95-bg;\n border:0px;\n border-bottom:2px groove $win95-bg;\n margin-bottom:8px;\n justify-items:left;\n padding-left:4px;\n}\n.icon-button {\n background:$win95-bg;\n @include win95-border-outset();\n padding:0px 0px 0px 0px;\n margin-right:4px;\n\n color:#3f3f3f;\n &.inverted, &:hover, &.inverted:hover, &:active, &:focus {\n color:#3f3f3f;\n }\n}\n\n.icon-button:active {\n @include win95-border-inset();\n}\n\n.status__action-bar > .icon-button {\n padding:0px 15px 0px 0px;\n min-width:25px;\n}\n\n.icon-button.star-icon,\n.icon-button.star-icon:active {\n background:transparent;\n border:none;\n}\n\n.icon-button.star-icon.active {\n color: $gold-star;\n &:active, &:hover, &:focus {\n color: $gold-star;\n }\n}\n\n.icon-button.star-icon > i {\n background:$win95-bg;\n @include win95-border-outset();\n padding-bottom:3px;\n}\n\n.icon-button.star-icon:active > i {\n @include win95-border-inset();\n}\n\n.text-icon-button {\n color:$win95-dark-grey;\n}\n\n.detailed-status__action-bar-dropdown {\n margin-left:auto;\n justify-content:right;\n padding-right:16px;\n}\n\n.detailed-status__button {\n flex:0 0 auto;\n}\n\n.detailed-status__button .icon-button {\n padding-left:2px;\n padding-right:25px;\n}\n\n.status-card {\n border-radius:0px;\n background:white;\n border: 1px solid black;\n color:black;\n}\n\n.status-card:hover {\n background-color:white;\n}\n\n.status-card__title {\n color:blue;\n text-decoration:underline;\n font-weight:bold;\n}\n\n.load-more {\n width:auto;\n margin:5px auto;\n background: $win95-bg;\n @include win95-outset();\n color:black;\n padding: 2px 5px;\n\n &:hover {\n background: $win95-bg;\n color:black;\n }\n}\n\n.status-card__description {\n color:black;\n}\n\n.account__display-name strong, .status__display-name strong {\n color:black;\n font-weight:bold;\n}\n\n.account .account__display-name {\n color:black;\n}\n\n.account {\n border-bottom: 2px groove $win95-bg;\n}\n\n.reply-indicator__content .status__content__spoiler-link, .status__content .status__content__spoiler-link {\n background:$win95-bg;\n @include win95-outset();\n}\n\n.reply-indicator__content .status__content__spoiler-link:hover, .status__content .status__content__spoiler-link:hover {\n background:$win95-bg;\n}\n\n.reply-indicator__content .status__content__spoiler-link:active, .status__content .status__content__spoiler-link:active {\n @include win95-inset();\n}\n\n.reply-indicator__content a, .status__content a {\n color:blue;\n}\n\n.notification {\n border: 2px groove $win95-bg;\n margin:4px;\n}\n\n.notification__message {\n color:black;\n font-size:13px;\n}\n\n.notification__display-name {\n font-weight:bold;\n}\n\n.drawer__header {\n background: $win95-bg;\n @include win95-border-outset();\n justify-content:left;\n margin-bottom:0px;\n padding-bottom:2px;\n border-bottom:2px groove $win95-bg;\n}\n\n.drawer__tab {\n color:black;\n @include win95-outset();\n padding:5px;\n margin:2px;\n flex: 0 0 auto;\n}\n\n.drawer__tab:first-child::before {\n content:\"Start\";\n color:black;\n font-weight:bold;\n font-size:15px;\n width:80%;\n display:block;\n position:absolute;\n right:0px;\n\n}\n\n.drawer__tab:first-child {\n position:relative;\n padding:5px 15px;\n width:40px;\n font-size:0px;\n color:$win95-bg;\n\n background-image: url(\"~images/start.png\");\n background-repeat:no-repeat;\n background-position:8%;\n background-clip:padding-box;\n background-size:auto 50%;\n}\n\n.drawer__header a:hover {\n background-color:transparent;\n}\n\n.drawer__header a:first-child:hover {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAIAAACpTQvdAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRBdXRob3IAAAiZS84oys9LzAEAC5oC6A7BY/IAAACWSURBVCiRhVJJDsQgDEuqOfRZ7a1P5gbP4uaJaEjTADMWQhHYjlk4p0wLnNdptdF4KvBUDyGzVwc2xO+uKtH+1o0ytEEmqFpuxlvFCGCxKbNIT56QCi2MzaA/2Mz+mERSOeqzJG2RUxkjdTabgPtFoZ1bZxcKvgPcLZVufAyR9Ni8v5dWDzfFx0giC1RvZFv6l35QQ/Mvv39XXgGzQpoAAAAASUVORK5CYII=\");\n background-repeat:no-repeat;\n background-position:8%;\n background-clip:padding-box;\n background-size:auto 50%;\n transition:unset;\n}\n\n.drawer__tab:first-child {\n\n}\n\n.search {\n background:$win95-bg;\n padding-top:2px;\n padding:2px;\n border:2px outset $win95-bg;\n border-top-width:0px;\n border-bottom: 2px groove $win95-bg;\n margin-bottom:0px;\n}\n\n.search input {\n background-color:white;\n color:black;\n @include win95-border-slight-inset();\n}\n\n.search__input:focus {\n background-color:white;\n}\n\n.search-popout {\n box-shadow: unset;\n color:black;\n border-radius:0px;\n background-color:$win95-tooltip-yellow;\n border:1px solid black;\n\n h4 {\n color:black;\n text-transform: none;\n font-weight:bold;\n }\n}\n\n.search-results__header {\n background-color: $win95-bg;\n color:black;\n border-bottom:2px groove $win95-bg;\n}\n\n.search-results__hashtag {\n color:blue;\n}\n\n.search-results__section .account:hover,\n.search-results__section .account:hover .account__display-name,\n.search-results__section .account:hover .account__display-name strong,\n.search-results__section .search-results__hashtag:hover {\n background-color:$win95-window-header;\n color:white;\n}\n\n.search__icon .fa {\n color:#808080;\n\n &.active {\n opacity:1.0;\n }\n\n &:hover {\n color: #808080;\n }\n}\n\n.drawer__inner,\n.drawer__inner.darker {\n background-color:$win95-bg;\n border: 2px outset $win95-bg;\n border-top-width:0px;\n}\n\n.navigation-bar {\n color:black;\n}\n\n.navigation-bar strong {\n color:black;\n font-weight:bold;\n}\n\n.compose-form .autosuggest-textarea__textarea,\n.compose-form .spoiler-input__input {\n border-radius:0px;\n @include win95-border-slight-inset();\n}\n\n.compose-form .autosuggest-textarea__textarea {\n border-bottom:0px;\n}\n\n.compose-form__uploads-wrapper {\n border-radius:0px;\n border-bottom:1px inset $win95-bg;\n border-top-width:0px;\n}\n\n.compose-form__upload-wrapper {\n border-left:1px inset $win95-bg;\n border-right:1px inset $win95-bg;\n}\n\n.compose-form .compose-form__buttons-wrapper {\n background-color: $win95-bg;\n border:2px groove $win95-bg;\n margin-top:4px;\n padding:4px 8px;\n}\n\n.compose-form__buttons {\n background-color:$win95-bg;\n border-radius:0px;\n box-shadow:unset;\n}\n\n.compose-form__buttons-separator {\n border-left: 2px groove $win95-bg;\n}\n\n.privacy-dropdown.active .privacy-dropdown__value.active,\n.advanced-options-dropdown.open .advanced-options-dropdown__value {\n background: $win95-bg;\n}\n\n.privacy-dropdown.active .privacy-dropdown__value.active .icon-button {\n color: $win95-dark-grey;\n}\n\n.privacy-dropdown.active\n.privacy-dropdown__value {\n background: $win95-bg;\n box-shadow:unset;\n}\n\n.privacy-dropdown__option.active, .privacy-dropdown__option:hover,\n.privacy-dropdown__option.active:hover {\n background:$win95-window-header;\n}\n\n.privacy-dropdown__dropdown,\n.privacy-dropdown.active .privacy-dropdown__dropdown,\n.advanced-options-dropdown__dropdown,\n.advanced-options-dropdown.open .advanced-options-dropdown__dropdown\n{\n box-shadow:unset;\n color:black;\n @include win95-outset();\n background: $win95-bg;\n}\n\n.privacy-dropdown__option__content {\n color:black;\n}\n\n.privacy-dropdown__option__content strong {\n font-weight:bold;\n}\n\n.compose-form__warning::before {\n content:\"Tip:\";\n font-weight:bold;\n display:block;\n position:absolute;\n top:-10px;\n background-color:$win95-bg;\n font-size:11px;\n padding: 0px 5px;\n}\n\n.compose-form__warning {\n position:relative;\n box-shadow:unset;\n border:2px groove $win95-bg;\n background-color:$win95-bg;\n color:black;\n}\n\n.compose-form__warning a {\n color:blue;\n}\n\n.compose-form__warning strong {\n color:black;\n text-decoration:underline;\n}\n\n.compose-form__buttons button.active:last-child {\n @include win95-border-inset();\n background: #dfdfdf;\n color:#7f7f7f;\n}\n\n.compose-form__upload-thumbnail {\n border-radius:0px;\n border:2px groove $win95-bg;\n background-color:$win95-bg;\n padding:2px;\n box-sizing:border-box;\n}\n\n.compose-form__upload-thumbnail .icon-button {\n max-width:20px;\n max-height:20px;\n line-height:10px !important;\n}\n\n.compose-form__upload-thumbnail .icon-button::before {\n content:\"X\";\n font-size:13px;\n font-weight:bold;\n color:black;\n}\n\n.compose-form__upload-thumbnail .icon-button i {\n display:none;\n}\n\n.emoji-picker-dropdown__menu {\n z-index:2;\n}\n\n.emoji-dialog.with-search {\n box-shadow:unset;\n border-radius:0px;\n background-color:$win95-bg;\n border:1px solid black;\n box-sizing:content-box;\n\n}\n\n.emoji-dialog .emoji-search {\n color:black;\n background-color:white;\n border-radius:0px;\n @include win95-inset();\n}\n\n.emoji-dialog .emoji-search-wrapper {\n border-bottom:2px groove $win95-bg;\n}\n\n.emoji-dialog .emoji-category-title {\n color:black;\n font-weight:bold;\n}\n\n.reply-indicator {\n background-color:$win95-bg;\n border-radius:3px;\n border:2px groove $win95-bg;\n}\n\n.button {\n background-color:$win95-bg;\n @include win95-outset();\n border-radius:0px;\n color:black;\n font-weight:bold;\n\n &:hover, &:focus, &:disabled {\n background-color:$win95-bg;\n }\n\n &:active {\n @include win95-inset();\n }\n\n &:disabled {\n color: #808080;\n text-shadow: 1px 1px 0px #efefef;\n\n &:active {\n @include win95-outset();\n }\n }\n\n}\n\n#Getting-started {\n background-color:$win95-bg;\n @include win95-inset();\n border-bottom-width:0px;\n}\n\n#Getting-started::before {\n content:\"Start\";\n color:black;\n font-weight:bold;\n font-size:15px;\n width:80%;\n text-align:center;\n display:block;\n position:absolute;\n right:2px;\n}\n\n#Getting-started {\n position:relative;\n padding:5px 15px;\n width:60px;\n font-size:0px;\n color:$win95-bg;\n\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAIAAACpTQvdAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRBdXRob3IAAAiZS84oys9LzAEAC5oC6A7BY/IAAACWSURBVCiRhVJJDsQgDEuqOfRZ7a1P5gbP4uaJaEjTADMWQhHYjlk4p0wLnNdptdF4KvBUDyGzVwc2xO+uKtH+1o0ytEEmqFpuxlvFCGCxKbNIT56QCi2MzaA/2Mz+mERSOeqzJG2RUxkjdTabgPtFoZ1bZxcKvgPcLZVufAyR9Ni8v5dWDzfFx0giC1RvZFv6l35QQ/Mvv39XXgGzQpoAAAAASUVORK5CYII=\");\n background-repeat:no-repeat;\n background-position:8%;\n background-clip:padding-box;\n background-size:auto 50%;\n}\n\n.column-subheading {\n background-color:$win95-bg;\n color:black;\n border-bottom: 2px groove $win95-bg;\n text-transform: none;\n font-size: 16px;\n}\n\n.column-link {\n background-color:transparent;\n color:black;\n &:hover {\n background-color: $win95-window-header;\n color:white;\n }\n}\n\n.getting-started__wrapper {\n .column-subheading {\n font-size:0px;\n margin:0px;\n padding:0px;\n }\n\n .column-link {\n background-size:32px 32px;\n background-repeat:no-repeat;\n background-position: 36px 50%;\n padding-left:40px;\n\n &:hover {\n background-size:32px 32px;\n background-repeat:no-repeat;\n background-position: 36px 50%;\n }\n\n i {\n font-size: 0px;\n width:32px;\n }\n }\n}\n\n.column-link[href=\"/web/timelines/public\"] {\n background-image: url(\"~images/icon_public.png\");\n &:hover { background-image: url(\"~images/icon_public.png\"); }\n}\n.column-link[href=\"/web/timelines/public/local\"] {\n background-image: url(\"~images/icon_local.png\");\n &:hover { background-image: url(\"~images/icon_local.png\"); }\n}\n.column-link[href=\"/web/pinned\"] {\n background-image: url(\"~images/icon_pin.png\");\n &:hover { background-image: url(\"~images/icon_pin.png\"); }\n}\n.column-link[href=\"/web/favourites\"] {\n background-image: url(\"~images/icon_likes.png\");\n &:hover { background-image: url(\"~images/icon_likes.png\"); }\n}\n.column-link[href=\"/web/lists\"] {\n background-image: url(\"~images/icon_lists.png\");\n &:hover { background-image: url(\"~images/icon_lists.png\"); }\n}\n.column-link[href=\"/web/follow_requests\"] {\n background-image: url(\"~images/icon_follow_requests.png\");\n &:hover { background-image: url(\"~images/icon_follow_requests.png\"); }\n}\n.column-link[href=\"/web/keyboard-shortcuts\"] {\n background-image: url(\"~images/icon_keyboard_shortcuts.png\");\n &:hover { background-image: url(\"~images/icon_keyboard_shortcuts.png\"); }\n}\n.column-link[href=\"/web/blocks\"] {\n background-image: url(\"~images/icon_blocks.png\");\n &:hover { background-image: url(\"~images/icon_blocks.png\"); }\n}\n.column-link[href=\"/web/mutes\"] {\n background-image: url(\"~images/icon_mutes.png\");\n &:hover { background-image: url(\"~images/icon_mutes.png\"); }\n}\n.column-link[href=\"/settings/preferences\"] {\n background-image: url(\"~images/icon_settings.png\");\n &:hover { background-image: url(\"~images/icon_settings.png\"); }\n}\n.column-link[href=\"/about/more\"] {\n background-image: url(\"~images/icon_about.png\");\n &:hover { background-image: url(\"~images/icon_about.png\"); }\n}\n.column-link[href=\"/auth/sign_out\"] {\n background-image: url(\"~images/icon_logout.png\");\n &:hover { background-image: url(\"~images/icon_logout.png\"); }\n}\n\n.getting-started__footer {\n display:none;\n}\n\n.getting-started__wrapper::before {\n content:\"Mastodon 95\";\n font-weight:bold;\n font-size:23px;\n color:white;\n line-height:30px;\n padding-left:20px;\n padding-right:40px;\n\n left:0px;\n bottom:-30px;\n display:block;\n position:absolute;\n background-color:#7f7f7f;\n width:200%;\n height:30px;\n\n -ms-transform: rotate(-90deg);\n\n -webkit-transform: rotate(-90deg);\n transform: rotate(-90deg);\n transform-origin:top left;\n}\n\n.getting-started__wrapper {\n @include win95-border-outset();\n background-color:$win95-bg;\n}\n\n.column .static-content.getting-started {\n display:none;\n}\n\n.keyboard-shortcuts kbd {\n background-color: $win95-bg;\n}\n\n.account__header {\n background-color:#7f7f7f;\n}\n\n.account__header .account__header__content {\n color:white;\n}\n\n.account-authorize__wrapper {\n border: 2px groove $win95-bg;\n margin: 2px;\n padding:2px;\n}\n\n.account--panel {\n background-color: $win95-bg;\n border:0px;\n border-top: 2px groove $win95-bg;\n}\n\n.account-authorize .account__header__content {\n color:black;\n margin:10px;\n}\n\n.account__action-bar__tab > span {\n color:black;\n font-weight:bold;\n}\n\n.account__action-bar__tab strong {\n color:black;\n}\n\n.account__action-bar {\n border: unset;\n}\n\n.account__action-bar__tab {\n border: 1px outset $win95-bg;\n}\n\n.account__action-bar__tab:active {\n @include win95-inset();\n}\n\n.dropdown--active .dropdown__content > ul,\n.dropdown-menu {\n background:$win95-tooltip-yellow;\n border-radius:0px;\n border:1px solid black;\n box-shadow:unset;\n}\n\n.dropdown-menu a {\n background-color:transparent;\n}\n\n.dropdown--active::after {\n display:none;\n}\n\n.dropdown--active .icon-button {\n color:black;\n @include win95-inset();\n}\n\n.dropdown--active .dropdown__content > ul > li > a {\n background:transparent;\n}\n\n.dropdown--active .dropdown__content > ul > li > a:hover {\n background:transparent;\n color:black;\n text-decoration:underline;\n}\n\n.dropdown__sep,\n.dropdown-menu__separator\n{\n border-color:#7f7f7f;\n}\n\n.detailed-status__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__left {\n left:unset;\n}\n\n.dropdown > .icon-button, .detailed-status__button > .icon-button,\n.status__action-bar > .icon-button, .star-icon i {\n /* i don't know what's going on with the inline\n styles someone should look at the react code */\n height: 25px !important;\n width: 28px !important;\n box-sizing: border-box;\n}\n\n.status__action-bar-button .fa-floppy-o {\n padding-top: 2px;\n}\n\n.status__action-bar-dropdown {\n position: relative;\n top: -3px;\n}\n\n.detailed-status__action-bar-dropdown .dropdown {\n position: relative;\n top: -4px;\n}\n\n.notification .status__action-bar {\n border-bottom: none;\n}\n\n.notification .status {\n margin-bottom: 4px;\n}\n\n.status__wrapper .status {\n margin-bottom: 3px;\n}\n\n.status__wrapper {\n margin-bottom: 8px;\n}\n\n.icon-button .fa-retweet {\n position: relative;\n top: -1px;\n}\n\n.embed-modal, .error-modal, .onboarding-modal,\n.actions-modal, .boost-modal, .confirmation-modal, .report-modal {\n @include win95-outset();\n background:$win95-bg;\n}\n\n.actions-modal::before,\n.boost-modal::before,\n.confirmation-modal::before,\n.report-modal::before {\n content: \"Confirmation\";\n display:block;\n background:$win95-window-header;\n color:white;\n font-weight:bold;\n padding-left:2px;\n}\n\n.boost-modal::before {\n content: \"Boost confirmation\";\n}\n\n.boost-modal__action-bar > div > span:before {\n content: \"Tip: \";\n font-weight:bold;\n}\n\n.boost-modal__action-bar, .confirmation-modal__action-bar, .report-modal__action-bar {\n background:$win95-bg;\n margin-top:-15px;\n}\n\n.embed-modal h4, .error-modal h4, .onboarding-modal h4 {\n background:$win95-window-header;\n color:white;\n font-weight:bold;\n padding:2px;\n font-size:13px;\n text-align:left;\n}\n\n.confirmation-modal__action-bar {\n .confirmation-modal__cancel-button {\n color:black;\n\n &:active,\n &:focus,\n &:hover {\n color:black;\n }\n\n &:active {\n @include win95-inset();\n }\n }\n}\n\n.embed-modal .embed-modal__container .embed-modal__html,\n.embed-modal .embed-modal__container .embed-modal__html:focus {\n background:white;\n color:black;\n @include win95-inset();\n}\n\n.modal-root__overlay,\n.account__header > div {\n background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAFnpUWHRUaXRsZQAACJnLzU9JzElKBwALgwLXaCRlPwAAABd6VFh0QXV0aG9yAAAImUvOKMrPS8wBAAuaAugOwWPyAAAAEUlEQVQImWNgYGD4z4AE/gMADwMB/414xEUAAAAASUVORK5CYII=');\n}\n\n.admin-wrapper::before {\n position:absolute;\n top:0px;\n content:\"Control Panel\";\n color:white;\n background-color:$win95-window-header;\n font-size:13px;\n font-weight:bold;\n width:calc(100%);\n margin: 2px;\n display:block;\n padding:2px;\n padding-left:22px;\n box-sizing:border-box;\n}\n\n.admin-wrapper {\n position:relative;\n background: $win95-bg;\n @include win95-outset();\n width:70vw;\n height:80vh;\n margin:10vh auto;\n color: black;\n padding-top:24px;\n flex-direction:column;\n overflow:hidden;\n}\n\n@media screen and (max-width: 1120px) {\n .admin-wrapper {\n width:90vw;\n height:95vh;\n margin:2.5vh auto;\n }\n}\n\n@media screen and (max-width: 740px) {\n .admin-wrapper {\n width:100vw;\n height:95vh;\n height:calc(100vh - 24px);\n margin:0px 0px 0px 0px;\n }\n}\n\n.admin-wrapper .sidebar-wrapper {\n position:static;\n height:auto;\n flex: 0 0 auto;\n margin:2px;\n}\n\n.admin-wrapper .content-wrapper {\n flex: 1 1 auto;\n width:calc(100% - 20px);\n @include win95-border-outset();\n position:relative;\n margin-left:10px;\n margin-right:10px;\n margin-bottom:40px;\n box-sizing:border-box;\n}\n\n.admin-wrapper .content {\n background-color: $win95-bg;\n width: 100%;\n max-width:100%;\n min-height:100%;\n box-sizing:border-box;\n position:relative;\n}\n\n.admin-wrapper .sidebar {\n position:static;\n background: $win95-bg;\n color:black;\n width: 100%;\n height:auto;\n padding-bottom: 20px;\n}\n\n.admin-wrapper .sidebar .logo {\n position:absolute;\n top:2px;\n left:4px;\n width:18px;\n height:18px;\n margin:0px;\n}\n\n.admin-wrapper .sidebar > ul {\n background: $win95-bg;\n margin:0px;\n margin-left:8px;\n color:black;\n\n & > li {\n display:inline-block;\n\n &#settings,\n &#admin {\n padding:2px;\n border: 0px solid transparent;\n }\n\n &#logout {\n position:absolute;\n @include win95-outset();\n right:12px;\n bottom:10px;\n }\n\n &#web {\n display:inline-block;\n @include win95-outset();\n position:absolute;\n left: 12px;\n bottom: 10px;\n }\n\n & > a {\n display:inline-block;\n @include win95-tab();\n padding:2px 5px;\n margin:0px;\n color:black;\n vertical-align:baseline;\n\n &.selected {\n background: $win95-bg;\n color:black;\n padding-top: 4px;\n padding-bottom:4px;\n }\n\n &:hover {\n background: $win95-bg;\n color:black;\n }\n }\n\n & > ul {\n width:calc(100% - 20px);\n background: transparent;\n position:absolute;\n left: 10px;\n top:54px;\n z-index:3;\n\n & > li {\n background: $win95-bg;\n display: inline-block;\n vertical-align:baseline;\n\n & > a {\n background: $win95-bg;\n @include win95-tab();\n color:black;\n padding:2px 5px;\n position:relative;\n z-index:3;\n\n &.selected {\n background: $win95-bg;\n color:black;\n padding-bottom:4px;\n padding-top: 4px;\n padding-right:7px;\n margin-left:-2px;\n margin-right:-2px;\n position:relative;\n z-index:4;\n\n &:first-child {\n margin-left:0px;\n }\n\n &:hover {\n background: transparent;\n color:black;\n }\n }\n\n &:hover {\n background: $win95-bg;\n color:black;\n }\n }\n }\n }\n }\n}\n\n@media screen and (max-width: 1520px) {\n .admin-wrapper .sidebar > ul > li > ul {\n max-width:1000px;\n }\n\n .admin-wrapper .sidebar {\n padding-bottom: 45px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .admin-wrapper .sidebar > ul > li > ul {\n max-width:500px;\n }\n\n .admin-wrapper {\n .sidebar {\n padding:0px;\n padding-bottom: 70px;\n width: 100%;\n height: auto;\n }\n .content-wrapper {\n overflow:auto;\n height:80%;\n height:calc(100% - 150px);\n }\n }\n}\n\n.flash-message {\n background-color:$win95-tooltip-yellow;\n color:black;\n border:1px solid black;\n border-radius:0px;\n position:absolute;\n top:0px;\n left:0px;\n width:100%;\n}\n\n.admin-wrapper table {\n background-color: white;\n @include win95-border-slight-inset();\n}\n\n.admin-wrapper .content h2,\n.simple_form .input.with_label .label_input > label,\n.admin-wrapper .content h6,\n.admin-wrapper .content > p,\n.admin-wrapper .content .muted-hint,\n.simple_form span.hint,\n.simple_form h4,\n.simple_form .check_boxes .checkbox label,\n.simple_form .input.with_label.boolean .label_input > label,\n.filters .filter-subset a,\n.simple_form .input.radio_buttons .radio label,\na.table-action-link,\na.table-action-link:hover,\n.simple_form .input.with_block_label > label,\n.simple_form p.hint {\n color:black;\n}\n\n.table > tbody > tr:nth-child(2n+1) > td,\n.table > tbody > tr:nth-child(2n+1) > th {\n background-color:white;\n}\n\n.simple_form input[type=text],\n.simple_form input[type=number],\n.simple_form input[type=email],\n.simple_form input[type=password],\n.simple_form textarea {\n color:black;\n background-color:white;\n @include win95-border-slight-inset();\n\n &:active, &:focus {\n background-color:white;\n }\n}\n\n.simple_form button,\n.simple_form .button,\n.simple_form .block-button\n{\n background: $win95-bg;\n @include win95-outset();\n color:black;\n font-weight: normal;\n\n &:hover {\n background: $win95-bg;\n }\n}\n\n.simple_form .warning, .table-form .warning\n{\n background: $win95-tooltip-yellow;\n color:black;\n box-shadow: unset;\n text-shadow:unset;\n border:1px solid black;\n\n a {\n color: blue;\n text-decoration:underline;\n }\n}\n\n.simple_form button.negative,\n.simple_form .button.negative,\n.simple_form .block-button.negative\n{\n background: $win95-bg;\n}\n\n.filters .filter-subset {\n border: 2px groove $win95-bg;\n padding:2px;\n}\n\n.filters .filter-subset a::before {\n content: \"\";\n background-color:white;\n border-radius:50%;\n border:2px solid black;\n border-top-color:#7f7f7f;\n border-left-color:#7f7f7f;\n border-bottom-color:#f5f5f5;\n border-right-color:#f5f5f5;\n width:12px;\n height:12px;\n display:inline-block;\n vertical-align:middle;\n margin-right:2px;\n}\n\n.filters .filter-subset a.selected::before {\n background-color:black;\n box-shadow: inset 0 0 0 3px white;\n}\n\n.filters .filter-subset a,\n.filters .filter-subset a:hover,\n.filters .filter-subset a.selected {\n color:black;\n border-bottom: 0px solid transparent;\n}\n","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a !default; // Padua\n$error-red: #df405a !default; // Cerise\n$warning-red: #ff5050 !default; // Sunset Orange\n$gold-star: #ca8f04 !default; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: 'mastodon-font-sans-serif' !default;\n$font-display: 'mastodon-font-display' !default;\n$font-monospace: 'mastodon-font-monospace' !default;\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n\n @return '%23' + unquote($color);\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.player {\n text-align: center;\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n &__illustration {\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div,\n & > noscript {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n\n & > noscript {\n height: 100vh;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n\n.error-boundary,\n.app-holder noscript {\n flex-direction: column;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.7;\n color: lighten($error-red, 4%);\n text-align: center;\n\n & > div {\n max-width: 500px;\n }\n\n p {\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &__footer {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n }\n }\n\n button {\n display: inline;\n border: 0;\n background: transparent;\n color: $dark-text-color;\n font: inherit;\n padding: 0;\n margin: 0;\n line-height: inherit;\n cursor: pointer;\n outline: 0;\n transition: color 300ms linear;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.copied {\n color: $valid-value-color;\n transition: none;\n }\n }\n}\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1 / 3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n font-weight: 700;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n font-weight: 700;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small,\n .trends__item__current {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n\n .trends__item__current {\n padding-right: 0;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n\n li {\n list-style: disc;\n margin-left: 18px;\n }\n }\n\n ul.hint {\n margin-bottom: 15px;\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\nbutton.icon-button.disabled i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: $ui-highlight-color;\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 15px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 10%);\n transition: all 200ms ease-out;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled,\n &.disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n color: $darker-text-color;\n background: transparent;\n padding: 3px 15px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.compose-form {\n padding: 10px;\n\n &__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n }\n\n .compose-form__warning {\n color: $inverted-text-color;\n margin-bottom: 10px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n strong {\n color: $inverted-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 5px;\n right: 5px;\n }\n\n .compose-form__autosuggest-wrapper {\n position: relative;\n }\n\n .autosuggest-textarea,\n .autosuggest-input,\n .spoiler-input {\n position: relative;\n width: 100%;\n }\n\n .spoiler-input {\n height: 0;\n transform-origin: bottom;\n opacity: 0;\n\n &.spoiler-input--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1;\n }\n }\n\n .autosuggest-textarea__textarea,\n .spoiler-input__input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .spoiler-input__input {\n border-radius: 4px;\n }\n\n .autosuggest-textarea__textarea {\n min-height: 100px;\n border-radius: 4px 4px 0 0;\n padding-bottom: 0;\n padding-right: 10px + 22px;\n resize: none;\n scrollbar-color: initial;\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n @media screen and (max-width: 600px) {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n\n .autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n }\n\n .autosuggest-textarea__suggestions {\n box-sizing: border-box;\n display: none;\n position: absolute;\n top: 100%;\n width: 100%;\n z-index: 99;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n background: $ui-secondary-color;\n border-radius: 0 0 4px 4px;\n color: $inverted-text-color;\n font-size: 14px;\n padding: 6px;\n\n &.autosuggest-textarea__suggestions--visible {\n display: block;\n }\n }\n\n .autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n\n .autosuggest-account,\n .autosuggest-emoji,\n .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .autosuggest-account-icon,\n .autosuggest-emoji img {\n display: block;\n margin-right: 8px;\n width: 16px;\n height: 16px;\n }\n\n .autosuggest-account .display-name__account {\n color: $lighter-text-color;\n }\n\n .compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n\n .compose-form__upload-wrapper {\n overflow: hidden;\n }\n\n .compose-form__uploads-wrapper {\n display: flex;\n flex-direction: row;\n padding: 5px;\n flex-wrap: wrap;\n }\n\n .compose-form__upload {\n flex: 1 1 0;\n min-width: 40%;\n margin: 5px;\n\n &__actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $secondary-text-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($secondary-text-color, 7%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n\n &-description {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n padding: 10px;\n opacity: 0;\n transition: opacity .1s ease;\n\n textarea {\n background: transparent;\n color: $secondary-text-color;\n border: 0;\n padding: 0;\n margin: 0;\n width: 100%;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n\n &:focus {\n color: $white;\n }\n\n &::placeholder {\n opacity: 0.75;\n color: $secondary-text-color;\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n }\n\n .compose-form__upload-thumbnail {\n border-radius: 4px;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 140px;\n width: 100%;\n overflow: hidden;\n }\n }\n\n .compose-form__buttons-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n\n .compose-form__buttons {\n display: flex;\n\n .compose-form__upload-button-icon {\n line-height: 27px;\n }\n\n .compose-form__sensitive-button {\n display: none;\n\n &.compose-form__sensitive-button--visible {\n display: block;\n }\n\n .compose-form__sensitive-button__icon {\n line-height: 27px;\n }\n }\n }\n\n .icon-button,\n .text-icon-button {\n box-sizing: content-box;\n padding: 0 3px;\n }\n\n .character-counter__wrapper {\n align-self: center;\n margin-right: 4px;\n }\n }\n\n .compose-form__publish {\n display: flex;\n justify-content: flex-end;\n min-width: 0;\n flex: 0 0 auto;\n\n .compose-form__publish-button-wrapper {\n overflow: hidden;\n padding-top: 10px;\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .spoiler-input {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.reply-indicator {\n border-radius: 4px;\n margin-bottom: 10px;\n background: $ui-primary-color;\n padding: 10px;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n}\n\n.reply-indicator__header {\n margin-bottom: 5px;\n overflow: hidden;\n}\n\n.reply-indicator__cancel {\n float: right;\n line-height: 24px;\n}\n\n.reply-indicator__display-name {\n color: $inverted-text-color;\n display: block;\n max-width: 100%;\n line-height: 24px;\n overflow: hidden;\n padding-right: 25px;\n text-decoration: none;\n}\n\n.reply-indicator__display-avatar {\n float: left;\n margin-right: 5px;\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content,\n.reply-indicator__content {\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n color: $primary-text-color;\n\n &:focus {\n outline: 0;\n }\n\n &.status__content--with-spoiler {\n white-space: normal;\n\n .status__content__text {\n white-space: pre-wrap;\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n\n .status__content__spoiler-link {\n background: $action-button-color;\n\n &:hover {\n background: lighten($action-button-color, 7%);\n text-decoration: none;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n .status__content__text {\n display: none;\n\n &.status__content__text--visible {\n display: block;\n }\n }\n}\n\n.status__content.status__content--collapsed {\n max-height: 20px * 15; // 15 lines is roughly above 500 characters\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: transparent;\n border: 0;\n color: $inverted-text-color;\n font-weight: 700;\n font-size: 12px;\n padding: 0 6px;\n line-height: 20px;\n cursor: pointer;\n vertical-align: middle;\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n .status.status-direct {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 8px 10px;\n padding-left: 68px;\n position: relative;\n min-height: 54px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 26px; // 10px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $light-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n strong {\n color: $inverted-text-color;\n }\n\n span {\n color: $light-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time,\n.notification__relative_time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n}\n\n.status__display-name {\n color: $dark-text-color;\n}\n\n.status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n}\n\n.status__info {\n font-size: 15px;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-left: 68px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.reply-indicator__content {\n color: $inverted-text-color;\n font-size: 14px;\n\n a {\n color: $lighter-text-color;\n }\n}\n\n.domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &.compact {\n padding: 0;\n border-bottom: 0;\n\n .account__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius;\n position: relative;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n border-radius: 50%;\n overflow: hidden;\n position: relative;\n cursor: default;\n\n & > div {\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\na .account__avatar {\n cursor: pointer;\n}\n\n.account__avatar-overlay {\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius;\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius;\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__disclaimer {\n padding: 10px;\n border-top: 1px solid lighten($ui-base-color, 8%);\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-dropdown {\n padding: 10px;\n\n .icon-button {\n vertical-align: middle;\n }\n\n .dropdown--active {\n .dropdown__content.dropdown__right {\n left: 6px;\n right: initial;\n }\n\n &::after {\n bottom: initial;\n margin-left: 11px;\n margin-top: -7px;\n right: initial;\n }\n }\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-right: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n font-size: 12px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\n.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\na.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n height: 48px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n}\n\n.status__expand {\n width: 68px;\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n cursor: pointer;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-lighter-color, 7%);\n text-decoration: none;\n }\n }\n}\n\n.notification__message {\n margin: 0 10px 0 68px;\n padding: 8px 0 0;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n line-height: 22px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: inline;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: -26px;\n position: absolute;\n\n .star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.notification__relative_time {\n float: right;\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.navigation-bar {\n padding: 10px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n cursor: default;\n color: $darker-text-color;\n\n strong {\n color: $secondary-text-color;\n }\n\n a {\n color: inherit;\n }\n\n .permalink {\n text-decoration: none;\n }\n\n .navigation-bar__actions {\n position: relative;\n\n .icon-button.close {\n position: absolute;\n pointer-events: none;\n transform: scale(0, 1) translate(-100%, 0);\n opacity: 0;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: auto;\n transform: scale(1, 1) translate(0, 0);\n opacity: 1;\n }\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n line-height: 20px;\n margin-top: -1px;\n overflow: hidden;\n}\n\n.navigation-bar__profile-account {\n display: block;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.navigation-bar__profile-edit {\n color: inherit;\n text-decoration: none;\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n z-index: 9999;\n\n ul {\n list-style: none;\n }\n\n &.left {\n transform-origin: 100% 50%;\n }\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n\n &.right {\n transform-origin: 0 50%;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &.unscrollable {\n overflow-x: hidden;\n }\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .drawer,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 350px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.drawer {\n width: 330px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n}\n\n.drawer__tab {\n display: block;\n flex: 1 1 auto;\n padding: 15px 5px 13px;\n color: $darker-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 16px;\n border-bottom: 2px solid transparent;\n}\n\n.column,\n.drawer {\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @media screen and (min-width: 631px) {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $highlight-text-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__favourite-icon-wrapper {\n left: -32px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n\n .account__avatar-wrapper {\n margin-left: 17px;\n margin-right: 15px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .getting-started__trends,\n .search {\n margin-bottom: 10px;\n }\n\n .getting-started__panel {\n margin: 10px 0;\n }\n\n .column,\n .drawer {\n min-width: 330px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .navigation-bar {\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 0 1 48px;\n min-height: 20px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .compose-form {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n padding-bottom: 71px;\n margin-bottom: -71px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n border-radius: 2px;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 100%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__header {\n flex: 0 0 auto;\n font-size: 16px;\n background: lighten($ui-base-color, 8%);\n margin-bottom: 10px;\n display: flex;\n flex-direction: row;\n border-radius: 2px;\n\n a {\n transition: background 100ms ease-in;\n\n &:hover {\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n line-height: inherit;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n outline: 0;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n white-space: nowrap;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 13px;\n font-weight: 500;\n cursor: default;\n}\n\n.getting-started__wrapper,\n.getting-started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n color: $dark-text-color;\n overflow: auto;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n\n &__wrapper,\n &__panel,\n &__footer {\n height: min-content;\n }\n\n &__panel,\n &__footer\n {\n padding: 10px;\n padding-top: 20px;\n flex-grow: 0;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__wrapper,\n &__footer\n {\n color: $dark-text-color;\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 13px;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n border-radius: 4px;\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n\n &.active {\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n top: 35px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n\n & > button {\n margin: 0;\n border: 0;\n padding: 15px 0 15px 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($highlight-text-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 13px;\n font-weight: 400;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n border-radius: 4px;\n appearance: none;\n\n &:hover,\n &:active,\n &:focus {\n padding: 0;\n color: lighten($darker-text-color, 8%);\n }\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 700;\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: block;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout;\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n font-size: 12px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.empty-column-indicator,\n.error-column {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.error-column {\n flex-direction: column;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.no-reduce-motion .pulse-loading {\n transform-origin: center center;\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n@keyframes shake-bottom {\n 0%,\n 100% {\n transform: rotate(0deg);\n transform-origin: 50% 100%;\n }\n\n 10% {\n transform: rotate(2deg);\n }\n\n 20%,\n 40%,\n 60% {\n transform: rotate(-4deg);\n }\n\n 30%,\n 50%,\n 70% {\n transform: rotate(4deg);\n }\n\n 80% {\n transform: rotate(-2deg);\n }\n\n 90% {\n transform: rotate(2deg);\n }\n}\n\n.no-reduce-motion .shake-bottom {\n transform-origin: 50% 100%;\n animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.upload-progress {\n padding: 10px;\n color: $lighter-text-color;\n overflow: hidden;\n display: flex;\n\n .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n span {\n font-size: 13px;\n font-weight: 500;\n display: block;\n }\n}\n\n.upload-progess__message {\n flex: 1 1 auto;\n}\n\n.upload-progress__backdrop {\n width: 100%;\n height: 6px;\n border-radius: 6px;\n background: $ui-base-lighter-color;\n position: relative;\n margin-top: 5px;\n}\n\n.upload-progress__tracker {\n position: absolute;\n left: 0;\n top: 0;\n height: 6px;\n background: $ui-highlight-color;\n border-radius: 6px;\n}\n\n.emoji-button {\n display: block;\n font-size: 24px;\n line-height: 24px;\n margin-left: 2px;\n width: 24px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n margin-top: 2px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.privacy-dropdown__dropdown {\n position: absolute;\n background: $simple-background-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-left: 40px;\n overflow: hidden;\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n}\n\n.privacy-dropdown__option {\n color: $inverted-text-color;\n padding: 10px;\n cursor: pointer;\n display: flex;\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n outline: 0;\n\n .privacy-dropdown__option__content {\n color: $primary-text-color;\n\n strong {\n color: $primary-text-color;\n }\n }\n }\n\n &.active:hover {\n background: lighten($ui-highlight-color, 4%);\n }\n}\n\n.privacy-dropdown__option__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 10px;\n}\n\n.privacy-dropdown__option__content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n strong {\n font-weight: 500;\n display: block;\n color: $inverted-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.privacy-dropdown.active {\n .privacy-dropdown__value {\n background: $simple-background-color;\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n\n .icon-button {\n transition: none;\n }\n\n &.active {\n background: $ui-highlight-color;\n\n .icon-button {\n color: $primary-text-color;\n }\n }\n }\n\n &.top .privacy-dropdown__value {\n border-radius: 0 0 4px 4px;\n }\n\n .privacy-dropdown__dropdown {\n display: block;\n box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);\n }\n}\n\n.search {\n position: relative;\n}\n\n.search__input {\n @include search-input;\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(90deg);\n\n &.active {\n pointer-events: none;\n transform: rotate(0deg);\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n}\n\n.search-results__section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n}\n\n.search-results__hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $primary-text-color;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $highlight-text-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n font-size: 13px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n }\n\n .status__avatar {\n height: 28px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n .status__content,\n .status__content p {\n color: $inverted-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n max-height: 80vh;\n max-width: 80vw;\n\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.loading-bar {\n background-color: $highlight-text-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &.autoplay {\n .media-gallery__gifv__label {\n display: none;\n }\n }\n\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n margin-top: 32px;\n\n audio {\n width: 100%;\n }\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n/* Media Gallery */\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n }\n\n img {\n object-fit: cover;\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n object-fit: cover;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n z-index: 1;\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n/* End Media Gallery */\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-overlay-background;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n\n.directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\n.search-popout {\n @include search-popout;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@media screen and (max-width: 630px) and (max-height: 400px) {\n $duration: 400ms;\n $delay: 100ms;\n\n .tabs-bar,\n .search {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar {\n will-change: padding-bottom;\n transition: padding-bottom $duration $delay;\n }\n\n .navigation-bar {\n & > a:first-child {\n will-change: margin-top, margin-left, margin-right, width;\n transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay);\n }\n\n & > .navigation-bar__profile-edit {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar__actions {\n & > .icon-button.close {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay,\n transform $duration $delay;\n }\n\n & > .compose__action-bar .icon-button {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay + $duration * 0.5,\n transform $duration $delay;\n }\n }\n }\n\n .is-composing {\n .tabs-bar,\n .search {\n margin-top: -50px;\n }\n\n .navigation-bar {\n padding-bottom: 0;\n\n & > a:first-child {\n margin: -100px 10px 0 -50px;\n }\n\n .navigation-bar__profile {\n padding-top: 2px;\n }\n\n .navigation-bar__profile-edit {\n position: absolute;\n margin-top: -60px;\n }\n\n .navigation-bar__actions {\n .icon-button.close {\n pointer-events: auto;\n opacity: 1;\n transform: scale(1, 1) translate(0, 0);\n bottom: 5px;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: none;\n opacity: 0;\n transform: scale(0, 1) translate(100%, 0);\n }\n }\n }\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.column-inline-form {\n padding: 15px;\n padding-right: 0;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 10px;\n }\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n\n.list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n",null,"@mixin avatar-radius {\n border-radius: 4px;\n background: transparent no-repeat;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size: 48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin search-input {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: 0;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n display: inline-block;\n border-radius: 4px;\n background: darken($ui-primary-color, 14%);\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__text {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-width: 4px;\n background: none;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 52px;\n font-weight: 700;\n padding: 0 10px;\n padding-left: 8px;\n text-align: right;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 52px;\n }\n\n &__vote__mark {\n float: left;\n line-height: 18px;\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__text {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".emoji-mart {\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: -1px;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -5px;\n left: 0;\n width: 100%;\n height: 4px;\n background-color: $highlight-text-color;\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n font-weight: 700;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n summary {\n display: list-item;\n }\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n font-size: 14px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: 0;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n font-size: 13px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n font-size: 13px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n margin-bottom: 20px;\n line-height: 20px;\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n padding: 10px;\n background: $ui-base-color;\n color: $darker-text-color;\n border-radius: 4px 4px 0 0;\n font-size: 14px;\n position: relative;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n &__extras {\n background: lighten($ui-base-color, 6%);\n border-radius: 0 0 4px 4px;\n padding: 10px;\n color: $darker-text-color;\n font-family: $font-monospace, monospace;\n font-size: 12px;\n word-wrap: break-word;\n min-height: 20px;\n }\n\n &__icon {\n font-size: 28px;\n margin-right: 10px;\n color: $dark-text-color;\n }\n\n &__icon__overlay {\n position: absolute;\n top: 10px;\n right: 10px;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n\n &.positive {\n background: $success-green;\n }\n\n &.negative {\n background: lighten($error-red, 12%);\n }\n\n &.neutral {\n background: $ui-highlight-color;\n }\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n\n .diff-old {\n color: lighten($error-red, 12%);\n }\n\n .diff-neutral {\n color: $secondary-text-color;\n }\n\n .diff-new {\n color: $success-green;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .status__avatar {\n left: auto;\n right: 10px;\n }\n\n .status,\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n","$black-emojis: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash';\n\n%white-emoji-outline {\n filter: drop-shadow(1px 1px 0 $white) drop-shadow(-1px 1px 0 $white) drop-shadow(1px -1px 0 $white) drop-shadow(-1px -1px 0 $white);\n transform: scale(.71);\n}\n\n.emojione {\n @each $emoji in $black-emojis {\n &[title=':#{$emoji}:'] {\n @extend %white-emoji-outline;\n }\n }\n}\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///common.scss","webpack:///./app/javascript/styles/win95.scss","webpack:///./app/javascript/styles/mastodon/reset.scss","webpack:///./app/javascript/styles/mastodon/variables.scss","webpack:///./app/javascript/styles/mastodon/basics.scss","webpack:///./app/javascript/styles/mastodon/containers.scss","webpack:///./app/javascript/styles/mastodon/lists.scss","webpack:///./app/javascript/styles/mastodon/footer.scss","webpack:///./app/javascript/styles/mastodon/compact_header.scss","webpack:///./app/javascript/styles/mastodon/widgets.scss","webpack:///./app/javascript/styles/mastodon/forms.scss","webpack:///./app/javascript/styles/mastodon/accounts.scss","webpack:///./app/javascript/styles/mastodon/statuses.scss","webpack:///./app/javascript/styles/mastodon/boost.scss","webpack:///./app/javascript/styles/mastodon/components.scss","webpack:///","webpack:///./app/javascript/styles/mastodon/_mixins.scss","webpack:///./app/javascript/styles/mastodon/polls.scss","webpack:///./app/javascript/styles/mastodon/modal.scss","webpack:///./app/javascript/styles/mastodon/emoji_picker.scss","webpack:///./app/javascript/styles/mastodon/about.scss","webpack:///./app/javascript/styles/mastodon/tables.scss","webpack:///./app/javascript/styles/mastodon/admin.scss","webpack:///./app/javascript/styles/mastodon/dashboard.scss","webpack:///./app/javascript/styles/mastodon/rtl.scss","webpack:///./app/javascript/styles/mastodon/accessibility.scss"],"names":[],"mappings":"AAAA,WCwEA,wBACE,+DACA,4ZCrEF,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,sCACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,0BACA,CCtEW,iED6Eb,kBC7Ea,4BDiFb,sBACE,MErFF,iDACE,mBACA,CACA,gBACA,gBACA,WDXM,kCCaN,6BACA,8BACA,CADA,0BACA,CADA,qBACA,0CACA,wCACA,kBAEA,iKAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBD7CW,kBCiDX,iBACE,kBACA,0BAEA,iBACE,aAIJ,iBACE,YAGF,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cD3EoB,mBAPX,WCqFT,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,sCAGE,aACE,gBACA,WACA,YACA,kBACA,uBAIJ,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,kDAKF,YAGE,WACA,mBACA,uBACA,oBACA,sBAGF,YACE,yEAKF,gBAEE,+EAKF,WAEE,sCAIJ,qBAEE,eACA,gBACA,gBACA,cACA,kBACA,8CAEA,eACE,0CAGF,mBACE,gEAEA,eACE,0CAIJ,aHlLoB,kKGqLlB,oBAGE,sDAIJ,aH9LgB,eGgMd,0DAEA,aHlMc,oDGuMhB,cACE,SACA,uBACA,cH1Mc,aG4Md,UACA,SACA,oBACA,eACA,UACA,4BACA,0BACA,gMAEA,oBAGE,kEAGF,aD9NY,gBCgOV,gBCnON,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SFrBI,YEuBF,kBACA,sBAGF,YACE,uBACA,mBACA,WF9BE,qBEgCF,UACA,kBACA,iBACA,6CACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAGF,UACE,YACA,iBACA,6BAEA,UACE,YACA,cACA,SACA,kBACA,uBAIJ,aACE,cF7EsB,wBE+EtB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UFxUA,qCE2UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cF7UkB,mBE+UlB,kBACA,uHAEA,yBAGE,WFrWA,qCEyWF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBFtaoB,8CE2atB,yBACE,gBACA,aACA,kBACA,gBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,YACA,aACA,kBACA,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,qCAIJ,2CArCF,YAsCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAGF,UACE,YACA,CACA,sBACA,wDAEA,QACE,kBACA,2DAGF,mDAXF,YAYI,sCAKN,2CAhEF,eAiEI,sCAGF,2CApEF,cAqEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WF1kBF,gBE4kBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WFplBJ,gBEslBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aF5lBY,oDEmmBlB,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cFxnBc,aE0nBd,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BFzpBc,wEE+pBd,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WFnsBJ,6CEqsBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cFztBgB,uDE4tBhB,oBACE,cF7tBc,qBE+tBd,aACA,gBACA,8DAEA,eACE,WFpvBJ,qCE0vBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aFryBU,8DE2yBV,mBACA,WF7yBE,qFEizBJ,YAEE,eACA,cFpyBkB,2CEwyBpB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBF32BK,+IE82BH,kBAGE,WC53BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,wBCfF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cJhFkB,6BImFlB,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cLeoB,gBKbpB,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cLFoB,wBKMtB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBNPI,uBMUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBNVW,aMYT,0BACA,eACA,cNPoB,iBMSpB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aNtCsB,qBMwCpB,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cN9DoB,+BMkEtB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aN3FsB,aMgGxB,YACE,kBACA,mBNzGW,mCM2GX,qBAGF,YACE,kBACA,0BACA,kBACA,cN3GsB,mBM6GtB,iBAGF,eACE,eACA,cNlHsB,iBMoHtB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cN7HoB,0BMiItB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cN1IoB,qBM4IpB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBNnKW,mCMqKX,cN7JwB,gBM+JxB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cNzMkB,8DM+MpB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eNlPM,CMoPN,cACA,cNpOsB,mBMsOtB,+BANA,iBACA,CNlPM,kCMgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,UNjQM,eMmQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cN1PoB,qCM8PtB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBN/Qa,kBMiRX,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBN5RO,kBM8RP,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBRhTkB,eQkThB,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WNnUE,mBMqUF,gBACA,uBACA,wBAEA,aNzTkB,0BM6TlB,aACE,gBACA,eACA,eACA,cNjUgB,0IMuUlB,UNvVE,+BM+VJ,aACE,YACA,uDAGF,oBR9VkB,wCQkWlB,eACE,eAKN,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cNxYoB,gBM0YpB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WNhbI,8BMmbJ,aACE,cNpakB,gBMsalB,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aNrgBsB,iCMogBxB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cRpiBkB,4JQuiBlB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WNnkBI,gCMqkBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MCplBJ,+CACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WPhDA,cOkDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aT/DgB,0BSiEd,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aPpFsB,sBOuFpB,aTjGkB,yBSqGlB,iBACE,kBACA,gBACA,uBAGF,eACE,iBACA,sBAIJ,kBACE,wBAGF,aACE,eACA,eACA,qBAGF,kBACE,cPlHoB,iCOqHpB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WPlKA,gBOoKA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WPxLE,cO0LF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WP9ME,cOgNF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,kDAIJ,oBACE,WACA,OACA,6BAGF,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WPlSI,cOoSJ,WACA,2CAKE,mBACE,eACA,WP5SA,qBO8SA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WP5UI,cO8UJ,WACA,UACA,oBACA,gBACA,mBACA,sBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBPnWY,oLOuWZ,iBACE,4WAGF,oBTtWkB,mBSyWhB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBTvZkB,WENd,eOgaJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,qBACE,gLAGF,qBAEE,kHAGF,wBP3aoB,gGO+apB,kBP7bQ,kHOgcN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WPhdI,cOkdJ,WACA,UACA,oBACA,gBACA,wXACA,sBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cT1eY,oBS4eZ,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,8DACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,8BACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UP9hBF,aOwiBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cPhiBsB,kBOkiBtB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cPxjBY,sBO4jBd,mCACE,+BACA,cP7jBQ,kBOikBV,oBACE,cPpjBoB,qBOsjBpB,wBAEA,UPxkBI,0BO0kBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBPhlBS,WATL,eO4lBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aPjnBsB,qBOmnBpB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aT/oBoB,yBSipBlB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cPrpBsB,oCOwpBtB,cACE,mBACA,kBACA,4CAGF,aP7pBwB,gBO+pBtB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBPrsBM,YOusBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cPlsBwB,WOosBxB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WPjvBI,qCOmvBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UAEE,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cPxxBsB,0BO2xBtB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WPrzBI,kBOuzBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aP/zBc,0SOy0BZ,+CACE,aAIJ,kBACE,sBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gDACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBPn3Bc,gBOq3BZ,2BAEA,kBPv3BY,gBOy3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SC17BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,gBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,WACA,YACA,gBACA,wBAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WR7EA,gBQ+EA,gBACA,uBACA,+BAGF,aACE,eACA,cRtEgB,gBQwEhB,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WR3GI,gBQ6GJ,qBACA,iBACA,qBACA,sBAGF,eRnHM,oBQqHJ,cR5GS,eQ8GT,cACA,kBAGF,cACE,uCAGF,wBAEE,cRhHsB,oBQoHxB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,cACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBRnKa,mCQqKX,cR9JsB,eQgKtB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cR5LwB,sCQ8LxB,sCACA,6DAEA,aRjNc,sCQmNZ,kCACA,qDAGF,aACE,sCACA,kCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cR3OsB,0BQ6OtB,6BAGF,aACE,cRlPoB,4BQsPtB,aVhQoB,qBUkQlB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aRpRY,gBQsRV,0CAGF,aRzRY,wCQ8Rd,eACE,wCAIJ,UACE,0BAIA,aRzRsB,4BQ4RpB,aR3RsB,qBQ6RpB,qGAEA,yBAGE,iCAIJ,URvTI,gBQyTF,wBAIJ,eACE,kBChUJ,kCACE,kBACA,gBACA,mBACA,8BAEA,yBACE,qCAGF,iBAVF,eAWI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBTpBW,6GSuBT,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBXzEoB,WENd,oBSkFN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UT5FI,gFSgGN,kBAGE,qNAKA,kBTxFoB,4ISgGpB,kBT9GQ,qCSqHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAGF,gBACE,iBACA,mFAGF,UACE,qMAGF,eAGE,iCC/JN,u+KACE,uCAEA,u+KACE,0CAIJ,u+KACE,WCTF,gCACE,4CACA,kBAGF,mBACE,sBACA,oBACA,gBACA,kBACA,cAGF,aACE,eACA,iBACA,cbRoB,SaUpB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,aXVsB,eWYpB,SAIJ,wBb1BsB,Ya4BpB,kBACA,sBACA,WXpCM,eWsCN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,mBACA,WACA,4CAEA,wBAGE,4BACA,sBAGF,eACE,mFAEA,wBXjEQ,gBWqEN,mCAIJ,wBX3DsB,eW8DpB,2BAGF,QACE,wDAGF,mBAGE,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,aX7FW,mBAOW,qGW0FpB,wBAGE,8BAIJ,kBb7GgB,2GagHd,wBAGE,0BAIJ,aX3GsB,uBW6GpB,iBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,kBAIJ,YACE,cACA,kBACA,cAGF,oBACE,CACA,abvJgB,SayJhB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,oCACA,4BACA,2CACA,oBAGF,kCACE,uBAGF,aACE,6BACA,eACA,qBAGF,abjLoB,gCaqLpB,QACE,uEAGF,mBAGE,uBAGF,abjMgB,sFaoMd,aAGE,oCACA,6BAGF,kCACE,gCAGF,aACE,6BACA,8BAGF,ablNkB,uCaqNhB,aACE,wBAKN,sBACE,0BACA,yBACA,kBACA,YACA,8BAEA,yBACE,mBbrOY,Qa4OhB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,oCACA,4BACA,2CACA,yBAGF,kCACE,4BAGF,aACE,6BACA,eACA,0BAGF,abzQoB,qCa6QpB,QACE,sFAGF,mBAGE,CAKF,0BADF,iBAUE,CATA,WAGF,WACE,cACA,qBACA,QACA,SAEA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,eAIJ,YACE,iCAGE,mBACA,eAEA,gBACA,wCAEA,ab9TkB,sDakUlB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBbnVgB,yDa0VpB,aXvVW,mBWyVT,mBXlVoB,oCWoVpB,iBACA,kBACA,eACA,gBACA,6CAEA,aXjWS,gBWmWP,CAII,kRADF,eACE,wCAKN,abjXc,gBamXZ,0BACA,yIAEA,oBAGE,sCAKN,iBACE,MACA,QACA,kDAGF,iBACE,mGAGF,iBAGE,WACA,8BAGF,QACE,wBACA,UACA,qDAEA,WACE,mBACA,UACA,mFAIJ,aAEE,sBACA,WACA,SACA,cX3ZS,gBATL,aWuaJ,oBACA,eACA,gBACA,SACA,UACA,yIAEA,ab1ac,Cawad,sHAEA,ab1ac,Cawad,8HAEA,ab1ac,Cawad,4GAEA,ab1ac,+Fa8ad,SACE,qCAGF,kFAvBF,cAwBI,sCAIJ,iBACE,+CAGF,gBACE,0BACA,iBACA,mBACA,YACA,qBACA,kEAEA,SACE,qCAGF,8CAZF,sBAaI,gBACA,2DAIJ,iBACE,SACA,kDAGF,qBACE,aACA,kBACA,SACA,WACA,WACA,sCACA,mBX5csB,0BW8ctB,cXtdS,eWwdT,YACA,6FAEA,aACE,wDAIJ,YACE,eACA,kBACA,yPAEA,kBAIE,wGAIJ,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,oCAGF,6BACE,0CAEA,aACE,gBACA,uBACA,mBACA,2CAGF,eACE,0CAGF,aACE,iBACA,gBACA,uBACA,mBACA,8EAIJ,aAEE,iBACA,WACA,YACA,2DAGF,ab5hBgB,wCagiBhB,aX3hBW,oBW6hBT,eACA,gBXviBI,sEW0iBJ,eACE,uEAGF,YACE,mBACA,YACA,eACA,8DAGF,UACE,cACA,WACA,uEAEA,iFACE,aACA,uBACA,8BACA,UACA,4BACA,oFAEA,aACE,cXljBgB,eWojBhB,gBACA,aACA,oBACA,6QAEA,aAGE,8EAIJ,SACE,0EAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,gFACA,aACA,UACA,4BACA,mFAEA,sBACE,cXllBgB,SWolBhB,UACA,SACA,WACA,oBACA,eACA,gBACA,yFAEA,UX7mBF,8GWinBE,WACE,cXjmBc,CAjBlB,oGWinBE,WACE,cXjmBc,CAjBlB,wGWinBE,WACE,cXjmBc,CAjBlB,+FWinBE,WACE,cXjmBc,iFWsmBlB,SACE,wEAKN,iBACE,sBX/nBE,wBWioBF,sBACA,4BACA,aACA,WACA,gBACA,8CAIJ,YACE,mBACA,0BACA,aACA,8BACA,cACA,qEAEA,YACE,uGAEA,gBACE,qGAGF,YACE,6IAEA,aACE,2IAGF,gBACE,0HAKN,sBAEE,cACA,0EAGF,iBACE,iBACA,sCAIJ,YACE,yBACA,YACA,cACA,4EAEA,eACE,iBACA,oBAKN,cACE,kDACA,eACA,gBACA,cb9rBgB,4CaisBhB,aXlsBY,kCWusBd,2CACE,WC7sBF,8DDktBE,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,kBAIJ,iBACE,mBACA,mBX7sBsB,aW+sBtB,gBACA,gBACA,cACA,0BAGF,iBACE,gBACA,0BAGF,WACE,iBACA,gCAGF,aXtuBa,cWwuBX,eACA,iBACA,gBACA,mBACA,qBACA,kCAGF,UACE,iBACA,+BAGF,cACE,4CAGF,iBAEE,eACA,iBACA,qBACA,gBACA,gBACA,uBACA,gBACA,WX3wBM,wDW8wBN,SACE,wGAGF,kBACE,sJAEA,oBACE,gEAIJ,UACE,YACA,gBACA,oDAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,gDAGF,kBACE,qBACA,sEAEA,eACE,gDAIJ,aXnyBc,qBWqyBZ,4DAEA,yBACE,oEAEA,aACE,4EAKF,oBACE,sFAEA,yBACE,wDAKN,abj0Bc,8Eas0BhB,aACE,0GAGF,kBb10BgB,sHa60Bd,kBACE,qBACA,8IAGF,QACE,0XAGF,mBAGE,0FAIJ,YACE,wJAEA,aACE,+BAKN,oBACE,gBACA,yCAEA,UACE,YACA,gBACA,iCAGF,kBACE,qBACA,4CAEA,eACE,iCAIJ,aX52BwB,qBW82BtB,uCAEA,yBACE,+CAIA,oBACE,oDAEA,yBACE,gDAKN,aACE,6CAKN,gBACE,oCAGF,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,qBACA,oFAEA,yBAEE,gCAIJ,oBACE,kBACA,uBACA,SACA,cXr6BW,gBWu6BX,eACA,cACA,yBACA,iBACA,eACA,sBACA,4BAGF,abr7BkB,Sau7BhB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,kBAIA,SACE,mBACA,wCAEA,kBACE,8CAEA,sBACE,iFAIJ,kBAEE,SAMJ,yBACA,kBACA,gBACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QARF,kBAWI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,aXj/BoB,qCWq/BpB,aX5/BS,6BWggCT,aXz/BoB,CAPX,kEWwgCT,aXxgCS,kCW2gCP,ab9gCgB,gEakhChB,UXxhCE,mBAgBgB,sEW4gChB,kBACE,+CAQR,sBACE,qEAEA,aACE,qDAKN,ab1iCkB,Ya6iChB,eACA,uBAGF,abjjCkB,qCaqjClB,aACE,eACA,mBACA,eAGF,cACE,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,gBACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,cbtmCgB,CawmChB,iBACA,eACA,kBACA,+CAEA,ab7mCgB,uBainChB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cb1oCY,4BagpClB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,kEAGF,gBACE,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cbxsCgB,ea0sChB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,2BAGF,aX/tCa,eWiuCX,6BAEA,abxuCgB,Sa6uClB,YACE,gCACA,8BAEA,aACE,cACA,WXvvCI,qBWyvCJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,UAGF,YACE,gCACA,kBAEA,SACE,gBACA,2CAEA,aACE,iCAIJ,aACE,cACA,cXxwCoB,gBW0wCpB,qBACA,eACA,mBAIJ,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,iBE3yCE,iCACA,wBACA,4BACA,kBF0yCA,yBAEA,oBACE,sBACA,iBACA,4BAGF,iBErzCA,iCACA,wBACA,4BACA,kBFozCE,gBACA,kBACA,gCAEA,UACE,kBACA,sBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WXr0CE,6BWu0CF,gBACA,eACA,oBAKN,cACE,0BAGF,UACuB,sCE30CrB,+BF60CA,iBEt1CA,iCACA,wBACA,4BACA,WFq1CuB,sCE/0CvB,kCFk1CA,iBE31CA,iCACA,wBACA,4BACA,WF01CuB,sCEp1CvB,kBFs1CE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,sBAGF,YACE,6BACA,cbz2CgB,6Ba42ChB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,+BAGF,YACE,4CAEA,qBACE,oFAIA,QACE,WACA,uDAGF,WACE,iBACA,gBACA,WACA,4BAKN,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,+BACA,eACA,oCACA,kCAEA,+BACE,gCAGF,aACE,yBACA,eACA,cX56CoB,kCWg7CtB,aACE,eACA,gBACA,WXn8CI,CWw8CA,2NADF,eACE,oBAMR,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,6JAGF,oBAME,4DAKA,UXx+CM,kBW8+CN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,aX1/C0B,cW4/CxB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WX1hDI,kCW+hDR,UACE,kBACA,iBAGF,WACE,UACA,kBACA,SACA,WACA,iBAGF,UACE,kBACA,OACA,MACA,YACA,eACA,Cb9iDgB,gHawjDhB,abxjDgB,wBa4jDhB,UACE,wCAGF,kBbhkDgB,cEKL,8CW+jDT,kBACE,qBACA,wBAKN,oBACE,gBACA,eACA,cXlkDsB,eWokDtB,iBACA,kBACA,4BAEA,abllDoB,6BaslDpB,cACE,gBACA,uBACA,uCAIJ,UACE,kBACA,CXjmDU,mEWwmDZ,aXxmDY,uBW4mDZ,aX7mDc,4DWmnDV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UXvoDM,0BWyoDJ,8BAIJ,WACE,eAGF,aACE,eACA,gBACA,uBACA,mBACA,qBAGF,eACE,wBAGF,cACE,+DAKA,yBACE,eAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cX9nD4B,eAEC,0DW+nD3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cXtpD4B,eAEC,WWupD3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,iBAIJ,YACE,aACA,mBACA,cACA,eACA,cXvsDsB,wBW0sDtB,aXzsDwB,mBW6sDxB,aACE,4BAGF,oBACE,0CAGF,iBACE,6DAEA,iBACE,oBACA,qCACA,UACA,4EAGF,mBACE,gCACA,UACA,0BAKN,aACE,gBACA,iBACA,gBACA,gBACA,kCAGF,aACE,gBACA,gBACA,uBACA,+BAGF,aACE,qBACA,WAGF,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBX1wD0B,cW4wDxB,kBACA,uCACA,aACA,mBAEA,eACE,qBAGF,yBACE,oBAGF,yBACE,uBAGF,sBACE,sBAGF,sBACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BX/yDsB,2BWmzDxB,WACE,iBACA,uBACA,yBXtzDsB,8BW0zDxB,QACE,iBACA,uBACA,4BX7zDsB,6BWi0DxB,SACE,gBACA,2BACA,2BXp0DsB,wBW00DxB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBXh1DsB,cARb,gBW21DT,uBACA,mBACA,yFAEA,kBbl2DkB,cEWI,UW41DpB,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBX12DsB,cW42DtB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBXn4DsB,cARb,gBW84DT,uBACA,mBACA,oDAEA,SACE,oDAGF,kBbz5DkB,cEWI,iBWq5D1B,qBACE,eAGF,YACE,cACA,mBACA,2BACA,gBACA,kBACA,4BAEA,iBACE,uBAGF,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,gKAMJ,WAIE,mCAIJ,YACE,mBACA,uBACA,YACA,SAGF,WACE,kBACA,sBACA,aACA,sBACA,qBAEA,kBXlgEW,8BWogET,+BACA,KAIJ,aACE,CACA,qBACA,WACA,YACA,aAJA,YAYA,CARA,QAGF,WACE,sBACA,CACA,qBACA,kBACA,cAGF,aACE,cACA,sBACA,cXrhEsB,qBWuhEtB,kBACA,eACA,oCACA,iBAGF,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WX7lEM,qBW+lEN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCAMA,mEAHF,kBAII,4BACA,yBAIJ,+BACE,cbhnEkB,sBaonEpB,eACE,aACA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,YACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,2BACE,gBACA,uCAEA,SACE,SACA,wCAGF,eACE,wCAGF,gBACE,iBACA,qDAGF,UACE,gLAGF,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,iBACA,6DAGF,UACE,CAIA,yFAGF,eACE,8DAGF,gBACE,kBACA,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WXpyEM,kBWsyEN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,4DAGF,kBAGE,yBAGF,aACE,iBAGF,eAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,mBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBbz2EkB,yBa22ElB,gBACA,kBACA,eACA,gBACA,iBACA,WXt3EI,mDW23ER,oBACE,gBAGF,WACE,gBACA,aACA,sBACA,yBACA,kBACA,gCAEA,gBACE,oBACA,cACA,gBACA,6BAGF,sBACE,8BAGF,MACE,kBACA,aACA,sBACA,iBACA,oBACA,oBACA,mDAGF,eACE,sBX75EI,0BW+5EJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,gBAMF,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAiBA,CAhBA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,kBACA,uBAEA,kBXp9EW,0BWy9Eb,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,UACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,sCAGF,yBAjBF,aAkBI,iBAIJ,kBACE,eACA,gBACA,iBAGF,aACE,eACA,mBACA,mBACA,aACA,mBACA,kBACA,mBAEA,iCACE,yBAEA,kBACE,mCACA,aAKN,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,sBAIJ,qBACE,WACA,mBACA,cb9iFoB,eagjFpB,cACA,eACA,oBACA,SACA,iBACA,aACA,SACA,UACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cbnkFoB,eaqkFpB,mBACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,CACA,OACA,UACA,eAGF,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,0CACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBXroFW,qCWuoFX,sEAGF,wBACE,4CAGF,wBbjpFsB,+EaqpFtB,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,yBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBb7sFoB,caitFtB,kBACE,WXxtFM,cW0tFN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cXztFsB,kGW4tFtB,sBAGE,WXhvFE,kCWovFJ,ab9uFkB,oBaovFtB,oBACE,iBACA,qBAGF,oBACE,kBACA,CACA,gBACA,CX1vFW,eW6vFX,iBACA,wCANA,cACA,CACA,eACA,mBAaA,CAVA,mBX9vFW,aFLK,iBaywFhB,CAEA,wBACA,eACA,yDAGF,kBX3wFa,cWixFb,aACE,kBAGF,ab1xFkB,ca4xFhB,8BACA,+BACA,4EAEA,0BAGE,CAHF,uBAGE,CAHF,kBAGE,kDAMA,sBACA,YACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,cACE,0DAEA,abxzFY,0Ba0zFV,sDAIJ,oBACE,cXnzFkB,sMWszFlB,yBAGE,oDAKN,ab10FgB,0Bag1FhB,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cX50FkB,aW80FlB,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,aXv2FkB,qBW82FxB,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,aACE,sBACA,WACA,SACA,cX94FW,gBATL,aW05FN,oBACA,eACA,gBACA,SACA,UACA,kBACA,qBAEA,SACE,qCAGF,cAnBF,cAoBI,oDAIJ,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAKJ,uBACE,2BACA,gDAGF,ab17FkB,6Ba47FhB,uDAGF,ab77FsB,cai8FtB,YACE,eACA,yBACA,kBACA,cbv8FgB,gBay8FhB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cXt9FoB,uBWw9FpB,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UXh/FE,yBWu/FJ,cACE,kBACA,YACA,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACA,YACA,SACA,2BAIA,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cX1gGsB,gBW4gGtB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,aXxhGwB,oBW4hGxB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,YAGF,aACE,cbrnGgB,6BaunGhB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,yBAGF,iBACE,eACA,gBACA,cb/oGgB,mBEKL,eW6oGX,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,cb7qGY,qCairGd,cACE,gBACA,yBAKN,iBACE,cACA,UACA,gCAEA,mCACE,uCAEA,aACE,WACA,kBACA,aACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,4EACA,wCAIJ,SACE,kBACA,gBAIJ,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,2BACA,4BACA,uBAEA,QACE,SACA,yBACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,ab/uGoB,4CaovGlB,abpvGkB,sCasvGhB,4CAIJ,SAEE,yBAIJ,WACE,aACA,uBAGF,kBACE,iCAGF,iBACE,wBAGF,kBACE,SACA,cXrwGsB,eWuwGtB,eACA,eACA,8BAEA,aACE,CAKA,kEAEA,UXnyGI,mBWqyGF,6BAKN,eACE,gBACA,gBACA,cX7xGsB,0DW+xGtB,UACA,UACA,kBACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,mCAIJ,kBACE,aACA,mCAIA,aX5zGsB,0BW8zGpB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,sBAGF,oBACE,iBACA,oBAGF,ab12GkB,ea42GhB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,gCAGF,kBACE,gBXz+GM,WACA,eW2+GN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,eXv/GQ,cAiBgB,SWy+GtB,UACA,WACA,YACA,kBACA,wBACA,CADA,oBACA,CADA,eACA,iEAEA,SAGE,cACA,yBAIJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,iBAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,aACE,SACA,QACA,WACA,YACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,0BACA,kBACA,iBACA,WXtjHE,gBWwjHF,eACA,+LAMA,yBACE,mEAKF,yBACE,6BAMR,kBACE,iBAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,aXplHwB,eWslHtB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SEtmHF,sBACA,WACA,SACA,gBACA,oBACA,mBbRW,cAOW,eaItB,SACA,+EFgmHI,aACE,CEjmHN,qEFgmHI,aACE,CEjmHN,yEFgmHI,aACE,CEjmHN,gEFgmHI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,abxoHc,iBa0oHZ,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,aXrpHoB,0HW0pHpB,cAEE,gBACA,cbzqHY,kZa4qHZ,aAGE,gEAIJ,wBACE,iDAGF,eX3rHI,kBa0BN,CAEA,eACA,cbbsB,uCaetB,UF8pHI,mBX5qHoB,oDagBxB,wBACE,cblBoB,eaoBpB,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,cbzCS,sDWwrHT,WACE,mDAGF,aX5rHS,kBW8rHP,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UXxtHQ,kBW0tHN,cACA,mBACA,sBX7tHM,yBW+tHN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,iBAIJ,aACE,iBACA,wBAGF,aX/tHwB,qBWiuHtB,mBACA,gBACA,sBACA,6EAGF,abnvHkB,mBEKL,kBWmvHX,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBAEA,4EAfF,cAgBI,6FAGF,eACE,mFAGF,abxwHoB,qBa0wHlB,qGAEA,yBACE,uCAKN,kBACE,aACA,eAGF,qBACE,8BAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA1BF,qBAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,mCAIJ,8BACE,2DACA,CADA,kDACA,iCAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,EA/BF,wBAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,kCAIJ,yBACE,8EACA,CADA,qEACA,8BAGF,eXt2HQ,kBWw2HN,sCACA,kBACA,eAEA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBXl4HM,kBWo4HN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,+BAGE,2DAIJ,WACE,wBAKF,2BACE,cAIJ,kBACE,0BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBX37HW,kCW67HX,uBAGF,MACE,aACA,mBACA,uBACA,cX57HwB,eW87HxB,gBACA,0BACA,kBACA,kBAGF,YACE,cbl9HgB,gBao9HhB,aACA,sBAEA,cACE,kBACA,uBAGF,cACE,yBACA,gBACA,cACA,0BAIJ,aACE,4BAGF,UACE,WACA,kBACA,mBb3+HgB,kBa6+HhB,eACA,2BAGF,iBACE,OACA,MACA,WACA,mBbn/HoB,kBaq/HpB,eAGF,aACE,wBACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,SACA,WACA,YACA,CAQE,6GAKN,SACE,oBACA,CADA,WACA,6BAGF,iBACE,gBXliIM,uCWoiIN,kBACA,iBACA,gBACA,iCAEA,yBACE,oCAGF,sBACE,2BAIJ,aXziIa,aW2iIX,eACA,aACA,kEAEA,kBbljIoB,WENd,UW4jIJ,CX5jII,4RWikIF,UXjkIE,wCWukIN,kBACE,iCAIJ,YACE,mBACA,uBACA,kBACA,oCAGF,aACE,cbhlIgB,2CamlIhB,eACE,cACA,cXhlIS,CWqlIL,wQADF,eACE,mDAON,eXrmIM,0BWumIJ,qCACA,gEAEA,eACE,0DAGF,kBbxmIkB,uEa2mIhB,UXjnIE,uDWunIN,yBACE,sDAGF,aACE,sCACA,SAIJ,iBACE,gBAGF,SEznIE,sBACA,WACA,SACA,gBACA,oBACA,mBbRW,cAOW,eaItB,SACA,cFmnIA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,sCACA,eACA,WACA,YACA,cXzqIsB,eW2qItB,oBACA,0BAEA,mBACE,WACA,0BAIJ,uBACE,iCAEA,mBACE,uBACA,gCAIJ,QACE,uBACA,cb5sIc,ea8sId,uCAEA,uBACE,sCAGF,aACE,yBAKN,ab1tIkB,mBa4tIhB,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,cblvIc,iCaqvId,oBACE,iBACA,8FAIJ,eAEE,0BAIJ,aACE,aACA,cXtvIwB,qBWwvIxB,+FAEA,aAGE,0BACA,uBAIJ,YACE,cXpwIsB,kBWswItB,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,0BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,cXjyI0B,eAEC,CW2yI7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,yBACE,sBACA,SACA,WX73IM,eW+3IN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,cX15IsB,mFW65ItB,yBAGE,wBAKN,oBACE,sBAGF,qBX17IQ,YW47IN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wBb/7IsB,qBam8ItB,iBACE,UACA,QACA,YACA,6CAGF,kBX/7I0B,cARb,kBW48IX,gBACA,aACA,sBACA,oBAGF,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,mDAGF,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,abngJgB,SasgJd,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,qiBAGF,aXlhJS,qwDWshJP,aAGE,sBAMR,sBACE,eAGF,iBACE,eACA,mBACA,sBAEA,eACE,cXziJS,kBW2iJT,yBACA,eACA,qBAGF,kBXhjJW,cAQa,gBW2iJtB,aACA,kBACA,kBAIJ,oBACE,eACA,gBACA,iBACA,wFAGF,kBAME,cXtkJW,kBWwkJX,gBACA,eACA,YACA,kBACA,sBACA,4NAEA,aACE,eACA,mBACA,wLAGF,WACE,UACA,kBACA,SACA,WACA,kRAGF,aACE,wBAKF,eX5mJM,CAiBkB,gBW8lJtB,oBACA,iEXhnJI,2BAiBkB,yBWumJ1B,iBACE,aACA,iCAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,2GAIJ,YAIE,8BACA,mBXtnJwB,aWwnJxB,iBACA,2HAEA,aACE,iBACA,cb1oJc,mBa4oJd,2IAGF,aACE,6BAIJ,cACE,2BAGF,WACE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,abtsJoB,iLa0sJpB,aXvsJW,qCW4sJX,oDAjBF,eAkBI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,aXtuJS,gBATL,aWkvJJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,eXlwJI,yBWowJF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,aXzwJO,oBW2wJL,eACA,gBXrxJA,+CW0xJJ,YACE,8BACA,mBACA,4CAIJ,aACE,cXzxJS,eW2xJT,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,aXpyJS,eWsyJP,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eACE,eACA,wBAEA,eACE,iBACA,2CAGF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,aXh1JO,aWk1JL,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBbp2JY,WENd,uDWi3JA,iBACE,oMAUR,aACE,iIAIJ,4BAIE,cbj4JgB,eam4JhB,gBACA,6cAEA,aAGE,6BACA,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,aX56JS,CW86JP,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,wBbh8JsB,Wak8JpB,kBACA,MACA,OACA,aACA,6BAGF,aACE,kBACA,WXj9JM,0BWm9JN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,wDAKE,SACE,uBAKN,eACE,6BAEA,UACE,kBAIJ,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cbt/Jc,iBaw/Jd,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cbphKY,gBashKZ,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,abviKc,gBa+iKhB,cACA,CACA,iBACA,CACA,UACA,qCANF,qBACE,CACA,eACA,CACA,iBAYA,CAVA,qBAGF,QACE,CACA,aACA,WACA,CACA,iBAEA,qEAGE,cACE,MACA,gCAKN,cACE,cACA,qBACA,cX9jKwB,kBWgkKxB,UACA,mEAEA,WAEE,WACA,CAIA,2DADF,mBACE,CADF,8BACE,CADF,gBX3lKM,CW4lKJ,wBAIJ,UACE,YACA,CACA,iBACA,MACA,OACA,UACA,gBXvmKM,iCW0mKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,qCAGF,cACE,YACA,oBACA,CADA,8BACA,CADA,gBACA,kBACA,QACA,2BACA,WACA,UACA,sCAGF,0BACE,2BACA,gBACA,kBACA,qKAMA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,iCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gBXvsKM,eWysKN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,qBAGF,eACE,gBACA,UACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gBXpxKI,cAiBgB,gBWswKpB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,0DAEA,aACE,wBAIJ,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,UXn1KE,+EW21KN,cAGE,gBACA,6BAGF,UXl2KM,iBWo2KJ,yBAGF,oBACE,aACA,mDAGF,UX52KM,uBWi3KN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,WXj6KE,sFWo6KF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,kBAON,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,gBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WX3jLF,gBW6jLE,gBACA,uBACA,0CAGF,aACE,eACA,cXpjLc,gBWsjLd,gBACA,uBACA,yBAKN,kBXpkLS,aWskLP,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,6BAOV,YACE,eACA,gBACA,wBAGF,QACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cX5oLoB,eW8oLpB,eACA,gBACA,kBACA,qBACA,kBACA,WACA,mBACA,yJAEA,aXtpLsB,qWWypLpB,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,cAOV,kBX1sLa,sBW6sLX,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,2BAKN,eACE,gBAGF,eXxwLQ,kBa0BN,CACA,sBACA,gBACA,cbbsB,uCaetB,mBAEA,wBACE,cblBoB,eaoBpB,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,cbzCS,UWmwLb,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cXtwLsB,gBWwwLtB,gBAEA,abrxLkB,0BauxLhB,sBAEA,oBACE,4BAMR,GACE,cACA,eACA,WATM,mBAMR,GACE,cACA,eACA,qEAGF,kBAIE,sBAEE,8BACA,iBAGF,0BACE,kCACA,+BAIA,qDACE,uEACA,+CAGF,sBACE,8BACA,6DAIA,6BACE,6CACA,4EAIF,6BACE,6CACA,+CAOJ,gBAEE,+BAGF,gBACE,6CAEA,0BACE,wDAGF,eACE,6DAGF,iBACE,iBACA,2EAIA,mBACE,UACA,gCACA,WACA,0FAGF,mBACE,UACA,oCACA,eAOV,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBX94LO,WATL,eW05LF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,sBAMJ,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cbj8Lc,Cao8Ld,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,qBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,uCAEA,SACE,kCAKN,aACE,cACA,mBAIJ,cACE,kBACA,MACA,OACA,WACA,YACA,0BACA,cAGF,kBX5/La,sBW8/LX,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kBXljMa,sBWojMX,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,cAIJ,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBX5mMM,yDW+mMN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBXvnMI,uBW2nMN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UXxpMI,eW0pMF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,4BAKN,aXlqMwB,eWoqMtB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WXtyMA,gBWwyMA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cX/xMc,gBWiyMd,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,WXn0ME,gDWu0MJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,aXl1MU,yBWw1Md,cACE,gCAEA,cACE,cX70MkB,eW+0MlB,kCAEA,oBACE,cXl1MgB,qBWo1MhB,iBACA,gBACA,yCAEA,eACE,WXz2MF,iBWk3MN,ab92MgB,mBag3Md,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cbx4MY,gBa04MZ,uBACA,mBACA,4BAEA,eACE,uBAGF,aXt4MkB,qBWw4MhB,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cXh6MoB,0BWo6MtB,aACE,WACA,2CAEA,gCACE,yBACA,0CAGF,wBACE,eAMR,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,eACA,uBAGF,oBACE,mBbn9MkB,kBaq9MlB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cX/9MkB,kBWi+MlB,+BAGF,aXp+MoB,eWs+MlB,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UX9/ME,qBWggNA,oHAEA,yBAGE,0BAKN,qBACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UX1hNI,gBWgiNR,kBACE,eACA,aACA,qBACA,0BAEA,WACE,cACA,qCAEA,yBAJF,YAKI,4BAIJ,wBACE,cACA,kBACA,qCAEA,0BALF,UAMI,uBAIJ,qBACE,WACA,aACA,kBACA,eACA,iBACA,qBACA,gBACA,gBACA,gBACA,aACA,sBACA,6BAEA,aACE,gBACA,mBACA,mBACA,8BAGF,iBACE,SACA,WACA,cACA,mBb5kNgB,kBa8kNhB,cACA,eACA,4BAIJ,YACE,cX3kNoB,kBW6kNpB,WACA,QACA,mDAIJ,YACE,oDAGF,UACE,gBAGF,YACE,eACA,mBACA,gBACA,iBACA,wBACA,sBAEA,aACE,mBACA,SACA,kBACA,WACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,cACA,aACA,mBACA,2BACA,2CACA,6BAEA,aACE,aACA,WACA,YACA,iCAEA,aACE,SACA,WACA,YACA,eACA,gBACA,sBACA,sBACA,CADA,gCACA,CADA,kBACA,6BAIJ,aACE,cACA,eACA,gBACA,kBACA,gBACA,cXzoNkB,mFW6oNpB,kBAGE,4BACA,2CACA,wGAEA,aACE,6BAIJ,0BACE,2CACA,yBACA,yDAEA,aACE,uCAKN,UACE,oCAGF,WACE,8BAGF,aX5qNsB,SW8qNpB,eACA,WACA,cACA,cACA,YACA,aACA,mBACA,WACA,2BACA,2CACA,2GAEA,SAGE,cACA,4BACA,2CACA,qCAKF,SACE,OGxtNN,eACE,eACA,UAEA,kBACE,kBACA,cAGF,iBACE,cACA,mBACA,WACA,aACA,sBAEA,kBhBRkB,egBapB,iBACE,aACA,cACA,iBACA,eACA,gBACA,qBAEA,oBACE,qBACA,yBACA,4BACA,oEAGF,YAEE,kCAGF,aACE,gCAGF,aACE,sBACA,WACA,eACA,cdtCO,UcwCP,oBACA,gBdlDE,yBcoDF,kBACA,iBACA,sCAEA,oBhBlDgB,0BgBuDlB,cACE,wBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBd3FY,8EcgGZ,oBAGE,iBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,cACA,cAGF,aACE,qBACA,oBAEA,cACE,eAIJ,eACE,mBACA,chBjIc,agBqIhB,cACE,uBACA,UACA,SACA,SACA,chB1Ic,0BgB4Id,kBACA,mBAEA,oBACE,sCAGF,kCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,4BACE,gCAEA,YACE,2CAGF,4BACE,aACA,aACA,mBACA,mGAEA,YAEE,+GAEA,oBhBhLgB,sDgBsLpB,cACE,gBACA,iBACA,YACA,oBACA,chB7Lc,sCgBgMd,gCAGF,YACE,mBACA,8CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,cd5MS,qBc8MT,WACA,UACA,oBACA,qXACA,yBACA,kBACA,CACA,yBACA,mDAGF,aACE,cAIJ,ahBnOkB,qBgBsOhB,+BACE,6BAEA,2BACE,eChPN,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,cCtBJ,cACE,qBACA,chBSW,2BgBNX,qBAEE,iBACA,+BAGF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mBhBHsB,4BgBOxB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,clB/BgB,ckBiChB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,alBhDsB,mCkBmDpB,aACE,oDAGF,WACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBlBjEoB,uBkBsEpB,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gBhB5FM,sBgB8FN,sGAEA,+BAEE,oBAKF,2BACA,gBhBxGM,0BgB2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,gCACA,chBzGS,yBgB2GT,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,sCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gBhBpKI,mBgByKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,chBvKsB,mDgB0KtB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,YCrMF,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,iDACE,eACA,gBACA,gBACA,qBACA,cjBJsB,oBiBOtB,anBjBoB,0BmBmBlB,6EAEA,oBAGE,wCAIJ,ajBlBsB,oBiBuBtB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,cjBhCsB,qBiBoCxB,iBACE,cjBrCsB,uBiByCxB,eACE,mBACA,kBACA,kBACA,yHAGF,4CAME,mBACA,oBACA,gBACA,cjBzDsB,qBiB6DxB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,cjBrIkB,iCiByIpB,uBACE,gBACA,gBACA,cnBxJY,qDmB4Jd,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,kDACA,eACA,iBACA,WjBpNI,iBiBsNJ,kBACA,qEAEA,aAEE,6CAIA,ajB9MoB,oCiBmNtB,4CACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,4CACE,eACA,iBACA,gBACA,cjB/OkB,mBiBiPlB,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAEA,UACE,YACA,CACA,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iCAIJ,cACE,mCAEA,aACE,WjBzSA,qBiB2SA,uDAGE,yBACE,2CAKN,aACE,cjBrSgB,kCiB6StB,iDAEE,CACA,eACA,eACA,iBACA,mBACA,cjBpToB,sCiBuTpB,anBjUkB,0BmBmUhB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,4CACE,eACA,iBACA,gBACA,mBACA,cjB7UsB,wBiBgVtB,iDACE,cACA,eACA,gBACA,cACA,kBAIJ,4CACE,eACA,iBACA,gBACA,mBACA,cjB9VsB,kBiBmWtB,cjBnWsB,mCiBkWxB,4CACE,CACA,gBACA,gBACA,mBACA,cjBvWsB,kBiB4WtB,cjB5WsB,kBiBqXtB,cjBrXsB,mCiBoXxB,4CACE,CACA,gBACA,gBACA,mBACA,cjBzXsB,kBiB8XtB,cjB9XsB,mCiBsYxB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,0CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBjB1bW,kBiB4bT,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAGF,UACE,YACA,0BACA,mDAGF,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA7DF,iBA8DI,mFAIJ,qBAGE,mBjBnjBS,kBiBqjBT,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,ajB3kBsB,qCiB+kBtB,eACE,WjBjmBE,gBiBmmBF,2CAEA,ajBrlBkB,gDiBwlBhB,ajBvlBkB,+CiB6lBtB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SjBvrBI,YiByrBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,cjBjsBkB,6BiBqsBpB,eACE,iBACA,+BAGF,kBjBjtBS,aiBmtBP,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,4CACE,eACA,gBACA,cACA,qCAGF,cACE,cjBhvBgB,uFiBsvBtB,eACE,cASA,CjBhwBoB,2CiB6vBpB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,cjB71BsB,qBiB+1BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,cnBj3Bc,SoBNlB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBlBhBW,UkBqBX,apBxBoB,0BoB0BlB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBlBzDS,6BkB2DP,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+CACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,clB5FsB,gBkB8FtB,0DAEA,UlBhHM,wDkBoHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBlBvJS,sBkByJT,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBlBtKS,gCkByKT,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBlB9LS,uCkBiMP,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,clB/NgB,gBkBiOhB,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,uCAEA,iBACE,sCAGF,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBC7RN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBnBPO,YmBSP,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SnBxCA,YmB0CE,kBACA,YACA,uCAIJ,aACE,cnBjCgB,qBmBmChB,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,cnB3EgB,qBmB6EhB,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UnBzGA,yBmB2GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UnBjIE,yBFMc,gBqB8Hd,gBACA,mEAEA,qBACE,6DAKN,yBACE,iCAKF,UACA,gBAEA,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,anBnMsB,emBqMpB,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,anB9MsB,emBgNpB,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,cnB1NkB,mBmB4NlB,kBACA,gCACA,4BAGF,cACE,cnBjOoB,iBmBmOpB,gBACA,0CAGF,UnBxPI,gBmB0PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WnBxQE,oBmB0QF,iBACA,gBACA,gBACA,2BAGF,cACE,iBACA,cnBjQoB,mBmBmQpB,kCAEA,UnBtRE,gBmBwRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,0CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BrB7UgB,YqBoVtB,UACE,SACA,cACA,WACA,sDAKA,anBnVsB,0DmBsVpB,arBhWkB,4DqBqWpB,anB1Wc,gBmB4WZ,4DAGF,anB9WU,gBmBgXR,0DAGF,arBjXgB,gBqBmXd,0DAGF,anBtXU,gBmBwXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,6CAKN,aACE,mBACA,2BAGF,oBACE,cnBxZkB,qBmB0ZlB,yBACA,eACA,gBACA,gCACA,iCAEA,UnBhbE,gCmBkbA,oCAGF,arB/agB,gCqBibd,CAkBJ,gBAIJ,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,cnB7dsB,CmBkelB,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,arBvjBoB,qBqByjBlB,oBAEA,yBACE,SAKN,aACE,YAGF,gBACE,eACA,mBnBpkBW,gCmBskBX,uBAEA,eACE,oBAGF,YACE,2BACA,mBACA,cnBxkBoB,emB0kBpB,eACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,arB9mBgB,sDqBknBhB,anBrmBwB,qBmBymBtB,gBACA,yDAIJ,oBAIE,cnBlnBwB,iGmBqnBxB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBnB9qBc,yBmBkrBd,yBACE,wBAGF,yBnBnrBU,wBmBwrBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,anBprBoB,uBmB0rBpB,wBACA,qBAGF,arB1sBgB,cqB+sBlB,kBnB1sBa,kBmB4sBX,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,cnBztBkB,yBmB2tBlB,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,anBvvBM,6BmB8vBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,cnB9vBgB,mLmBiwBhB,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,arBzxBU,iBqB2xBR,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,cnBzxBgB,WmBgyBxB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,anB71BY,8CmBk2Bd,qBACE,aACA,WnBr2BI,cmB02BR,iBACE,qBAGF,wBACE,kBACA,2BAEA,cACE,mBnB12BS,gCmB42BT,kCAEA,cACE,cACA,gBACA,eACA,gBACA,cnB32BoB,qBmB62BpB,mBACA,uHAEA,UnBj4BE,iCmBw4BJ,cACE,crBr4BY,uCqBy4Bd,YACE,8BACA,mBACA,sCAGF,eACE,sBCt5BN,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WpBrCI,6CoBuCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,cpBjCoB,kBoBmCpB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,apBrDwB,gBoBuDtB,qBACA,UC3EJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,0BAGF,SACE,WACA,0DAGF,iBAEE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,+DACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,kkEC7ZJ,kIACE,CADF,sIACE,qBACA,sCxB6EF,QACE,qBACE,gBACA,SAGF,SACE,gBACA,gBACA,+BAIJ,eAEE,sBACA,kBACA,gBACA,kBACA,kCACA,4BACA,gEAGF,gBAEE,uBACA,2BACA,qBAGF,eACE,UACA,wDAGF,qBAEE,sBACA,MAKF,cACE,oDACA,WACA,kCAGF,eAGE,cAGF,UACE,sBACA,WAGF,kBAzIW,sGAmBT,gBAIA,YAqHA,iBAGF,UACE,CAEA,oBACA,CADA,mBACA,CADA,4BACA,WACA,YACA,wBAGF,qGA7GE,eAIA,gBACA,WA0GA,mCAGF,eACE,WACA,gBACA,eACA,UACA,cACA,kBACA,QACA,4BAGF,iBACE,0BACA,YACA,cA3KS,yDA8KT,4BACA,uBACA,4BACA,yBACA,wBAGF,gBACE,eACA,mBAvLS,eA2LX,aACI,YACA,kBAEA,YACA,UACA,YACA,aACA,iGACA,4BACA,iCACA,UACA,gBAGJ,eACE,UACA,6BAGF,SACE,SAGF,gBACE,qBAGF,kBAvNW,CAcT,eACA,6CA2MA,CA3MA,kBA2MA,CA3MA,sBA2MA,CAMA,uCAHF,UACE,gBACA,mBAYA,CAXA,eAGF,WACE,eACA,CAvNA,eACA,6CAyNA,CAzNA,kBAyNA,CAzNA,sBAyNA,CAEA,oBACA,gCAGF,kBA3OsB,uCA+OtB,YACE,uBAEF,gBACE,mBAnPoB,4CAuPtB,UACE,yBAGF,eACE,eACA,wBAGF,kBAnQW,WAqQT,cACA,eACA,gBACA,cACA,eACA,sGAvPA,gBAIA,8BAsPA,UACE,mEAIJ,qGAvOE,eAIA,gBACA,yBAoOA,6BAMA,eACA,eAIA,iDARF,kBAvRW,WAyRT,YACA,CAEA,qGAzQA,gBAIA,eAuQA,gBAUA,kCAGF,iBACE,UACA,UACA,gBACA,eACA,cACA,2BAGF,cACE,gBACA,6BAGF,8BACE,gCACA,mCAGF,kBA9TW,WAgUT,oCAGF,UACE,oDAGF,yBACE,kBACA,kBACA,YACA,qBAGF,wBA9UW,CAcT,eACA,CAkUA,4CACA,CADA,kBACA,CADA,kBACA,2BAGF,UACE,gBACA,eACA,kBACA,UACA,SACA,yBA3VS,qBA6VT,cACA,gBACA,6CAGF,UACE,gBACA,kCAGF,WACE,iCAEF,WACE,iBAGF,gBACE,mCAIA,qBACA,CAvVA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,WAwVA,YACA,sEAGF,qBACE,yCAGF,QACE,iBACA,kDAGF,SACE,qCAGF,YACE,mCAGF,eACE,aACA,WAGF,wBAjZW,sGAmBT,gBAIA,YA6XA,iBAGF,oBACE,WACA,CAzWA,+BA4WF,qGAjXE,eAIA,gBAsXA,CArXA,cAgXF,UACE,sBACA,CAlXA,cAoXA,YACA,+FAGF,UAEE,gCACA,CAIA,iIAGF,gBACE,oBAGF,wBAtbW,WAwbT,sGAraA,gBAIA,wBAqaF,0lBACE,wBAEA,uCAGF,kBAlcW,WAqcT,kBAGF,yBACE,WACA,SAraA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,sBAwaA,CACA,mBACA,mBACA,uBAGF,wBArdW,kBAydX,cACE,uEAGF,aAEE,qBAGF,qBACE,kBACA,YACA,UACA,mBAteS,uBAweT,CAEA,eACA,iCACA,8BACA,iBACA,sCAGF,qBACE,4BAGF,WACE,8BAGF,gBACE,kBACA,2CAEA,cACE,kCAGJ,UACE,CAlgBS,+DAugBT,kBAvgBS,4DA2gBT,eACE,wBACA,gCAIJ,iBACE,oDAGF,cACE,kBAGF,eACE,4BACA,WACA,0BACA,YACA,gCAGF,aACE,uCAGF,UACE,gBACA,0GAlgBA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,uBAugBA,CAvgBA,cAugBA,6CACA,CADA,oCACA,8BAGF,wBAljBW,SAojBT,iCACA,kBACA,mBACA,iBACA,cAEF,kBA1jBW,CAaT,4CACA,CADA,kBACA,CADA,gBACA,gBACA,UA8iBA,iBAGA,0HAFA,aAIE,qBAriBF,4CACA,CADA,kBACA,CADA,gBACA,gBACA,kCA2iBF,kBACE,eACA,sDAGF,sBAEE,YACA,CEjlBU,2IFslBV,aEtlBU,0BF2lBZ,kBA5lBW,CAaT,4CACA,CADA,kBACA,CADA,gBACA,gBACA,mBAglBA,iCAlkBA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,mBAukBF,aArmBkB,uCAymBlB,gBACE,sBACA,mBACA,0BAGF,aACE,uCAGF,gBACE,mBACA,cAGF,eACE,gBACA,sBACA,WACA,oBAGF,qBACE,qBAGF,UACE,0BACA,gBACA,YAGF,UACE,gBACA,CA5oBS,qGAmBT,gBAIA,CAwnBA,eACA,6BAJA,kBA5oBS,CAuBT,UA6nBE,2BAIJ,UACC,4DAGD,UACE,gBACA,iCAGF,UACE,UAGF,gCACE,0GAGF,kBAzqBW,sGAmBT,gBAIA,sHAupBF,kBA9qBW,wHAkrBX,qGAvoBE,eAIA,gBACA,gDAsoBF,UACE,eAGF,yBACE,WACA,wBAGF,UACE,eACA,6BAGF,eACE,iBAGF,kBAxsBW,CAaT,+BACA,gBACA,qBA4rBA,gBACA,mBACA,6CACA,CADA,+BACA,CADA,gBACA,cAGF,UACE,sGA/rBA,gBAIA,YA6rBA,WACA,cACA,iCAGF,eACE,WACA,gBACA,eACA,UACA,cACA,kBACA,QACA,0BAIF,iBACE,iBACA,WACA,YACA,cAzuBS,yDA4uBT,4BACA,uBACA,4BACA,yBACA,yBAGF,4BACE,qCAGF,8YACE,4BACA,uBACA,4BACA,yBACA,iBACA,SAOF,kBApwBW,CAswBT,WACA,iCACA,CACA,oBACA,CADA,iCACA,CADA,sBACA,gBACA,eAIA,UACA,CA3uBA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,oCAuuBF,qBAOE,gBAGF,gBACE,WACA,gBACA,sBAvxBqB,sBAyxBrB,mBAEA,UACE,oBACA,gBACA,yBAIJ,wBAtyBW,WAwyBT,iCACA,0BAGF,UACE,sOAGF,wBA7yBsB,WAkzBpB,mBAGF,UACE,0BAEA,SACE,yBAGF,UACE,sCAIJ,wBAp0BW,CAu0BT,yBACA,CADA,2BACA,iBAGF,UACE,wBAGF,UACE,gBACA,mFA5yBA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,+CAmzBF,eACE,gCAGF,eACE,gCACA,mBACA,+BAGF,6BACE,+BACA,8CAGF,wBAz2BW,0BA22BT,eACA,gBACA,wBAGF,wBAh3BW,gBAk3BT,iBACA,kCAGF,8BACE,4HAGF,kBA13BW,uEA+3BX,aA93BkB,mDAk4BlB,kBAn4BW,iBAs4BT,yGAGF,kBAt4BsB,4LA24BtB,gBAKE,WACA,sGAj4BA,gBAIA,mBAvBS,oCAy5BX,UACE,2CAGF,eACE,+BAGF,cACE,gBACA,cACA,kBACA,UACA,yBAt6BS,eAw6BT,cACA,wBAGF,iBACE,iBACA,0BACA,yBA/6BS,WAi7BT,0BAGF,UACE,+BAGF,UACE,0BACA,iDA75BA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,mBAg6BA,cACA,iCAGF,eACE,0BACA,yBAr8BS,YAu8BT,sBACA,8CAGF,cACE,gBACA,2BACA,qDAGF,WACE,eACA,gBACA,WACA,gDAGF,YACE,8BAGF,SACE,2BAGF,gBACE,gBACA,yBAl+BS,sBAo+BT,uBACA,6BAIF,UACE,sBACA,CACA,qGAj8BA,eAIA,gBACA,qCAg8BF,gCACE,qCAGF,UACE,gBACA,kBAGF,wBAz/BW,kBA2/BT,0BACA,SA5/BS,qGAmBT,CAIA,eA2+BA,WACA,gBACA,sDALF,wBA//BW,gBA0gCT,qGA/9BA,eAIA,gBACA,kBA89BA,UACE,8BACA,yBAEA,qGA//BF,gBAIA,kBAkgCF,wBAzhCW,sGA2CT,CAIA,eACA,eA4+BA,yBAGF,eACE,WACA,gBACA,eACA,UACA,kBACA,cACA,kBACA,UACA,kBAGF,iBACE,iBACA,WACA,YACA,cA/iCS,+YAkjCT,4BACA,uBACA,4BACA,yBACA,oBAGF,wBAzjCW,WA2jCT,iCACA,oBACA,eACA,cAGF,4BACE,WACA,oBACA,wBAjkCoB,WAmkClB,8CAKF,WACE,SACA,UACA,wCAMA,iBACA,qFAJF,yBACE,4BACA,6BAOE,0CAGF,WACE,WACA,CAMJ,4FACA,yDAGA,wGACA,yDAGA,wEACA,yDAGA,gFACA,yDAGA,sEACA,0DAGA,0FACA,0DAGA,gGACA,0DAGA,wEACA,0DAGA,sEACA,0DAGA,4FACA,0DAGA,wEACA,0DAGA,8EACA,mFAGF,YACE,kCAGF,qBACE,gBACA,eACA,WACA,iBACA,kBACA,mBACA,OAEA,aACA,cACA,kBACA,yBACA,WACA,YACA,CAIA,wBACA,0BACA,2BAjqCA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,yBAfS,yCAsrCX,YACE,yBAGF,wBA1rCW,kBA8rCX,wBACE,4CAGF,UACE,6BAGF,yBACE,WACA,YACA,iBAGF,wBA5sCW,SA8sCT,8BACA,8CAGF,UACE,YACA,gCAGF,UACE,gBACA,kCAGF,UACE,sBAGF,YACE,2BAGF,yBACE,kCAGF,qGA7rCE,eAIA,gBACA,wDA4rCF,eAxuCuB,gBA2uCrB,sBACA,iBACA,kBAGF,4BACE,yBAGF,YACE,gCAGF,UACE,sGAltCA,eAIA,gBACA,8CAitCF,sBACE,oDAGF,sBACE,WACA,0BACA,0CAGF,oBAGE,2FAGF,UACE,4GAGF,qBAII,qBACA,sBACA,yCAGJ,eACI,8BAGJ,iBACI,SACA,iDAGJ,iBACI,SACA,mCAGJ,kBACI,uBAGJ,iBACI,0BAGJ,iBACI,kBAGJ,iBACI,0BAGJ,iBACI,SACA,2GAGJ,qGA9yCE,gBAIA,mBAvBS,2FAu0CX,sBAIE,cACA,mBAz0CoB,WA20CpB,gBACA,iBACA,qBAGF,4BACE,0CAGF,eACE,gBACA,oFAGF,kBA51CW,iBA81CT,sDAGF,kBA91CsB,WAg2CpB,gBACA,YACA,eACA,gBACA,CAKE,+RAEA,UAGE,CAj0CJ,gMAo0CE,qGAz0CF,eAIA,gBACA,uHA00CF,eAEE,WA50CA,2CAi1CF,oQAEE,uBAGF,iBACE,MACA,wBACA,WACA,yBAv4CoB,eAy4CpB,gBACA,WACA,WACA,cACA,CACA,wBACA,sBACA,gBAGF,iBACE,mBAv5CS,sGAmBT,gBAIA,WAm4CA,YACA,iBACA,WACA,iBACA,sBACA,gBACA,sCAGF,eACE,UACE,YACA,kBACA,sCAIJ,eACE,WACE,YACA,0BACA,SACA,kCAIJ,eACE,YACA,cACA,WACA,iCAGF,aACE,wBACA,CAh7CA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,kBAg7CA,iBACA,kBACA,mBACA,sBACA,yBAGF,wBAt8CW,WAw8CT,eACA,gBACA,sBACA,kBACA,yBAGF,eACE,mBAh9CS,WAk9CT,WACA,YACA,oBACA,+BAGF,iBACE,QACA,SACA,WACA,YACA,SACA,4BAGF,kBAj+CW,CAm+CT,gBACA,WACA,+BAEA,oBACE,4EAEA,WAEE,2BACA,sCAt9CJ,UA69CI,wEAJF,iBACE,sGA99CJ,gBAIA,CA49CI,WASA,CARA,kCAGF,oBACE,CAEA,SAEA,iCAGF,oBACE,qIA58CJ,gBAMA,2BACA,4BACA,gBAs8CI,SACA,WACA,wBACA,0CAEA,kBAvgDK,WAygDH,gBACA,mBACA,uCAGF,kBA9gDK,WAghDH,kCAIJ,uBACE,uBACA,kBACA,UACA,SACA,UACA,qCAEA,kBA5hDK,qBA8hDH,wBACA,uCAEA,kBAjiDG,qIAoDT,gBAMA,2BACA,4BACA,WAw+CQ,gBACA,kBACA,UACA,gDAEA,kBAziDC,WA2iDC,mBACA,gBACA,kBACA,iBACA,kBACA,kBACA,UACA,4DAEA,aACE,sDAGF,sBACE,WACA,6CAIJ,kBA9jDC,WAgkDC,sCAQZ,iCACE,gBACE,yBAGF,mBACE,sCAIJ,iCACE,eACE,yBAKE,gBACA,WACA,YACA,iCAEF,aACE,WACA,0BACA,iBAKN,qBAlmDuB,WAomDrB,sBACA,gBACA,kBACA,MACA,OACA,WACA,sBAGF,qBACE,CA7kDA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,weA+kDF,UAeE,qEAGF,qBAEE,sJAGF,UAKE,sBACA,CA9mDA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,4WA+mDA,qBACE,qEAIJ,kBA3pDW,sGAmBT,gBAIA,WA0oDA,gBACA,uFAEA,kBApqDS,4CAyqDX,eArqDuB,WAwqDrB,iBACA,kBACA,sBACA,gDAEA,UACE,0BACA,gGAIJ,kBAvrDW,yBA8rDX,yBACE,YACA,kCAGF,UACE,sBACA,kBACA,CAIA,4CACA,CADA,kBACA,CADA,gBACA,WACA,YACA,qBACA,sBACA,iBACA,2CAGF,qBACE,gCACA,8FAGF,UAGE,kCACA,ooB","file":"skins/vanilla/win95/common.css","sourcesContent":["@font-face{font-family:\"premillenium\";src:url(\"~fonts/premillenium/MSSansSerif.ttf\") format(\"truetype\")}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#192432 rgba(0,0,0,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#192432;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#1c2938}::-webkit-scrollbar-thumb:active{background:#192432}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(0,0,0,.1)}::-webkit-scrollbar-track:hover{background:#121a24}::-webkit-scrollbar-track:active{background:#121a24}::-webkit-scrollbar-corner{background:transparent}body{font-family:\"mastodon-font-sans-serif\",sans-serif;background:#06090c;font-size:13px;line-height:18px;font-weight:400;color:#fff;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",\"mastodon-font-sans-serif\",sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#121a24}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.player{text-align:center}body.embed{background:#192432;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#0b1016;padding:0}body.error{position:absolute;text-align:center;color:#9baec8;background:#121a24;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog__illustration img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div,.app-holder>noscript{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.app-holder>noscript{height:100vh}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.error-boundary,.app-holder noscript{flex-direction:column;font-size:16px;font-weight:400;line-height:1.7;color:#e25169;text-align:center}.error-boundary>div,.app-holder noscript>div{max-width:500px}.error-boundary p,.app-holder noscript p{margin-bottom:.85em}.error-boundary p:last-child,.app-holder noscript p:last-child{margin-bottom:0}.error-boundary a,.app-holder noscript a{color:#00007f}.error-boundary a:hover,.error-boundary a:focus,.error-boundary a:active,.app-holder noscript a:hover,.app-holder noscript a:focus,.app-holder noscript a:active{text-decoration:none}.error-boundary__footer,.app-holder noscript__footer{color:#404040;font-size:13px}.error-boundary__footer a,.app-holder noscript__footer a{color:#404040}.error-boundary button,.app-holder noscript button{display:inline;border:0;background:transparent;color:#404040;font:inherit;padding:0;margin:0;line-height:inherit;cursor:pointer;outline:0;transition:color 300ms linear;text-decoration:underline}.error-boundary button:hover,.error-boundary button:focus,.error-boundary button:active,.app-holder noscript button:hover,.app-holder noscript button:focus,.app-holder noscript button:active{text-decoration:none}.error-boundary button.copied,.app-holder noscript button.copied{color:#79bd9a;transition:none}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#fff;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#fff;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px}.account-header .name{flex:1 1 auto;color:#d9e1e8;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#fff}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#26374d}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#9baec8;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#fff}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#2d415a;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#344b68}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#d9e1e8}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#000}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#192432;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #192432;background:#040609}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#192432;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#fff;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#9baec8}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#9baec8;padding:10px;border-right:1px solid #192432;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #00007f;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#d9e1e8}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#fff;font-family:\"mastodon-font-display\",sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #26374d}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#9baec8}.public-layout .public-account-header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#0000a8}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#fff}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#9baec8}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #202e3f}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #202e3f}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#121a24}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#192432}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#4c6d98}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#4c6d98}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#9baec8}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#4c6d98}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#4c6d98}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#5377a5}.compact-header h1{font-size:24px;line-height:28px;color:#9baec8;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#d9e1e8}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#121a24;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.hero-widget__text a{color:#d9e1e8;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#9baec8}.box-widget{padding:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #404040;text-align:center;color:#9baec8;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#9baec8;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#d9e1e8;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#9baec8}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#9baec8;margin-bottom:10px}.page-header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#fff;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#9baec8}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#192432}.page-header h1{font-size:24px}}.directory{background:#121a24;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#121a24;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#202e3f}.directory__tag.active>a{background:#00007f;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#9baec8}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#9baec8}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small,.directory__tag.active h4 .trends__item__current{color:#fff}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#00007f}.directory__tag .trends__item__current{padding-right:0}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#040609;border:2px solid #121a24}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#9baec8;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #202e3f}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#fff}.accounts-table__count small{display:block;color:#9baec8;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #2d415a}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#9baec8}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#00007f}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#0b1016;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#fff;border-bottom:1px solid #192432}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #192432}code{font-family:\"mastodon-font-monospace\",monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#fff;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#00007f;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#9baec8}.simple_form .hint a{color:#00007f}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#000}.simple_form .hint li{list-style:disc;margin-left:18px}.simple_form ul.hint{margin-bottom:15px}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#9baec8}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#fff;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .input.datetime .label_input select{display:inline-block;width:auto;flex:0}.simple_form .required abbr{text-decoration:none;color:#e87487}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#fff;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#fff;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #404040;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102;border:1px solid #000;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#a8b9cf}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#e87487}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#000}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#00007f;background:#040609}.simple_form .input.field_with_errors label{color:#e87487}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#e87487}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#e87487;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#00007f;color:#fff;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#009}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#006}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#e3566d}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#db2a47}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #000;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#404040;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(1, 1, 2, 0), #010102)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(18,26,36,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#fff}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#202e3f;color:#9baec8;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#9baec8;text-decoration:none}.flash-message a:hover{color:#fff;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#121a24;color:#fff;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#192432}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#9baec8;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#00007f;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#0000a8}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#9baec8}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#d9e1e8;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#d9e1e8;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#fff;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#9baec8}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#fff;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:\"mastodon-font-monospace\",monospace}.input-copy{background:#010102;border:1px solid #000;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:\"mastodon-font-monospace\",monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#0b1016;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#0b1016;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#202e3f}.card__img{height:130px;position:relative;background:#000;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#192432;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#040609;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#fff;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#121a24;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#d9e1e8}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#233346}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#9baec8;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#d9e1e8;background-color:rgba(217,225,232,.1);border:1px solid rgba(217,225,232,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#e87487;background-color:rgba(232,116,135,.1);border-color:rgba(232,116,135,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #26374d;border-bottom:1px solid #26374d;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #26374d}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#d9e1e8;background:rgba(4,6,9,.5)}.account__header__fields dd{flex:1 1 auto;color:#9baec8}.account__header__fields a{color:#00007f;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#9baec8}.pending-account__header a{color:#d9e1e8;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#fff;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}.activity-stream--under-tabs{border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#121a24}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#202e3f}.button.logo-button{flex:0 auto;font-size:14px;background:#00007f;color:#fff;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#fff}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#0000b2}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.animated-number{display:inline-flex;flex-direction:column;align-items:stretch;overflow:hidden;position:relative}.link-button{display:block;font-size:15px;line-height:20px;color:#00007f;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#00007f;border:10px none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#0000b2;transition:all 200ms ease-out}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled,.button.disabled{background-color:#9baec8;cursor:default}.button::-moz-focus-inner{border:0}.button::-moz-focus-inner,.button:focus,.button:active{outline:0 !important}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#121a24;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#a8b9cf}.button.button-alternative-2{background:#404040}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#4a4a4a}.button.button-secondary{color:#9baec8;background:transparent;padding:3px 15px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#a8b9cf;color:#a8b9cf}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.icon-button{display:inline-block;padding:0;color:#404040;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#525252;background-color:rgba(64,64,64,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(64,64,64,.3)}.icon-button.disabled{color:#1f1f1f;background-color:transparent;cursor:default}.icon-button.active{color:#00007f}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#404040}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#2e2e2e;background-color:rgba(64,64,64,.15)}.icon-button.inverted:focus{background-color:rgba(64,64,64,.3)}.icon-button.inverted.disabled{color:#525252;background-color:transparent}.icon-button.inverted.active{color:#00007f}.icon-button.inverted.active.disabled{color:#0000c1}.icon-button.overlayed{box-sizing:content-box;background:rgba(0,0,0,.6);color:rgba(255,255,255,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(0,0,0,.9)}.text-icon-button{color:#404040;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#2e2e2e;background-color:rgba(64,64,64,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(64,64,64,.3)}.text-icon-button.disabled{color:#737373;background-color:transparent;cursor:default}.text-icon-button.active{color:#00007f}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.compose-form{padding:10px}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#00007f}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#00007f;background:#00007f}.compose-form .compose-form__warning{color:#121a24;margin-bottom:10px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.compose-form .compose-form__warning strong{color:#121a24;font-weight:500}.compose-form .compose-form__warning strong:lang(ja){font-weight:700}.compose-form .compose-form__warning strong:lang(ko){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-CN){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-HK){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-TW){font-weight:700}.compose-form .compose-form__warning a{color:#404040;font-weight:500;text-decoration:underline}.compose-form .compose-form__warning a:hover,.compose-form .compose-form__warning a:active,.compose-form .compose-form__warning a:focus{text-decoration:none}.compose-form .emoji-picker-dropdown{position:absolute;top:0;right:0}.compose-form .compose-form__autosuggest-wrapper{position:relative}.compose-form .autosuggest-textarea,.compose-form .autosuggest-input,.compose-form .spoiler-input{position:relative;width:100%}.compose-form .spoiler-input{height:0;transform-origin:bottom;opacity:0}.compose-form .spoiler-input.spoiler-input--visible{height:36px;margin-bottom:11px;opacity:1}.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0}.compose-form .autosuggest-textarea__textarea::placeholder,.compose-form .spoiler-input__input::placeholder{color:#404040}.compose-form .autosuggest-textarea__textarea:focus,.compose-form .spoiler-input__input:focus{outline:0}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{font-size:16px}}.compose-form .spoiler-input__input{border-radius:4px}.compose-form .autosuggest-textarea__textarea{min-height:100px;border-radius:4px 4px 0 0;padding-bottom:0;padding-right:32px;resize:none;scrollbar-color:initial}.compose-form .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.compose-form .autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.compose-form .autosuggest-textarea__suggestions{box-sizing:border-box;display:none;position:absolute;top:100%;width:100%;z-index:99;box-shadow:4px 4px 6px rgba(0,0,0,.4);background:#d9e1e8;border-radius:0 0 4px 4px;color:#121a24;font-size:14px;padding:6px}.compose-form .autosuggest-textarea__suggestions.autosuggest-textarea__suggestions--visible{display:block}.compose-form .autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.compose-form .autosuggest-textarea__suggestions__item:hover,.compose-form .autosuggest-textarea__suggestions__item:focus,.compose-form .autosuggest-textarea__suggestions__item:active,.compose-form .autosuggest-textarea__suggestions__item.selected{background:#b9c8d5}.compose-form .autosuggest-account,.compose-form .autosuggest-emoji,.compose-form .autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.compose-form .autosuggest-hashtag{justify-content:space-between}.compose-form .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-hashtag strong{font-weight:500}.compose-form .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-account-icon,.compose-form .autosuggest-emoji img{display:block;margin-right:8px;width:16px;height:16px}.compose-form .autosuggest-account .display-name__account{color:#404040}.compose-form .compose-form__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.compose-form .compose-form__modifiers .compose-form__upload-wrapper{overflow:hidden}.compose-form .compose-form__modifiers .compose-form__uploads-wrapper{display:flex;flex-direction:row;padding:5px;flex-wrap:wrap}.compose-form .compose-form__modifiers .compose-form__upload{flex:1 1 0;min-width:40%;margin:5px}.compose-form .compose-form__modifiers .compose-form__upload__actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button{flex:0 1 auto;color:#d9e1e8;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:hover,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:focus,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:active{color:#eff3f5}.compose-form .compose-form__modifiers .compose-form__upload__actions.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-description{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);padding:10px;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload-description textarea{background:transparent;color:#d9e1e8;border:0;padding:0;margin:0;width:100%;font-family:inherit;font-size:14px;font-weight:500}.compose-form .compose-form__modifiers .compose-form__upload-description textarea:focus{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload-description textarea::placeholder{opacity:.75;color:#d9e1e8}.compose-form .compose-form__modifiers .compose-form__upload-description.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-thumbnail{border-radius:4px;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;height:140px;width:100%;overflow:hidden}.compose-form .compose-form__buttons-wrapper{padding:10px;background:#ebebeb;border-radius:0 0 4px 4px;display:flex;justify-content:space-between;flex:0 0 auto}.compose-form .compose-form__buttons-wrapper .compose-form__buttons{display:flex}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__upload-button-icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button{display:none}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button.compose-form__sensitive-button--visible{display:block}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button .compose-form__sensitive-button__icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .icon-button,.compose-form .compose-form__buttons-wrapper .text-icon-button{box-sizing:content-box;padding:0 3px}.compose-form .compose-form__buttons-wrapper .character-counter__wrapper{align-self:center;margin-right:4px}.compose-form .compose-form__publish{display:flex;justify-content:flex-end;min-width:0;flex:0 0 auto}.compose-form .compose-form__publish .compose-form__publish-button-wrapper{overflow:hidden;padding-top:10px}.character-counter{cursor:default;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:600;color:#404040}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .spoiler-input{transition:height .4s ease,opacity .4s ease}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.reply-indicator{border-radius:4px;margin-bottom:10px;background:#9baec8;padding:10px;min-height:23px;overflow-y:auto;flex:0 2 auto}.reply-indicator__header{margin-bottom:5px;overflow:hidden}.reply-indicator__cancel{float:right;line-height:24px}.reply-indicator__display-name{color:#121a24;display:block;max-width:100%;line-height:24px;overflow:hidden;padding-right:25px;text-decoration:none}.reply-indicator__display-avatar{float:left;margin-right:5px}.status__content--with-action{cursor:pointer}.status__content,.reply-indicator__content{position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:hidden;text-overflow:ellipsis;padding-top:2px;color:#fff}.status__content:focus,.reply-indicator__content:focus{outline:0}.status__content.status__content--with-spoiler,.reply-indicator__content.status__content--with-spoiler{white-space:normal}.status__content.status__content--with-spoiler .status__content__text,.reply-indicator__content.status__content--with-spoiler .status__content__text{white-space:pre-wrap}.status__content .emojione,.reply-indicator__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img,.reply-indicator__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.reply-indicator__content p{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.reply-indicator__content p:last-child{margin-bottom:0}.status__content a,.reply-indicator__content a{color:#d8a070;text-decoration:none}.status__content a:hover,.reply-indicator__content a:hover{text-decoration:underline}.status__content a:hover .fa,.reply-indicator__content a:hover .fa{color:#525252}.status__content a.mention:hover,.reply-indicator__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span,.reply-indicator__content a.mention:hover span{text-decoration:underline}.status__content a .fa,.reply-indicator__content a .fa{color:#404040}.status__content a.unhandled-link,.reply-indicator__content a.unhandled-link{color:#0000a8}.status__content .status__content__spoiler-link,.reply-indicator__content .status__content__spoiler-link{background:#404040}.status__content .status__content__spoiler-link:hover,.reply-indicator__content .status__content__spoiler-link:hover{background:#525252;text-decoration:none}.status__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner{border:0}.status__content .status__content__spoiler-link::-moz-focus-inner,.status__content .status__content__spoiler-link:focus,.status__content .status__content__spoiler-link:active,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link:focus,.reply-indicator__content .status__content__spoiler-link:active{outline:0 !important}.status__content .status__content__text,.reply-indicator__content .status__content__text{display:none}.status__content .status__content__text.status__content__text--visible,.reply-indicator__content .status__content__text.status__content__text--visible{display:block}.announcements__item__content{word-wrap:break-word;overflow-y:auto}.announcements__item__content .emojione{width:20px;height:20px;margin:-3px 0 0}.announcements__item__content p{margin-bottom:10px;white-space:pre-wrap}.announcements__item__content p:last-child{margin-bottom:0}.announcements__item__content a{color:#d9e1e8;text-decoration:none}.announcements__item__content a:hover{text-decoration:underline}.announcements__item__content a.mention:hover{text-decoration:none}.announcements__item__content a.mention:hover span{text-decoration:underline}.announcements__item__content a.unhandled-link{color:#0000a8}.status__content.status__content--collapsed{max-height:300px}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#0000a8;border:0;background:transparent;padding:0;padding-top:8px;text-decoration:none}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:transparent;border:0;color:#121a24;font-weight:700;font-size:11px;padding:0 6px;text-transform:uppercase;line-height:20px;cursor:pointer;vertical-align:middle}.status__wrapper--filtered{color:#404040;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #202e3f}.status__prepend-icon-wrapper{left:-26px;position:absolute}.focusable:focus{outline:0;background:#192432}.focusable:focus .status.status-direct{background:#26374d}.focusable:focus .status.status-direct.muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#202e3f}.status{padding:8px 10px;padding-left:68px;position:relative;min-height:54px;border-bottom:1px solid #202e3f;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:26px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#202e3f;border-bottom-color:#26374d}.status.light .status__relative-time{color:#9baec8}.status.light .status__display-name{color:#121a24}.status.light .display-name{color:#9baec8}.status.light .display-name strong{color:#121a24}.status.light .status__content{color:#121a24}.status.light .status__content a{color:#00007f}.status.light .status__content a.status__content__spoiler-link{color:#fff;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#b5c3d6}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#616161}.status__relative-time,.notification__relative_time{color:#404040;float:right;font-size:14px}.status__display-name{color:#404040}.status__info .status__display-name{display:block;max-width:100%;padding-right:25px}.status__info{font-size:15px}.status-check-box{border-bottom:1px solid #d9e1e8;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1;overflow:hidden}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-left:68px;color:#404040;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#404040}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#404040}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#192432;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .status__content .status__content__spoiler-link{line-height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#404040;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.reply-indicator__content{color:#121a24;font-size:14px}.reply-indicator__content a{color:#404040}.domain{padding:10px;border-bottom:1px solid #202e3f}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#fff;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}.account{padding:10px;border-bottom:1px solid #202e3f}.account.compact{padding:0;border-bottom:0}.account.compact .account__avatar-wrapper{margin-left:0}.account .account__display-name{flex:1 1 auto;display:block;color:#9baec8;overflow:hidden;text-decoration:none;font-size:14px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;position:relative}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;border-radius:50%;overflow:hidden;position:relative}.account__avatar-composite>div{float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}a .account__avatar{cursor:pointer}.account__avatar-overlay{width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__disclaimer{padding:10px;border-top:1px solid #202e3f;color:#404040}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-dropdown{padding:10px}.account__action-bar-dropdown .icon-button{vertical-align:middle}.account__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__right{left:6px;right:initial}.account__action-bar-dropdown .dropdown--active::after{bottom:initial;margin-left:11px;margin-top:-7px;right:initial}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-right:1px solid #202e3f;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab.active{border-bottom:4px solid #00007f}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#9baec8}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#fff}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#fff}.muted .emojione{opacity:.5}.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,a.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#d9e1e8;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#fff}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{height:48px;left:10px;position:absolute;top:10px;width:48px}.status__expand{width:68px;position:absolute;left:0;top:0;height:100%;cursor:pointer}.muted .status__content,.muted .status__content p,.muted .status__content a{color:#404040}.muted .status__display-name strong{color:#404040}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#404040;color:#121a24}.muted a.status__content__spoiler-link:hover{background:#525252;text-decoration:none}.notification__message{margin:0 10px 0 68px;padding:8px 0 0;cursor:default;color:#9baec8;font-size:15px;line-height:22px;position:relative}.notification__message .fa{color:#00007f}.notification__message>span{display:inline;overflow:hidden;text-overflow:ellipsis}.notification__favourite-icon-wrapper{left:-26px;position:absolute}.notification__favourite-icon-wrapper .star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#fff;text-decoration:underline}.notification__relative_time{float:right}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.navigation-bar{padding:10px;display:flex;align-items:center;flex-shrink:0;cursor:default;color:#9baec8}.navigation-bar strong{color:#d9e1e8}.navigation-bar a{color:inherit}.navigation-bar .permalink{text-decoration:none}.navigation-bar .navigation-bar__actions{position:relative}.navigation-bar .navigation-bar__actions .icon-button.close{position:absolute;pointer-events:none;transform:scale(0, 1) translate(-100%, 0);opacity:0}.navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:auto;transform:scale(1, 1) translate(0, 0);opacity:1}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;line-height:20px;margin-top:-1px;overflow:hidden}.navigation-bar__profile-account{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile-edit{color:inherit;text-decoration:none}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #c0cdd9;margin:5px 7px 6px;height:0}.dropdown-menu{background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);z-index:9999}.dropdown-menu ul{list-style:none}.dropdown-menu.left{transform-origin:100% 50%}.dropdown-menu.top{transform-origin:50% 100%}.dropdown-menu.bottom{transform-origin:50% 0}.dropdown-menu.right{transform-origin:0 50%}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#d9e1e8}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#d9e1e8}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#00007f;color:#d9e1e8;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#00007f;color:#d9e1e8}.dropdown__icon{vertical-align:middle}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area.unscrollable{overflow-x:hidden}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#040609;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .drawer,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:350px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#121a24;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.drawer{width:330px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden}.drawer__tab{display:block;flex:1 1 auto;padding:15px 5px 13px;color:#9baec8;text-decoration:none;text-align:center;font-size:16px;border-bottom:2px solid transparent}.column,.drawer{flex:1 1 auto;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#202e3f;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#fff;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #202e3f;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.tabs-bar__link:hover,.tabs-bar__link:focus,.tabs-bar__link:active{background:#2a3c54;border-bottom-color:#2a3c54}}.tabs-bar__link.active{border-bottom:2px solid #00007f;color:#00007f}.tabs-bar__link span{margin-left:5px;display:none}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;height:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px 15px 15px 78px;min-height:50px}.columns-area--mobile .status__avatar{left:15px;top:17px}.columns-area--mobile .status__content{padding-top:5px}.columns-area--mobile .status__prepend{margin-left:78px;padding-top:15px}.columns-area--mobile .status__prepend-icon-wrapper{left:-32px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{margin-left:78px;padding-top:15px}.columns-area--mobile .notification__favourite-icon-wrapper{left:-32px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}.columns-area--mobile .notification .account__avatar-wrapper{margin-left:17px;margin-right:15px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#000070;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#0000a3}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.getting-started__trends,.search{margin-bottom:10px}.getting-started__panel{margin:10px 0}.column,.drawer{min-width:330px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#00007f;border:2px solid #202e3f;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#fff}.column-link--transparent .icon-with-badge__badge{border-color:#040609}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .navigation-bar{padding-top:20px;padding-bottom:20px;flex:0 1 48px;min-height:20px}.compose-panel .flex-spacer{background:transparent}.compose-panel .compose-form{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px;padding-bottom:71px;margin-bottom:-71px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #192432;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#283a50;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%;border-radius:2px}.drawer__inner.darker{background:#121a24}.drawer__inner__mastodon{background:#283a50 url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:85%;height:100%;pointer-events:none;user-drag:none;user-select:none}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#283a50;font-size:13px;text-align:left}.drawer__header{flex:0 0 auto;font-size:16px;background:#202e3f;margin-bottom:10px;display:flex;flex-direction:row;border-radius:2px}.drawer__header a{transition:background 100ms ease-in}.drawer__header a:hover{background:#17212e;transition:background 200ms ease-out}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.column-back-button{box-sizing:border-box;width:100%;background:#192432;color:#00007f;cursor:pointer;flex:0 0 auto;font-size:16px;line-height:inherit;border:0;text-align:unset;padding:15px;margin:0;z-index:3;outline:0}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#192432;border:0;font-family:inherit;color:#00007f;cursor:pointer;white-space:nowrap;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#121a24;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#010102}.react-toggle--checked .react-toggle-track{background-color:#00007f}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#0000b2}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #121a24;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#00007f}.column-link{background:#202e3f;color:#fff;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#253549}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#d9e1e8}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#fff}.column-link--transparent.active{color:#00007f}.column-link__icon{display:inline-block;margin-right:5px}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#121a24;padding:4px 8px;margin:-6px 10px}.column-subheading{background:#121a24;color:#404040;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.getting-started__wrapper,.getting-started,.flex-spacer{background:#121a24}.flex-spacer{flex:1 1 auto}.getting-started{color:#404040;overflow:auto;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.getting-started__wrapper,.getting-started__panel,.getting-started__footer{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex-grow:0}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#404040;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#9baec8}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__wrapper,.getting-started__footer{color:#404040}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#9baec8;padding:10px;font-weight:500;border-bottom:1px solid #202e3f}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#9baec8}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#202e3f;border:1px solid #0b1016}.setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0;border-radius:4px}.setting-text:focus{outline:0}@media screen and (max-width: 600px){.setting-text{font-size:16px}}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#404040;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#00007f}.status-card{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;color:#404040;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#d9e1e8;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}a.status-card{cursor:pointer}a.status-card:hover{background:#202e3f}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#9baec8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#9baec8}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#202e3f;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#192432}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#192432}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.load-more{display:block;color:#404040;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#151f2b}.load-gap{border-bottom:1px solid #202e3f}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#404040;background:#121a24;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#404040}.regeneration-indicator__label span{font-size:15px;font-weight:400}.column-header__wrapper{position:relative;flex:0 0 auto;z-index:1}.column-header__wrapper.active{box-shadow:0 1px 0 rgba(0,0,127,.3)}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;bottom:-13px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(0, 0, 127, 0.23) 0%, rgba(0, 0, 127, 0) 60%)}.column-header__wrapper .announcements{z-index:1;position:relative}.column-header{display:flex;font-size:16px;background:#192432;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden;border-top-left-radius:2px;border-top-right-radius:2px}.column-header>button{margin:0;border:0;padding:15px 0 15px 15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#00007f}.column-header.active .column-header__icon{color:#00007f;text-shadow:0 0 10px rgba(0,0,127,.4)}.column-header:focus,.column-header:active{outline:0}.column-header__buttons{height:48px;display:flex}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button{background:#192432;border:0;color:#9baec8;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover{color:#b2c1d5}.column-header__button.active{color:#fff;background:#202e3f}.column-header__button.active:hover{color:#fff;background:#202e3f}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#9baec8;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1;z-index:1;position:relative}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #26374d;margin:10px 0}.column-header__collapsible-inner{background:#202e3f;padding:15px}.column-header__setting-btn:hover{color:#9baec8;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.column-header__icon{display:inline-block;margin-right:5px}.loading-indicator{color:#404040;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #3e5a7c;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#3e5a7c}29%{background-color:#3e5a7c}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.video-error-cover{align-items:center;background:#000;color:#fff;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#000;color:#9baec8;border:0;padding:0;width:100%;height:100%;border-radius:4px;appearance:none}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{padding:0;color:#b5c3d6}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:700}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:block;left:4px;top:4px;width:auto;height:auto}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(0,0,0,.5);border-radius:8px;padding:8px 12px;color:#fff;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(0,0,0,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(0,0,0,.5)}.modal-container--preloader{background:#202e3f}.account--panel{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#202e3f;padding:15px}.column-settings__section{color:#9baec8;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#a8b9cf}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#192432}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#404040;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#202e3f}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#26374d;color:#a8b9cf}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#9baec8}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#404040}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#4a4a4a}.column-settings__hashtags .column-select__indicator-separator{background-color:#202e3f}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#d9e1e8}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#9baec8;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#121a24}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#121a24;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#b9c8d5}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#fff;margin-bottom:4px;display:block;vertical-align:top;background-color:#000;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.setting-toggle{display:block;line-height:24px}.setting-toggle__label{color:#9baec8;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{color:#404040;background:#121a24;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{contain:strict}}.empty-column-indicator>span,.error-column>span,.follow_requests-unlocked_explanation>span{max-width:400px}.empty-column-indicator a,.error-column a,.follow_requests-unlocked_explanation a{color:#00007f;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover,.follow_requests-unlocked_explanation a:hover{text-decoration:underline}.follow_requests-unlocked_explanation{background:#0b1016;contain:initial}.error-column{flex-direction:column}@keyframes heartbeat{from{transform:scale(1);animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.no-reduce-motion .pulse-loading{transform-origin:center center;animation:heartbeat 1.5s ease-in-out infinite both}@keyframes shake-bottom{0%,100%{transform:rotate(0deg);transform-origin:50% 100%}10%{transform:rotate(2deg)}20%,40%,60%{transform:rotate(-4deg)}30%,50%,70%{transform:rotate(4deg)}80%{transform:rotate(-2deg)}90%{transform:rotate(2deg)}}.no-reduce-motion .shake-bottom{transform-origin:50% 100%;animation:shake-bottom .8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(217,225,232,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.upload-area{align-items:center;background:rgba(0,0,0,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#121a24;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#d9e1e8;font-size:18px;font-weight:500;border:2px dashed #404040;border-radius:4px}.upload-progress{padding:10px;color:#404040;overflow:hidden;display:flex}.upload-progress .fa{font-size:34px;margin-right:10px}.upload-progress span{font-size:12px;text-transform:uppercase;font-weight:500;display:block}.upload-progess__message{flex:1 1 auto}.upload-progress__backdrop{width:100%;height:6px;border-radius:6px;background:#404040;position:relative;margin-top:5px}.upload-progress__tracker{position:absolute;left:0;top:0;height:6px;background:#00007f;border-radius:6px}.emoji-button{display:block;padding:5px 5px 2px 2px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.dropdown--active .emoji-button img{opacity:1;filter:none}.privacy-dropdown__dropdown{position:absolute;background:#fff;box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:4px;margin-left:40px;overflow:hidden}.privacy-dropdown__dropdown.top{transform-origin:50% 100%}.privacy-dropdown__dropdown.bottom{transform-origin:50% 0}.privacy-dropdown__option{color:#121a24;padding:10px;cursor:pointer;display:flex}.privacy-dropdown__option:hover,.privacy-dropdown__option.active{background:#00007f;color:#fff;outline:0}.privacy-dropdown__option:hover .privacy-dropdown__option__content,.privacy-dropdown__option.active .privacy-dropdown__option__content{color:#fff}.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,.privacy-dropdown__option.active .privacy-dropdown__option__content strong{color:#fff}.privacy-dropdown__option.active:hover{background:#000093}.privacy-dropdown__option__icon{display:flex;align-items:center;justify-content:center;margin-right:10px}.privacy-dropdown__option__content{flex:1 1 auto;color:#404040}.privacy-dropdown__option__content strong{font-weight:500;display:block;color:#121a24}.privacy-dropdown__option__content strong:lang(ja){font-weight:700}.privacy-dropdown__option__content strong:lang(ko){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-CN){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-HK){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-TW){font-weight:700}.privacy-dropdown.active .privacy-dropdown__value{background:#fff;border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1)}.privacy-dropdown.active .privacy-dropdown__value .icon-button{transition:none}.privacy-dropdown.active .privacy-dropdown__value.active{background:#00007f}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#fff}.privacy-dropdown.active.top .privacy-dropdown__value{border-radius:0 0 4px 4px}.privacy-dropdown.active .privacy-dropdown__dropdown{display:block;box-shadow:2px 4px 6px rgba(0,0,0,.1)}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#a8b9cf}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#192432}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:transform,opacity;font-size:18px;width:18px;height:18px;color:#d9e1e8;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(90deg)}.search__icon .fa-search.active{pointer-events:none;transform:rotate(0deg)}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#404040;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#525252}.search-results__header{color:#404040;background:#151f2b;padding:15px;font-weight:500;font-size:16px;cursor:default}.search-results__header .fa{display:inline-block;margin-right:5px}.search-results__section{margin-bottom:5px}.search-results__section h5{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#404040}.search-results__section h5 .fa{display:inline-block;margin-right:5px}.search-results__section .account:last-child,.search-results__section>div:last-child .status{border-bottom:0}.search-results__hashtag{display:block;padding:10px;color:#d9e1e8;text-decoration:none}.search-results__hashtag:hover,.search-results__hashtag:active,.search-results__hashtag:focus{color:#e6ebf0;text-decoration:underline}.search-results__info{padding:20px;color:#9baec8;text-align:center}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(0,0,0,.5);box-sizing:border-box;border:0;color:#fff;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#d9e1e8}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#00007f}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.onboarding-modal,.error-modal,.embed-modal{background:#d9e1e8;color:#121a24;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#c0cdd9;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#404040;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#363636;background-color:#a6b9c9}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#121a24}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#192432}.error-modal__footer{justify-content:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#121a24;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#121a24;color:#d9e1e8;font-weight:500;padding:10px;border-radius:4px}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#f2f5f7;color:#121a24;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:block;max-width:100%;padding-right:25px}.boost-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:28px;left:10px;position:absolute;top:10px;width:48px}.boost-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#f2f5f7}.actions-modal .status{background:#fff;border-bottom-color:#d9e1e8;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#d9e1e8}.boost-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#d9e1e8;padding:10px;line-height:36px}.boost-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#404040;padding-right:10px}.boost-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header{font-size:15px}.boost-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #d9e1e8}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#00007f}.report-modal__statuses .status__content,.report-modal__statuses .status__content p,.focal-point-modal__content .status__content,.focal-point-modal__content .status__content p{color:#121a24}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #d9e1e8;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #d9e1e8;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #c0cdd9}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #d9e1e8;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#121a24;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#121a24;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#121a24;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#00007f;color:#fff}.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#404040;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#363636;background-color:transparent}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#121a24;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.loading-bar{background-color:#00007f;height:3px;position:absolute;top:0;left:0;z-index:9999}.media-gallery__gifv__label{display:block;position:absolute;color:#fff;background:rgba(0,0,0,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{margin-top:32px}.media-gallery__audio audio{width:100%}.attachment-list{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#404040;padding:8px 18px;cursor:default;border-right:1px solid #202e3f;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#404040;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#404040}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%}.media-gallery__item{border:0;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#d9e1e8;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%}.media-gallery__item-thumbnail img{object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#000}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;object-fit:cover;position:relative;top:50%;transform:translateY(-50%);width:100%;z-index:1}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#040609;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #192432;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(0,0,168,.5)}.audio-player__wave-placeholder{background-color:#2d415a}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#040609;border-top:1px solid #192432;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.video-player video{max-width:100vw;max-height:80vh;z-index:1}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#9baec8;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#b2c1d5}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#0000a8}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#0000a8;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#0000a8}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#0000a8;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#000;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#192432;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#040609;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#121a24;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #202e3f;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:0;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#0b1016;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#9baec8;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative;width:100%;white-space:nowrap}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#d9e1e8}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #202e3f}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #121a24}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#0f151d;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #06090c}.filter-form{background:#121a24}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#0000a8;background:#0000a8}::-webkit-scrollbar-thumb{border-radius:0}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#9baec8;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#121a24}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#d9e1e8;max-width:400px}noscript div a{color:#00007f;text-decoration:underline}noscript div a:hover{text-decoration:none}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}@media screen and (max-width: 630px)and (max-height: 400px){.tabs-bar,.search{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar{will-change:padding-bottom;transition:padding-bottom 400ms 100ms}.navigation-bar>a:first-child{will-change:margin-top,margin-left,margin-right,width;transition:margin-top 400ms 100ms,margin-left 400ms 500ms,margin-right 400ms 500ms}.navigation-bar>.navigation-bar__profile-edit{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar .navigation-bar__actions>.icon-button.close{will-change:opacity transform;transition:opacity 200ms 100ms,transform 400ms 100ms}.navigation-bar .navigation-bar__actions>.compose__action-bar .icon-button{will-change:opacity transform;transition:opacity 200ms 300ms,transform 400ms 100ms}.is-composing .tabs-bar,.is-composing .search{margin-top:-50px}.is-composing .navigation-bar{padding-bottom:0}.is-composing .navigation-bar>a:first-child{margin:-100px 10px 0 -50px}.is-composing .navigation-bar .navigation-bar__profile{padding-top:2px}.is-composing .navigation-bar .navigation-bar__profile-edit{position:absolute;margin-top:-60px}.is-composing .navigation-bar .navigation-bar__actions .icon-button.close{pointer-events:auto;opacity:1;transform:scale(1, 1) translate(0, 0);bottom:5px}.is-composing .navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:none;opacity:0;transform:scale(0, 1) translate(100%, 0)}}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#121a24;color:#fff;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#192432}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f}.account__moved-note__message{position:relative;margin-left:58px;color:#404040;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.column-inline-form{padding:15px;padding-right:0;display:flex;justify-content:flex-start;align-items:center;background:#192432}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 10px}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.list-editor{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#283a50;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#283a50}.list-adder__lists{background:#283a50;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #202e3f}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#fff;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.account__header__content{color:#9baec8;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#0b1016}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#192432;padding:5px;border-bottom:1px solid #26374d}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#040609;border:2px solid #192432}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #26374d;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#fff}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #26374d}.account__header__bio .account__header__fields a{color:#0000a8}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#9baec8;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#fff}.trends__header{color:#404040;background:#151f2b;border-bottom:1px solid #0b1016;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #202e3f}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#404040;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#9baec8;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#d9e1e8}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(0,0,127,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#00009e !important}.conversation{display:flex;border-bottom:1px solid #202e3f;padding:5px;padding-bottom:0}.conversation:focus{background:#151f2b;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative;cursor:pointer}.conversation__unread{display:inline-block;background:#00007f;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#9baec8;padding-left:15px}.conversation__content__names{color:#9baec8;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#fff;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content a{word-break:break-word}.conversation--unread{background:#151f2b}.conversation--unread:focus{background:#192432}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#fff}.announcements{background:#202e3f;font-size:13px;display:flex;align-items:flex-end}.announcements__mastodon{width:124px;flex:0 0 auto}@media screen and (max-width: 424px){.announcements__mastodon{display:none}}.announcements__container{width:calc(100% - 124px);flex:0 0 auto;position:relative}@media screen and (max-width: 424px){.announcements__container{width:100%}}.announcements__item{box-sizing:border-box;width:100%;padding:15px;position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;max-height:50vh;overflow:hidden;display:flex;flex-direction:column}.announcements__item__range{display:block;font-weight:500;margin-bottom:10px;padding-right:18px}.announcements__item__unread{position:absolute;top:19px;right:19px;display:block;background:#00007f;border-radius:50%;width:.625rem;height:.625rem}.announcements__pagination{padding:15px;color:#9baec8;position:absolute;bottom:3px;right:0}.layout-multiple-columns .announcements__mastodon{display:none}.layout-multiple-columns .announcements__container{width:100%}.reactions-bar{display:flex;flex-wrap:wrap;align-items:center;margin-top:15px;margin-left:-2px;width:calc(100% - (90px - 33px))}.reactions-bar__item{flex-shrink:0;background:#26374d;border:0;border-radius:3px;margin:2px;cursor:pointer;user-select:none;padding:0 6px;display:flex;align-items:center;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar__item__emoji{display:block;margin:3px 0;width:16px;height:16px}.reactions-bar__item__emoji img{display:block;margin:0;width:100%;height:100%;min-width:auto;min-height:auto;vertical-align:bottom;object-fit:contain}.reactions-bar__item__count{display:block;min-width:9px;font-size:13px;font-weight:500;text-align:center;margin-left:6px;color:#9baec8}.reactions-bar__item:hover,.reactions-bar__item:focus,.reactions-bar__item:active{background:#2d415a;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar__item:hover__count,.reactions-bar__item:focus__count,.reactions-bar__item:active__count{color:#a8b9cf}.reactions-bar__item.active{transition:all 100ms ease-in;transition-property:background-color,color;background-color:#1e2c57}.reactions-bar__item.active .reactions-bar__item__count{color:#0000a8}.reactions-bar .emoji-picker-dropdown{margin:2px}.reactions-bar:hover .emoji-button{opacity:.85}.reactions-bar .emoji-button{color:#9baec8;margin:0;font-size:16px;width:auto;flex-shrink:0;padding:0 6px;height:22px;display:flex;align-items:center;opacity:.5;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar .emoji-button:hover,.reactions-bar .emoji-button:active,.reactions-bar .emoji-button:focus{opacity:1;color:#a8b9cf;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar--empty .emoji-button{padding:0}.poll{margin-top:16px;font-size:14px}.poll li{margin-bottom:10px;position:relative}.poll__chart{border-radius:4px;display:block;background:#8ba1bf;height:5px;min-width:1%}.poll__chart.leading{background:#00007f}.poll__option{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__option__text{display:inline-block;word-wrap:break-word;overflow-wrap:break-word;max-width:calc(100% - 45px - 25px)}.poll__option input[type=radio],.poll__option input[type=checkbox]{display:none}.poll__option .autossugest-input{flex:1 1 auto}.poll__option input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#121a24;outline:0;font-family:inherit;background:#fff;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px}.poll__option input[type=text]:focus{border-color:#00007f}.poll__option.selectable{cursor:pointer}.poll__option.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-color:#acd6c1;border-width:4px}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:45px;font-weight:700;flex:0 0 45px}.poll__voted{padding:0 5px;display:inline-block}.poll__voted__mark{font-size:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#404040}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#404040;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(64,64,64,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #ebebeb}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #ebebeb;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#00007f}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#404040;border-color:#404040;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__option{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#121a24;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#dbdbdb}.muted .poll{color:#404040}.muted .poll__chart{background:rgba(109,137,175,.2)}.muted .poll__chart.leading{background:rgba(0,0,127,.2)}.modal-layout{background:#121a24 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.emoji-mart{font-size:13px;display:inline-block;color:#121a24}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #c0cdd9}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#d9e1e8}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#404040;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#363636}.emoji-mart-anchor-selected{color:#00007f}.emoji-mart-anchor-selected:hover{color:#00006b}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:-1px}.emoji-mart-anchor-bar{position:absolute;bottom:-5px;left:0;width:100%;height:4px;background-color:#00007f}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(217,225,232,.3);color:#121a24;border:1px solid #d9e1e8;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(217,225,232,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#9baec8}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#9baec8}.rich-formatting a{color:#00007f;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#9baec8}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#d9e1e8}.rich-formatting em{font-style:italic;color:#d9e1e8}.rich-formatting code{font-size:.85em;background:#040609;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:\"mastodon-font-display\",sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#d9e1e8}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #192432;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #192432;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#9baec8}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#404040}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#0b1016;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;line-height:28px;color:#fff;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#d9e1e8}.information-board__section strong{font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#040609;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#9baec8;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #192432;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#7a93b6}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#fff;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#9baec8}.landing-page p,.landing-page li{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#9baec8}.landing-page p a,.landing-page li a{color:#00007f;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.landing-page h1{font-family:\"mastodon-font-display\",sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h1 small{font-family:\"mastodon-font-sans-serif\",sans-serif;display:block;font-size:18px;font-weight:400;color:#bcc9da}.landing-page h2{font-family:\"mastodon-font-display\",sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h3{font-family:\"mastodon-font-display\",sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h4{font-family:\"mastodon-font-display\",sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h5{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h6{font-family:\"mastodon-font-display\",sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(64,64,64,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#121a24;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#bcc9da}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#121a24;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#d9e1e8}.landing-page__short-description h1{font-weight:500;color:#fff;margin-bottom:0}.landing-page__short-description h1 small{color:#9baec8}.landing-page__short-description h1 small span{color:#d9e1e8}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#fff;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#121a24;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:\"mastodon-font-display\",sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#9baec8}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#9baec8}.landing .simple_form p.lead{color:#9baec8;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #202e3f}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#404040}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #121a24;text-align:left;background:#0b1016}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #121a24;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#121a24}.table a{color:#00007f;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#121a24;border-top:1px solid #040609;border-bottom:1px solid #040609}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #040609}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #040609}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:\"mastodon-font-monospace\",monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#9baec8;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#fff}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #040609;background:#121a24;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #040609;border-top:0;background:#121a24}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #040609;border-top:0;background:#0b1016}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #040609}}.batch-table__row:hover{background:#0f151d}.batch-table__row:nth-child(even){background:#121a24}.batch-table__row:nth-child(even):hover{background:#151f2b}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#9baec8;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content summary{display:list-item}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #040609;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #040609}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#121a24;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#202e3f;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#fff;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#9baec8;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#26374d}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#9baec8;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#fff;background-color:#0a0e13;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#0f151d;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#0b1016;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#fff;background-color:#00007f;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#009}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #202e3f;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#d9e1e8;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#d9e1e8;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#9baec8;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #202e3f}.admin-wrapper .content h6{font-size:16px;color:#d9e1e8;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#fff;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#fff;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:0}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#d9e1e8;margin-bottom:20px}.admin-wrapper .content>p strong{color:#fff;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(64,64,64,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #192432;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#00007f}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#9baec8}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#00007f}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#404040;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset--with-select strong{display:block;margin-bottom:10px}.filters .filter-subset a{display:inline-block;color:#9baec8;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #121a24}.filters .filter-subset a:hover{color:#fff;border-bottom:2px solid #1b2635}.filters .filter-subset a.selected{color:#00007f;border-bottom:2px solid #00007f}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#d9e1e8}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#00007f;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{line-height:20px;padding:15px 0;background:#121a24;border-bottom:1px solid #192432}.log-entry:last-child{border-bottom:0}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;color:#9baec8;font-size:14px;padding:0 10px}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#404040}.log-entry a,.log-entry .username,.log-entry .target{color:#d9e1e8;text-decoration:none;font-weight:500}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#d9e1e8}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#e87487}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #00007f}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#e87487}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#9baec8}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#404040}.report-card{background:#121a24;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#9baec8;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#b5c3d6}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #0b1016}.report-card__summary__item:hover{background:#151f2b}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#9baec8}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#404040;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#9baec8}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#202e3f;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#0000a8}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#fff}.center-text{text-align:center}.announcements-list{border:1px solid #192432;border-radius:4px}.announcements-list__item{padding:15px 0;background:#121a24;border-bottom:1px solid #192432}.announcements-list__item__title{padding:0 15px;display:block;font-weight:500;font-size:18px;line-height:1.5;color:#d9e1e8;text-decoration:none;margin-bottom:10px}.announcements-list__item__title:hover,.announcements-list__item__title:focus,.announcements-list__item__title:active{color:#fff}.announcements-list__item__meta{padding:0 15px;color:#404040}.announcements-list__item__action-bar{display:flex;justify-content:space-between;align-items:center}.announcements-list__item:last-child{border-bottom:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#192432;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#202e3f}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#fff;font-family:\"mastodon-font-display\",sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#9baec8;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#d9e1e8;font-weight:500;text-decoration:none}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .status__avatar{left:auto;right:10px}body.rtl .status,body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:68px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(1, 1, 2, 0), #010102)}body.rtl .simple_form select{background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff);transform:scale(0.71)}@media screen and (min-width: 1300px){.column{flex-grow:1 !important;max-width:400px}.drawer{width:17%;max-width:400px;min-width:330px}}.media-gallery,.video-player{max-height:30vh;height:30vh !important;position:relative;margin-top:20px;margin-left:-68px;width:calc(100% + 80px) !important;max-width:calc(100% + 80px)}.detailed-status .media-gallery,.detailed-status .video-player{margin-left:-5px;width:calc(100% + 9px);max-width:calc(100% + 9px)}.video-player video{transform:unset;top:unset}.detailed-status .media-spoiler,.status .media-spoiler{height:100% !important;vertical-align:middle}body{font-size:13px;font-family:\"MS Sans Serif\",\"premillenium\",sans-serif;color:#000}.ui,.ui .columns-area,body.admin{background:teal}.loading-bar{height:5px;background-color:navy}.tabs-bar{background:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;height:30px}.tabs-bar__link{color:#000;border:2px outset #bfbfbf;border-top-width:1px;border-left-width:1px;margin:2px;padding:3px}.tabs-bar__link.active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px;color:#000}.tabs-bar__link:last-child::before{content:\"Start\";color:#000;font-weight:bold;font-size:15px;width:80%;display:block;position:absolute;right:0px}.tabs-bar__link:last-child{position:relative;flex-basis:60px !important;font-size:0px;color:#bfbfbf;background-image:url(\"~images/start.png\");background-repeat:no-repeat;background-position:8%;background-clip:padding-box;background-size:auto 50%}.drawer .drawer__inner{overflow:visible;height:inherit;background:#bfbfbf}.drawer:after{display:block;content:\" \";position:absolute;bottom:15px;left:15px;width:132px;height:117px;background-image:url(\"~images/clippy_wave.gif\"),url(\"~images/clippy_frame.png\");background-repeat:no-repeat;background-position:4px 20px,0px 0px;z-index:0}.drawer__pager{overflow-y:auto;z-index:1}.privacy-dropdown__dropdown{z-index:2}.column{max-height:100vh}.column>.scrollable{background:#bfbfbf;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;border-top-width:0px}.column-header__wrapper{color:#fff;font-weight:bold;background:#7f7f7f}.column-header{padding:2px;font-size:13px;background:#7f7f7f;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;border-bottom-width:0px;color:#fff;font-weight:bold;align-items:baseline}.column-header__wrapper.active{background:#00007f}.column-header__wrapper.active::before{display:none}.column-header.active{box-shadow:unset;background:#00007f}.column-header.active .column-header__icon{color:#fff}.column-header__buttons{max-height:20px;margin-right:0px}.column-header__button{background:#bfbfbf;color:#000;line-height:0px;font-size:14px;max-height:20px;padding:0px 2px;margin-top:2px;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px}.column-header__button:hover{color:#000}.column-header__button.active,.column-header__button.active:hover{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px;background-color:#7f7f7f}.column-header__back-button{background:#bfbfbf;color:#000;padding:2px;max-height:20px;margin-top:2px;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;font-size:13px;font-weight:bold}.column-back-button{background:#bfbfbf;color:#000;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;padding:2px;font-size:13px;font-weight:bold}.column-back-button--slim-button{position:absolute;top:-22px;right:4px;max-height:20px;max-width:60px;padding:0px 2px}.column-back-button__icon{font-size:11px;margin-top:-3px}.column-header__collapsible{border-left:2px outset #bfbfbf;border-right:2px outset #bfbfbf}.column-header__collapsible-inner{background:#bfbfbf;color:#000}.column-header__collapsible__extra{color:#000}.column-header__collapsible__extra div[role=group]{border:2px groove #bfbfbf;border-radius:4px;margin-bottom:8px;padding:4px}.column-inline-form{background-color:#bfbfbf;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;border-bottom-width:0px;border-top-width:0px}.column-settings__section{color:#000;font-weight:bold;font-size:11px;position:relative;top:-12px;left:4px;background-color:#bfbfbf;display:inline-block;padding:0px 4px;margin-bottom:0px}.setting-meta__label,.setting-toggle__label{color:#000;font-weight:normal}.setting-meta__label span:before{content:\"(\"}.setting-meta__label span:after{content:\")\"}.setting-toggle{line-height:13px}.react-toggle .react-toggle-track{border-radius:0px;background-color:#fff;border-left:2px solid #404040;border-top:2px solid #404040;border-right:2px solid #efefef;border-bottom:2px solid #efefef;border-radius:0px;width:12px;height:12px}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#fff}.react-toggle .react-toggle-track-check{left:2px;transition:unset}.react-toggle .react-toggle-track-check svg path{fill:#000}.react-toggle .react-toggle-track-x{display:none}.react-toggle .react-toggle-thumb{border-radius:0px;display:none}.text-btn{background-color:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;padding:4px}.text-btn:hover{text-decoration:none;color:#000}.text-btn:active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.setting-text{color:#000;background-color:#fff;box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px;font-size:13px;padding:2px}.setting-text:active,.setting-text:focus,.setting-text.light:active,.setting-text.light:focus{color:#000;border-bottom:2px inset #bfbfbf}.column-header__setting-arrows .column-header__setting-btn{padding:3px 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding:3px 10px}.missing-indicator{background-color:#bfbfbf;color:#000;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px}.missing-indicator>div{background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRUaXRsZQAACJnLyy9Jyy/NSwEAD5IDblIFOhoAAAAXelRYdEF1dGhvcgAACJlLzijKz0vMAQALmgLoDsFj8gAAAQpJREFUOMuVlD0OwjAMhd2oQl04Axfo0IGBgYELcAY6cqQuSO0ZOEAZGBg6VKg74gwsEaoESRVHjusI8aQqzY8/PbtOEz1qkFSn2YevlaNOpLMJh2DwvixhuXtOa6/LCh51DUMEFkAsgAZD207Doin8mQ562JpRE5CHBAAhmIqD1L8AqzUUUJkxc6kr3AgAJ+NuvIWRdk7WcrKl0AUqcIBBHOiEbpS4m27mIL5Onfg3k0rgggeQuS2sDOGSahKR+glgqaGLgUJs951NN1q9D72cQqQWR9cr3sm9YcEssEuz6eEuZh2bu0aSOhQ1MBezu2O/+TVSvEFII3qLsZWrSA2AAUQIh1HpyP/kC++zjVSMj6ntAAAAAElFTkSuQmCC\") no-repeat;background-position:center center}.empty-column-indicator,.error-column{background:#bfbfbf;color:#000}.status__wrapper{border:2px groove #bfbfbf;margin:4px}.status{border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px;background-color:#fff;margin:4px;padding-bottom:40px;margin-bottom:8px}.status.status-direct{background-color:#bfbfbf}.status__content{font-size:13px}.status.light .status__relative-time,.status.light .display-name span{color:#7f7f7f}.status__action-bar{box-sizing:border-box;position:absolute;bottom:-1px;left:-1px;background:#bfbfbf;width:calc(100% + 2px);padding-left:10px;padding:4px 2px;padding-bottom:4px;border-bottom:2px groove #bfbfbf;border-top:1px outset #bfbfbf;text-align:right}.status__wrapper .status__action-bar{border-bottom-width:0px}.status__action-bar-button{float:right}.status__action-bar-dropdown{margin-left:auto;margin-right:10px}.status__action-bar-dropdown .icon-button{min-width:28px}.status.light .status__content a{color:blue}.focusable:focus{background:#bfbfbf}.focusable:focus .detailed-status__action-bar{background:#bfbfbf}.focusable:focus .status,.focusable:focus .detailed-status{background:#fff;outline:2px dotted gray}.dropdown__trigger.icon-button{padding-right:6px}.detailed-status__action-bar-dropdown .icon-button{min-width:28px}.detailed-status{background:#fff;background-clip:padding-box;margin:4px;border:2px groove #bfbfbf;padding:4px}.detailed-status__display-name{color:#7f7f7f}.detailed-status__display-name strong{color:#000;font-weight:bold}.account__avatar,.account__avatar-overlay-base,.account__header__avatar,.account__avatar-overlay-overlay{border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px;clip-path:none;filter:saturate(1.8) brightness(1.1)}.detailed-status__action-bar{background-color:#bfbfbf;border:0px;border-bottom:2px groove #bfbfbf;margin-bottom:8px;justify-items:left;padding-left:4px}.icon-button{background:#bfbfbf;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;padding:0px 0px 0px 0px;margin-right:4px;color:#3f3f3f}.icon-button.inverted,.icon-button:hover,.icon-button.inverted:hover,.icon-button:active,.icon-button:focus{color:#3f3f3f}.icon-button:active{border-left:2px solid #404040;border-top:2px solid #404040;border-right:2px solid #efefef;border-bottom:2px solid #efefef;border-radius:0px}.status__action-bar>.icon-button{padding:0px 15px 0px 0px;min-width:25px}.icon-button.star-icon,.icon-button.star-icon:active{background:transparent;border:none}.icon-button.star-icon.active{color:#ca8f04}.icon-button.star-icon.active:active,.icon-button.star-icon.active:hover,.icon-button.star-icon.active:focus{color:#ca8f04}.icon-button.star-icon>i{background:#bfbfbf;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;padding-bottom:3px}.icon-button.star-icon:active>i{border-left:2px solid #404040;border-top:2px solid #404040;border-right:2px solid #efefef;border-bottom:2px solid #efefef;border-radius:0px}.text-icon-button{color:#404040}.detailed-status__action-bar-dropdown{margin-left:auto;justify-content:right;padding-right:16px}.detailed-status__button{flex:0 0 auto}.detailed-status__button .icon-button{padding-left:2px;padding-right:25px}.status-card{border-radius:0px;background:#fff;border:1px solid #000;color:#000}.status-card:hover{background-color:#fff}.status-card__title{color:blue;text-decoration:underline;font-weight:bold}.load-more{width:auto;margin:5px auto;background:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;color:#000;padding:2px 5px}.load-more:hover{background:#bfbfbf;color:#000}.status-card__description{color:#000}.account__display-name strong,.status__display-name strong{color:#000;font-weight:bold}.account .account__display-name{color:#000}.account{border-bottom:2px groove #bfbfbf}.reply-indicator__content .status__content__spoiler-link,.status__content .status__content__spoiler-link{background:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px}.reply-indicator__content .status__content__spoiler-link:hover,.status__content .status__content__spoiler-link:hover{background:#bfbfbf}.reply-indicator__content .status__content__spoiler-link:active,.status__content .status__content__spoiler-link:active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.reply-indicator__content a,.status__content a{color:blue}.notification{border:2px groove #bfbfbf;margin:4px}.notification__message{color:#000;font-size:13px}.notification__display-name{font-weight:bold}.drawer__header{background:#bfbfbf;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;justify-content:left;margin-bottom:0px;padding-bottom:2px;border-bottom:2px groove #bfbfbf}.drawer__tab{color:#000;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;padding:5px;margin:2px;flex:0 0 auto}.drawer__tab:first-child::before{content:\"Start\";color:#000;font-weight:bold;font-size:15px;width:80%;display:block;position:absolute;right:0px}.drawer__tab:first-child{position:relative;padding:5px 15px;width:40px;font-size:0px;color:#bfbfbf;background-image:url(\"~images/start.png\");background-repeat:no-repeat;background-position:8%;background-clip:padding-box;background-size:auto 50%}.drawer__header a:hover{background-color:transparent}.drawer__header a:first-child:hover{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAIAAACpTQvdAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRBdXRob3IAAAiZS84oys9LzAEAC5oC6A7BY/IAAACWSURBVCiRhVJJDsQgDEuqOfRZ7a1P5gbP4uaJaEjTADMWQhHYjlk4p0wLnNdptdF4KvBUDyGzVwc2xO+uKtH+1o0ytEEmqFpuxlvFCGCxKbNIT56QCi2MzaA/2Mz+mERSOeqzJG2RUxkjdTabgPtFoZ1bZxcKvgPcLZVufAyR9Ni8v5dWDzfFx0giC1RvZFv6l35QQ/Mvv39XXgGzQpoAAAAASUVORK5CYII=\");background-repeat:no-repeat;background-position:8%;background-clip:padding-box;background-size:auto 50%;transition:unset}.search{background:#bfbfbf;padding-top:2px;padding:2px;border:2px outset #bfbfbf;border-top-width:0px;border-bottom:2px groove #bfbfbf;margin-bottom:0px}.search input{background-color:#fff;color:#000;border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px}.search__input:focus{background-color:#fff}.search-popout{box-shadow:unset;color:#000;border-radius:0px;background-color:#ffc;border:1px solid #000}.search-popout h4{color:#000;text-transform:none;font-weight:bold}.search-results__header{background-color:#bfbfbf;color:#000;border-bottom:2px groove #bfbfbf}.search-results__hashtag{color:blue}.search-results__section .account:hover,.search-results__section .account:hover .account__display-name,.search-results__section .account:hover .account__display-name strong,.search-results__section .search-results__hashtag:hover{background-color:#00007f;color:#fff}.search__icon .fa{color:gray}.search__icon .fa.active{opacity:1}.search__icon .fa:hover{color:gray}.drawer__inner,.drawer__inner.darker{background-color:#bfbfbf;border:2px outset #bfbfbf;border-top-width:0px}.navigation-bar{color:#000}.navigation-bar strong{color:#000;font-weight:bold}.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{border-radius:0px;border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px}.compose-form .autosuggest-textarea__textarea{border-bottom:0px}.compose-form__uploads-wrapper{border-radius:0px;border-bottom:1px inset #bfbfbf;border-top-width:0px}.compose-form__upload-wrapper{border-left:1px inset #bfbfbf;border-right:1px inset #bfbfbf}.compose-form .compose-form__buttons-wrapper{background-color:#bfbfbf;border:2px groove #bfbfbf;margin-top:4px;padding:4px 8px}.compose-form__buttons{background-color:#bfbfbf;border-radius:0px;box-shadow:unset}.compose-form__buttons-separator{border-left:2px groove #bfbfbf}.privacy-dropdown.active .privacy-dropdown__value.active,.advanced-options-dropdown.open .advanced-options-dropdown__value{background:#bfbfbf}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#404040}.privacy-dropdown.active .privacy-dropdown__value{background:#bfbfbf;box-shadow:unset}.privacy-dropdown__option.active,.privacy-dropdown__option:hover,.privacy-dropdown__option.active:hover{background:#00007f}.privacy-dropdown__dropdown,.privacy-dropdown.active .privacy-dropdown__dropdown,.advanced-options-dropdown__dropdown,.advanced-options-dropdown.open .advanced-options-dropdown__dropdown{box-shadow:unset;color:#000;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;background:#bfbfbf}.privacy-dropdown__option__content{color:#000}.privacy-dropdown__option__content strong{font-weight:bold}.compose-form__warning::before{content:\"Tip:\";font-weight:bold;display:block;position:absolute;top:-10px;background-color:#bfbfbf;font-size:11px;padding:0px 5px}.compose-form__warning{position:relative;box-shadow:unset;border:2px groove #bfbfbf;background-color:#bfbfbf;color:#000}.compose-form__warning a{color:blue}.compose-form__warning strong{color:#000;text-decoration:underline}.compose-form__buttons button.active:last-child{border-left:2px solid #404040;border-top:2px solid #404040;border-right:2px solid #efefef;border-bottom:2px solid #efefef;border-radius:0px;background:#dfdfdf;color:#7f7f7f}.compose-form__upload-thumbnail{border-radius:0px;border:2px groove #bfbfbf;background-color:#bfbfbf;padding:2px;box-sizing:border-box}.compose-form__upload-thumbnail .icon-button{max-width:20px;max-height:20px;line-height:10px !important}.compose-form__upload-thumbnail .icon-button::before{content:\"X\";font-size:13px;font-weight:bold;color:#000}.compose-form__upload-thumbnail .icon-button i{display:none}.emoji-picker-dropdown__menu{z-index:2}.emoji-dialog.with-search{box-shadow:unset;border-radius:0px;background-color:#bfbfbf;border:1px solid #000;box-sizing:content-box}.emoji-dialog .emoji-search{color:#000;background-color:#fff;border-radius:0px;box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.emoji-dialog .emoji-search-wrapper{border-bottom:2px groove #bfbfbf}.emoji-dialog .emoji-category-title{color:#000;font-weight:bold}.reply-indicator{background-color:#bfbfbf;border-radius:3px;border:2px groove #bfbfbf}.button{background-color:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;border-radius:0px;color:#000;font-weight:bold}.button:hover,.button:focus,.button:disabled{background-color:#bfbfbf}.button:active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.button:disabled{color:gray;text-shadow:1px 1px 0px #efefef}.button:disabled:active{box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px}#Getting-started{background-color:#bfbfbf;box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px;border-bottom-width:0px}#Getting-started::before{content:\"Start\";color:#000;font-weight:bold;font-size:15px;width:80%;text-align:center;display:block;position:absolute;right:2px}#Getting-started{position:relative;padding:5px 15px;width:60px;font-size:0px;color:#bfbfbf;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAIAAACpTQvdAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRBdXRob3IAAAiZS84oys9LzAEAC5oC6A7BY/IAAACWSURBVCiRhVJJDsQgDEuqOfRZ7a1P5gbP4uaJaEjTADMWQhHYjlk4p0wLnNdptdF4KvBUDyGzVwc2xO+uKtH+1o0ytEEmqFpuxlvFCGCxKbNIT56QCi2MzaA/2Mz+mERSOeqzJG2RUxkjdTabgPtFoZ1bZxcKvgPcLZVufAyR9Ni8v5dWDzfFx0giC1RvZFv6l35QQ/Mvv39XXgGzQpoAAAAASUVORK5CYII=\");background-repeat:no-repeat;background-position:8%;background-clip:padding-box;background-size:auto 50%}.column-subheading{background-color:#bfbfbf;color:#000;border-bottom:2px groove #bfbfbf;text-transform:none;font-size:16px}.column-link{background-color:transparent;color:#000}.column-link:hover{background-color:#00007f;color:#fff}.getting-started__wrapper .column-subheading{font-size:0px;margin:0px;padding:0px}.getting-started__wrapper .column-link{background-size:32px 32px;background-repeat:no-repeat;background-position:36px 50%;padding-left:40px}.getting-started__wrapper .column-link:hover{background-size:32px 32px;background-repeat:no-repeat;background-position:36px 50%}.getting-started__wrapper .column-link i{font-size:0px;width:32px}.column-link[href=\"/web/timelines/public\"]{background-image:url(\"~images/icon_public.png\")}.column-link[href=\"/web/timelines/public\"]:hover{background-image:url(\"~images/icon_public.png\")}.column-link[href=\"/web/timelines/public/local\"]{background-image:url(\"~images/icon_local.png\")}.column-link[href=\"/web/timelines/public/local\"]:hover{background-image:url(\"~images/icon_local.png\")}.column-link[href=\"/web/pinned\"]{background-image:url(\"~images/icon_pin.png\")}.column-link[href=\"/web/pinned\"]:hover{background-image:url(\"~images/icon_pin.png\")}.column-link[href=\"/web/favourites\"]{background-image:url(\"~images/icon_likes.png\")}.column-link[href=\"/web/favourites\"]:hover{background-image:url(\"~images/icon_likes.png\")}.column-link[href=\"/web/lists\"]{background-image:url(\"~images/icon_lists.png\")}.column-link[href=\"/web/lists\"]:hover{background-image:url(\"~images/icon_lists.png\")}.column-link[href=\"/web/follow_requests\"]{background-image:url(\"~images/icon_follow_requests.png\")}.column-link[href=\"/web/follow_requests\"]:hover{background-image:url(\"~images/icon_follow_requests.png\")}.column-link[href=\"/web/keyboard-shortcuts\"]{background-image:url(\"~images/icon_keyboard_shortcuts.png\")}.column-link[href=\"/web/keyboard-shortcuts\"]:hover{background-image:url(\"~images/icon_keyboard_shortcuts.png\")}.column-link[href=\"/web/blocks\"]{background-image:url(\"~images/icon_blocks.png\")}.column-link[href=\"/web/blocks\"]:hover{background-image:url(\"~images/icon_blocks.png\")}.column-link[href=\"/web/mutes\"]{background-image:url(\"~images/icon_mutes.png\")}.column-link[href=\"/web/mutes\"]:hover{background-image:url(\"~images/icon_mutes.png\")}.column-link[href=\"/settings/preferences\"]{background-image:url(\"~images/icon_settings.png\")}.column-link[href=\"/settings/preferences\"]:hover{background-image:url(\"~images/icon_settings.png\")}.column-link[href=\"/about/more\"]{background-image:url(\"~images/icon_about.png\")}.column-link[href=\"/about/more\"]:hover{background-image:url(\"~images/icon_about.png\")}.column-link[href=\"/auth/sign_out\"]{background-image:url(\"~images/icon_logout.png\")}.column-link[href=\"/auth/sign_out\"]:hover{background-image:url(\"~images/icon_logout.png\")}.getting-started__footer{display:none}.getting-started__wrapper::before{content:\"Mastodon 95\";font-weight:bold;font-size:23px;color:#fff;line-height:30px;padding-left:20px;padding-right:40px;left:0px;bottom:-30px;display:block;position:absolute;background-color:#7f7f7f;width:200%;height:30px;-ms-transform:rotate(-90deg);-webkit-transform:rotate(-90deg);transform:rotate(-90deg);transform-origin:top left}.getting-started__wrapper{border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;background-color:#bfbfbf}.column .static-content.getting-started{display:none}.keyboard-shortcuts kbd{background-color:#bfbfbf}.account__header{background-color:#7f7f7f}.account__header .account__header__content{color:#fff}.account-authorize__wrapper{border:2px groove #bfbfbf;margin:2px;padding:2px}.account--panel{background-color:#bfbfbf;border:0px;border-top:2px groove #bfbfbf}.account-authorize .account__header__content{color:#000;margin:10px}.account__action-bar__tab>span{color:#000;font-weight:bold}.account__action-bar__tab strong{color:#000}.account__action-bar{border:unset}.account__action-bar__tab{border:1px outset #bfbfbf}.account__action-bar__tab:active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.dropdown--active .dropdown__content>ul,.dropdown-menu{background:#ffc;border-radius:0px;border:1px solid #000;box-shadow:unset}.dropdown-menu a{background-color:transparent}.dropdown--active::after{display:none}.dropdown--active .icon-button{color:#000;box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.dropdown--active .dropdown__content>ul>li>a{background:transparent}.dropdown--active .dropdown__content>ul>li>a:hover{background:transparent;color:#000;text-decoration:underline}.dropdown__sep,.dropdown-menu__separator{border-color:#7f7f7f}.detailed-status__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__left{left:unset}.dropdown>.icon-button,.detailed-status__button>.icon-button,.status__action-bar>.icon-button,.star-icon i{height:25px !important;width:28px !important;box-sizing:border-box}.status__action-bar-button .fa-floppy-o{padding-top:2px}.status__action-bar-dropdown{position:relative;top:-3px}.detailed-status__action-bar-dropdown .dropdown{position:relative;top:-4px}.notification .status__action-bar{border-bottom:none}.notification .status{margin-bottom:4px}.status__wrapper .status{margin-bottom:3px}.status__wrapper{margin-bottom:8px}.icon-button .fa-retweet{position:relative;top:-1px}.embed-modal,.error-modal,.onboarding-modal,.actions-modal,.boost-modal,.confirmation-modal,.report-modal{box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;background:#bfbfbf}.actions-modal::before,.boost-modal::before,.confirmation-modal::before,.report-modal::before{content:\"Confirmation\";display:block;background:#00007f;color:#fff;font-weight:bold;padding-left:2px}.boost-modal::before{content:\"Boost confirmation\"}.boost-modal__action-bar>div>span:before{content:\"Tip: \";font-weight:bold}.boost-modal__action-bar,.confirmation-modal__action-bar,.report-modal__action-bar{background:#bfbfbf;margin-top:-15px}.embed-modal h4,.error-modal h4,.onboarding-modal h4{background:#00007f;color:#fff;font-weight:bold;padding:2px;font-size:13px;text-align:left}.confirmation-modal__action-bar .confirmation-modal__cancel-button{color:#000}.confirmation-modal__action-bar .confirmation-modal__cancel-button:active,.confirmation-modal__action-bar .confirmation-modal__cancel-button:focus,.confirmation-modal__action-bar .confirmation-modal__cancel-button:hover{color:#000}.confirmation-modal__action-bar .confirmation-modal__cancel-button:active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.embed-modal .embed-modal__container .embed-modal__html,.embed-modal .embed-modal__container .embed-modal__html:focus{background:#fff;color:#000;box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.modal-root__overlay,.account__header>div{background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAFnpUWHRUaXRsZQAACJnLzU9JzElKBwALgwLXaCRlPwAAABd6VFh0QXV0aG9yAAAImUvOKMrPS8wBAAuaAugOwWPyAAAAEUlEQVQImWNgYGD4z4AE/gMADwMB/414xEUAAAAASUVORK5CYII=\")}.admin-wrapper::before{position:absolute;top:0px;content:\"Control Panel\";color:#fff;background-color:#00007f;font-size:13px;font-weight:bold;width:calc(100%);margin:2px;display:block;padding:2px;padding-left:22px;box-sizing:border-box}.admin-wrapper{position:relative;background:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;width:70vw;height:80vh;margin:10vh auto;color:#000;padding-top:24px;flex-direction:column;overflow:hidden}@media screen and (max-width: 1120px){.admin-wrapper{width:90vw;height:95vh;margin:2.5vh auto}}@media screen and (max-width: 740px){.admin-wrapper{width:100vw;height:95vh;height:calc(100vh - 24px);margin:0px 0px 0px 0px}}.admin-wrapper .sidebar-wrapper{position:static;height:auto;flex:0 0 auto;margin:2px}.admin-wrapper .content-wrapper{flex:1 1 auto;width:calc(100% - 20px);border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;position:relative;margin-left:10px;margin-right:10px;margin-bottom:40px;box-sizing:border-box}.admin-wrapper .content{background-color:#bfbfbf;width:100%;max-width:100%;min-height:100%;box-sizing:border-box;position:relative}.admin-wrapper .sidebar{position:static;background:#bfbfbf;color:#000;width:100%;height:auto;padding-bottom:20px}.admin-wrapper .sidebar .logo{position:absolute;top:2px;left:4px;width:18px;height:18px;margin:0px}.admin-wrapper .sidebar>ul{background:#bfbfbf;margin:0px;margin-left:8px;color:#000}.admin-wrapper .sidebar>ul>li{display:inline-block}.admin-wrapper .sidebar>ul>li#settings,.admin-wrapper .sidebar>ul>li#admin{padding:2px;border:0px solid transparent}.admin-wrapper .sidebar>ul>li#logout{position:absolute;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;right:12px;bottom:10px}.admin-wrapper .sidebar>ul>li#web{display:inline-block;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;position:absolute;left:12px;bottom:10px}.admin-wrapper .sidebar>ul>li>a{display:inline-block;box-shadow:inset -1px 0px 0px #000,inset 1px 0px 0px #fff,inset 0px 1px 0px #fff,inset 0px 2px 0px #dfdfdf,inset -2px 0px 0px gray,inset 2px 0px 0px #dfdfdf;border-radius:0px;border-top-left-radius:1px;border-top-right-radius:1px;padding:2px 5px;margin:0px;color:#000;vertical-align:baseline}.admin-wrapper .sidebar>ul>li>a.selected{background:#bfbfbf;color:#000;padding-top:4px;padding-bottom:4px}.admin-wrapper .sidebar>ul>li>a:hover{background:#bfbfbf;color:#000}.admin-wrapper .sidebar>ul>li>ul{width:calc(100% - 20px);background:transparent;position:absolute;left:10px;top:54px;z-index:3}.admin-wrapper .sidebar>ul>li>ul>li{background:#bfbfbf;display:inline-block;vertical-align:baseline}.admin-wrapper .sidebar>ul>li>ul>li>a{background:#bfbfbf;box-shadow:inset -1px 0px 0px #000,inset 1px 0px 0px #fff,inset 0px 1px 0px #fff,inset 0px 2px 0px #dfdfdf,inset -2px 0px 0px gray,inset 2px 0px 0px #dfdfdf;border-radius:0px;border-top-left-radius:1px;border-top-right-radius:1px;color:#000;padding:2px 5px;position:relative;z-index:3}.admin-wrapper .sidebar>ul>li>ul>li>a.selected{background:#bfbfbf;color:#000;padding-bottom:4px;padding-top:4px;padding-right:7px;margin-left:-2px;margin-right:-2px;position:relative;z-index:4}.admin-wrapper .sidebar>ul>li>ul>li>a.selected:first-child{margin-left:0px}.admin-wrapper .sidebar>ul>li>ul>li>a.selected:hover{background:transparent;color:#000}.admin-wrapper .sidebar>ul>li>ul>li>a:hover{background:#bfbfbf;color:#000}@media screen and (max-width: 1520px){.admin-wrapper .sidebar>ul>li>ul{max-width:1000px}.admin-wrapper .sidebar{padding-bottom:45px}}@media screen and (max-width: 600px){.admin-wrapper .sidebar>ul>li>ul{max-width:500px}.admin-wrapper .sidebar{padding:0px;padding-bottom:70px;width:100%;height:auto}.admin-wrapper .content-wrapper{overflow:auto;height:80%;height:calc(100% - 150px)}}.flash-message{background-color:#ffc;color:#000;border:1px solid #000;border-radius:0px;position:absolute;top:0px;left:0px;width:100%}.admin-wrapper table{background-color:#fff;border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px}.admin-wrapper .content h2,.simple_form .input.with_label .label_input>label,.admin-wrapper .content h6,.admin-wrapper .content>p,.admin-wrapper .content .muted-hint,.simple_form span.hint,.simple_form h4,.simple_form .check_boxes .checkbox label,.simple_form .input.with_label.boolean .label_input>label,.filters .filter-subset a,.simple_form .input.radio_buttons .radio label,a.table-action-link,a.table-action-link:hover,.simple_form .input.with_block_label>label,.simple_form p.hint{color:#000}.table>tbody>tr:nth-child(2n+1)>td,.table>tbody>tr:nth-child(2n+1)>th{background-color:#fff}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{color:#000;background-color:#fff;border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{background-color:#fff}.simple_form button,.simple_form .button,.simple_form .block-button{background:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;color:#000;font-weight:normal}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background:#bfbfbf}.simple_form .warning,.table-form .warning{background:#ffc;color:#000;box-shadow:unset;text-shadow:unset;border:1px solid #000}.simple_form .warning a,.table-form .warning a{color:blue;text-decoration:underline}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#bfbfbf}.filters .filter-subset{border:2px groove #bfbfbf;padding:2px}.filters .filter-subset a::before{content:\"\";background-color:#fff;border-radius:50%;border:2px solid #000;border-top-color:#7f7f7f;border-left-color:#7f7f7f;border-bottom-color:#f5f5f5;border-right-color:#f5f5f5;width:12px;height:12px;display:inline-block;vertical-align:middle;margin-right:2px}.filters .filter-subset a.selected::before{background-color:#000;box-shadow:inset 0 0 0 3px #fff}.filters .filter-subset a,.filters .filter-subset a:hover,.filters .filter-subset a.selected{color:#000;border-bottom:0px solid transparent}","// win95 theme from cybrespace.\n\n// Modified by kibi! to use webpack package syntax for urls (eg,\n// `url(~images/…)`) for easy importing into skins.\n\n$win95-bg: #bfbfbf;\n$win95-dark-grey: #404040;\n$win95-mid-grey: #808080;\n$win95-window-header: #00007f;\n$win95-tooltip-yellow: #ffffcc;\n$win95-blue: blue;\n\n$ui-base-lighter-color: $win95-dark-grey;\n$ui-highlight-color: $win95-window-header;\n\n@mixin win95-border-outset() {\n border-left: 2px solid #efefef;\n border-top: 2px solid #efefef;\n border-right: 2px solid #404040;\n border-bottom: 2px solid #404040;\n border-radius:0px;\n}\n\n@mixin win95-outset() {\n box-shadow: inset -1px -1px 0px #000000,\n inset 1px 1px 0px #ffffff,\n inset -2px -2px 0px #808080,\n inset 2px 2px 0px #dfdfdf;\n border-radius:0px;\n}\n\n@mixin win95-border-inset() {\n border-left: 2px solid #404040;\n border-top: 2px solid #404040;\n border-right: 2px solid #efefef;\n border-bottom: 2px solid #efefef;\n border-radius:0px;\n}\n\n@mixin win95-border-slight-inset() {\n border-left: 1px solid #404040;\n border-top: 1px solid #404040;\n border-right: 1px solid #efefef;\n border-bottom: 1px solid #efefef;\n border-radius:0px;\n}\n\n@mixin win95-inset() {\n box-shadow: inset 1px 1px 0px #000000,\n inset -1px -1px 0px #ffffff,\n inset 2px 2px 0px #808080,\n inset -2px -2px 0px #dfdfdf;\n border-width:0px;\n border-radius:0px;\n}\n\n@mixin win95-tab() {\n box-shadow: inset -1px 0px 0px #000000,\n inset 1px 0px 0px #ffffff,\n inset 0px 1px 0px #ffffff,\n inset 0px 2px 0px #dfdfdf,\n inset -2px 0px 0px #808080,\n inset 2px 0px 0px #dfdfdf;\n border-radius:0px;\n border-top-left-radius: 1px;\n border-top-right-radius: 1px;\n}\n\n@mixin win95-reset() {\n box-shadow: unset;\n}\n\n@font-face {\n font-family:\"premillenium\";\n src: url('~fonts/premillenium/MSSansSerif.ttf') format('truetype');\n}\n\n@import 'application';\n\n/* borrowed from cybrespace style: wider columns and full column width images */\n\n@media screen and (min-width: 1300px) {\n .column {\n flex-grow: 1 !important;\n max-width: 400px;\n }\n\n .drawer {\n width: 17%;\n max-width: 400px;\n min-width: 330px;\n }\n}\n\n.media-gallery,\n.video-player {\n max-height:30vh;\n height:30vh !important;\n position:relative;\n margin-top:20px;\n margin-left:-68px;\n width: calc(100% + 80px) !important;\n max-width: calc(100% + 80px);\n}\n\n.detailed-status .media-gallery,\n.detailed-status .video-player {\n margin-left:-5px;\n width: calc(100% + 9px);\n max-width: calc(100% + 9px);\n}\n\n.video-player video {\n transform: unset;\n top: unset;\n}\n\n.detailed-status .media-spoiler,\n.status .media-spoiler {\n height: 100%!important;\n vertical-align: middle;\n}\n\n/* main win95 style */\n\nbody {\n font-size:13px;\n font-family: \"MS Sans Serif\", \"premillenium\", sans-serif;\n color:black;\n}\n\n.ui,\n.ui .columns-area,\nbody.admin {\n background: #008080;\n}\n\n.loading-bar {\n height:5px;\n background-color: #000080;\n}\n\n.tabs-bar {\n background: $win95-bg;\n @include win95-outset();\n height: 30px;\n}\n\n.tabs-bar__link {\n color:black;\n border:2px outset $win95-bg;\n border-top-width: 1px;\n border-left-width: 1px;\n margin:2px;\n padding:3px;\n}\n\n.tabs-bar__link.active {\n @include win95-inset();\n color:black;\n}\n\n.tabs-bar__link:last-child::before {\n content:\"Start\";\n color:black;\n font-weight:bold;\n font-size:15px;\n width:80%;\n display:block;\n position:absolute;\n right:0px;\n}\n\n.tabs-bar__link:last-child {\n position:relative;\n flex-basis:60px !important;\n font-size:0px;\n color:$win95-bg;\n\n background-image: url(\"~images/start.png\");\n background-repeat:no-repeat;\n background-position:8%;\n background-clip:padding-box;\n background-size:auto 50%;\n}\n\n.drawer .drawer__inner {\n overflow: visible;\n height:inherit;\n background:$win95-bg;\n}\n\n.drawer:after {\n display:block;\n content: \" \";\n\n position:absolute;\n bottom:15px;\n left:15px;\n width:132px;\n height:117px;\n background-image:url(\"~images/clippy_wave.gif\"), url(\"~images/clippy_frame.png\");\n background-repeat:no-repeat;\n background-position: 4px 20px, 0px 0px;\n z-index:0;\n}\n\n.drawer__pager {\n overflow-y:auto;\n z-index:1;\n}\n\n.privacy-dropdown__dropdown {\n z-index:2;\n}\n\n.column {\n max-height:100vh;\n}\n\n.column > .scrollable {\n background: $win95-bg;\n @include win95-border-outset();\n border-top-width:0px;\n}\n\n.column-header__wrapper {\n color:white;\n font-weight:bold;\n background:#7f7f7f;\n}\n\n.column-header {\n padding:2px;\n font-size:13px;\n background:#7f7f7f;\n @include win95-border-outset();\n border-bottom-width:0px;\n color:white;\n font-weight:bold;\n align-items:baseline;\n}\n\n.column-header__wrapper.active {\n background:$win95-window-header;\n}\n\n.column-header__wrapper.active::before {\n display:none;\n}\n.column-header.active {\n box-shadow:unset;\n background:$win95-window-header;\n}\n\n.column-header.active .column-header__icon {\n color:white;\n}\n\n.column-header__buttons {\n max-height: 20px;\n margin-right:0px;\n}\n\n.column-header__button {\n background: $win95-bg;\n color: black;\n line-height:0px;\n font-size:14px;\n max-height:20px;\n padding:0px 2px;\n margin-top:2px;\n @include win95-outset();\n\n &:hover {\n color: black;\n }\n}\n\n.column-header__button.active, .column-header__button.active:hover {\n @include win95-inset();\n background-color:#7f7f7f;\n}\n\n.column-header__back-button {\n background: $win95-bg;\n color: black;\n padding:2px;\n max-height:20px;\n margin-top:2px;\n @include win95-outset();\n font-size:13px;\n font-weight:bold;\n}\n\n.column-back-button {\n background:$win95-bg;\n color:black;\n @include win95-outset();\n padding:2px;\n font-size:13px;\n font-weight:bold;\n}\n\n.column-back-button--slim-button {\n position:absolute;\n top:-22px;\n right:4px;\n max-height:20px;\n max-width:60px;\n padding:0px 2px;\n}\n\n.column-back-button__icon {\n font-size:11px;\n margin-top:-3px;\n}\n\n.column-header__collapsible {\n border-left:2px outset $win95-bg;\n border-right:2px outset $win95-bg;\n}\n\n.column-header__collapsible-inner {\n background:$win95-bg;\n color:black;\n}\n\n.column-header__collapsible__extra {\n color:black;\n}\n\n.column-header__collapsible__extra div[role=\"group\"] {\n border: 2px groove $win95-bg;\n border-radius:4px;\n margin-bottom:8px;\n padding:4px;\n}\n\n.column-inline-form {\n background-color: $win95-bg;\n @include win95-border-outset();\n border-bottom-width:0px;\n border-top-width:0px;\n}\n\n.column-settings__section {\n color:black;\n font-weight:bold;\n font-size:11px;\n position:relative;\n top: -12px;\n left:4px;\n background-color:$win95-bg;\n display:inline-block;\n padding:0px 4px;\n margin-bottom:0px;\n}\n\n.setting-meta__label, .setting-toggle__label {\n color:black;\n font-weight:normal;\n}\n\n.setting-meta__label span:before {\n content:\"(\";\n}\n.setting-meta__label span:after {\n content:\")\";\n}\n\n.setting-toggle {\n line-height:13px;\n}\n\n.react-toggle .react-toggle-track {\n border-radius:0px;\n background-color:white;\n @include win95-border-inset();\n\n width:12px;\n height:12px;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color:white;\n}\n\n.react-toggle .react-toggle-track-check {\n left:2px;\n transition:unset;\n}\n\n.react-toggle .react-toggle-track-check svg path {\n fill: black;\n}\n\n.react-toggle .react-toggle-track-x {\n display:none;\n}\n\n.react-toggle .react-toggle-thumb {\n border-radius:0px;\n display:none;\n}\n\n.text-btn {\n background-color:$win95-bg;\n @include win95-outset();\n padding:4px;\n}\n\n.text-btn:hover {\n text-decoration:none;\n color:black;\n}\n\n.text-btn:active {\n @include win95-inset();\n}\n\n.setting-text {\n color:black;\n background-color:white;\n @include win95-inset();\n font-size:13px;\n padding:2px;\n}\n\n.setting-text:active, .setting-text:focus,\n.setting-text.light:active, .setting-text.light:focus {\n color:black;\n border-bottom:2px inset $win95-bg;\n}\n\n.column-header__setting-arrows .column-header__setting-btn {\n padding:3px 10px;\n}\n\n.column-header__setting-arrows .column-header__setting-btn:last-child {\n padding:3px 10px;\n}\n\n.missing-indicator {\n background-color:$win95-bg;\n color:black;\n @include win95-outset();\n}\n\n.missing-indicator > div {\n background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRUaXRsZQAACJnLyy9Jyy/NSwEAD5IDblIFOhoAAAAXelRYdEF1dGhvcgAACJlLzijKz0vMAQALmgLoDsFj8gAAAQpJREFUOMuVlD0OwjAMhd2oQl04Axfo0IGBgYELcAY6cqQuSO0ZOEAZGBg6VKg74gwsEaoESRVHjusI8aQqzY8/PbtOEz1qkFSn2YevlaNOpLMJh2DwvixhuXtOa6/LCh51DUMEFkAsgAZD207Doin8mQ562JpRE5CHBAAhmIqD1L8AqzUUUJkxc6kr3AgAJ+NuvIWRdk7WcrKl0AUqcIBBHOiEbpS4m27mIL5Onfg3k0rgggeQuS2sDOGSahKR+glgqaGLgUJs951NN1q9D72cQqQWR9cr3sm9YcEssEuz6eEuZh2bu0aSOhQ1MBezu2O/+TVSvEFII3qLsZWrSA2AAUQIh1HpyP/kC++zjVSMj6ntAAAAAElFTkSuQmCC')\n no-repeat;\n background-position:center center;\n}\n\n.empty-column-indicator,\n.error-column {\n background: $win95-bg;\n color: black;\n}\n\n.status__wrapper {\n border: 2px groove $win95-bg;\n margin:4px;\n}\n\n.status {\n @include win95-border-slight-inset();\n background-color:white;\n margin:4px;\n padding-bottom:40px;\n margin-bottom:8px;\n}\n\n.status.status-direct {\n background-color:$win95-bg;\n}\n\n.status__content {\n font-size:13px;\n}\n\n.status.light .status__relative-time,\n.status.light .display-name span {\n color: #7f7f7f;\n}\n\n.status__action-bar {\n box-sizing:border-box;\n position:absolute;\n bottom:-1px;\n left:-1px;\n background:$win95-bg;\n width:calc(100% + 2px);\n padding-left:10px;\n padding: 4px 2px;\n padding-bottom:4px;\n border-bottom:2px groove $win95-bg;\n border-top:1px outset $win95-bg;\n text-align: right;\n}\n\n.status__wrapper .status__action-bar {\n border-bottom-width:0px;\n}\n\n.status__action-bar-button {\n float:right;\n}\n\n.status__action-bar-dropdown {\n margin-left:auto;\n margin-right:10px;\n\n .icon-button {\n min-width:28px;\n }\n}\n.status.light .status__content a {\n color:blue;\n}\n\n.focusable:focus {\n background: $win95-bg;\n .detailed-status__action-bar {\n background: $win95-bg;\n }\n\n .status, .detailed-status {\n background: white;\n outline:2px dotted $win95-mid-grey;\n }\n}\n\n.dropdown__trigger.icon-button {\n padding-right:6px;\n}\n\n.detailed-status__action-bar-dropdown .icon-button {\n min-width:28px;\n}\n\n.detailed-status {\n background:white;\n background-clip:padding-box;\n margin:4px;\n border: 2px groove $win95-bg;\n padding:4px;\n}\n\n.detailed-status__display-name {\n color:#7f7f7f;\n}\n\n.detailed-status__display-name strong {\n color:black;\n font-weight:bold;\n}\n.account__avatar,\n.account__avatar-overlay-base,\n.account__header__avatar,\n.account__avatar-overlay-overlay {\n @include win95-border-slight-inset();\n clip-path:none;\n filter: saturate(1.8) brightness(1.1);\n}\n\n.detailed-status__action-bar {\n background-color:$win95-bg;\n border:0px;\n border-bottom:2px groove $win95-bg;\n margin-bottom:8px;\n justify-items:left;\n padding-left:4px;\n}\n.icon-button {\n background:$win95-bg;\n @include win95-border-outset();\n padding:0px 0px 0px 0px;\n margin-right:4px;\n\n color:#3f3f3f;\n &.inverted, &:hover, &.inverted:hover, &:active, &:focus {\n color:#3f3f3f;\n }\n}\n\n.icon-button:active {\n @include win95-border-inset();\n}\n\n.status__action-bar > .icon-button {\n padding:0px 15px 0px 0px;\n min-width:25px;\n}\n\n.icon-button.star-icon,\n.icon-button.star-icon:active {\n background:transparent;\n border:none;\n}\n\n.icon-button.star-icon.active {\n color: $gold-star;\n &:active, &:hover, &:focus {\n color: $gold-star;\n }\n}\n\n.icon-button.star-icon > i {\n background:$win95-bg;\n @include win95-border-outset();\n padding-bottom:3px;\n}\n\n.icon-button.star-icon:active > i {\n @include win95-border-inset();\n}\n\n.text-icon-button {\n color:$win95-dark-grey;\n}\n\n.detailed-status__action-bar-dropdown {\n margin-left:auto;\n justify-content:right;\n padding-right:16px;\n}\n\n.detailed-status__button {\n flex:0 0 auto;\n}\n\n.detailed-status__button .icon-button {\n padding-left:2px;\n padding-right:25px;\n}\n\n.status-card {\n border-radius:0px;\n background:white;\n border: 1px solid black;\n color:black;\n}\n\n.status-card:hover {\n background-color:white;\n}\n\n.status-card__title {\n color:blue;\n text-decoration:underline;\n font-weight:bold;\n}\n\n.load-more {\n width:auto;\n margin:5px auto;\n background: $win95-bg;\n @include win95-outset();\n color:black;\n padding: 2px 5px;\n\n &:hover {\n background: $win95-bg;\n color:black;\n }\n}\n\n.status-card__description {\n color:black;\n}\n\n.account__display-name strong, .status__display-name strong {\n color:black;\n font-weight:bold;\n}\n\n.account .account__display-name {\n color:black;\n}\n\n.account {\n border-bottom: 2px groove $win95-bg;\n}\n\n.reply-indicator__content .status__content__spoiler-link, .status__content .status__content__spoiler-link {\n background:$win95-bg;\n @include win95-outset();\n}\n\n.reply-indicator__content .status__content__spoiler-link:hover, .status__content .status__content__spoiler-link:hover {\n background:$win95-bg;\n}\n\n.reply-indicator__content .status__content__spoiler-link:active, .status__content .status__content__spoiler-link:active {\n @include win95-inset();\n}\n\n.reply-indicator__content a, .status__content a {\n color:blue;\n}\n\n.notification {\n border: 2px groove $win95-bg;\n margin:4px;\n}\n\n.notification__message {\n color:black;\n font-size:13px;\n}\n\n.notification__display-name {\n font-weight:bold;\n}\n\n.drawer__header {\n background: $win95-bg;\n @include win95-border-outset();\n justify-content:left;\n margin-bottom:0px;\n padding-bottom:2px;\n border-bottom:2px groove $win95-bg;\n}\n\n.drawer__tab {\n color:black;\n @include win95-outset();\n padding:5px;\n margin:2px;\n flex: 0 0 auto;\n}\n\n.drawer__tab:first-child::before {\n content:\"Start\";\n color:black;\n font-weight:bold;\n font-size:15px;\n width:80%;\n display:block;\n position:absolute;\n right:0px;\n\n}\n\n.drawer__tab:first-child {\n position:relative;\n padding:5px 15px;\n width:40px;\n font-size:0px;\n color:$win95-bg;\n\n background-image: url(\"~images/start.png\");\n background-repeat:no-repeat;\n background-position:8%;\n background-clip:padding-box;\n background-size:auto 50%;\n}\n\n.drawer__header a:hover {\n background-color:transparent;\n}\n\n.drawer__header a:first-child:hover {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAIAAACpTQvdAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRBdXRob3IAAAiZS84oys9LzAEAC5oC6A7BY/IAAACWSURBVCiRhVJJDsQgDEuqOfRZ7a1P5gbP4uaJaEjTADMWQhHYjlk4p0wLnNdptdF4KvBUDyGzVwc2xO+uKtH+1o0ytEEmqFpuxlvFCGCxKbNIT56QCi2MzaA/2Mz+mERSOeqzJG2RUxkjdTabgPtFoZ1bZxcKvgPcLZVufAyR9Ni8v5dWDzfFx0giC1RvZFv6l35QQ/Mvv39XXgGzQpoAAAAASUVORK5CYII=\");\n background-repeat:no-repeat;\n background-position:8%;\n background-clip:padding-box;\n background-size:auto 50%;\n transition:unset;\n}\n\n.drawer__tab:first-child {\n\n}\n\n.search {\n background:$win95-bg;\n padding-top:2px;\n padding:2px;\n border:2px outset $win95-bg;\n border-top-width:0px;\n border-bottom: 2px groove $win95-bg;\n margin-bottom:0px;\n}\n\n.search input {\n background-color:white;\n color:black;\n @include win95-border-slight-inset();\n}\n\n.search__input:focus {\n background-color:white;\n}\n\n.search-popout {\n box-shadow: unset;\n color:black;\n border-radius:0px;\n background-color:$win95-tooltip-yellow;\n border:1px solid black;\n\n h4 {\n color:black;\n text-transform: none;\n font-weight:bold;\n }\n}\n\n.search-results__header {\n background-color: $win95-bg;\n color:black;\n border-bottom:2px groove $win95-bg;\n}\n\n.search-results__hashtag {\n color:blue;\n}\n\n.search-results__section .account:hover,\n.search-results__section .account:hover .account__display-name,\n.search-results__section .account:hover .account__display-name strong,\n.search-results__section .search-results__hashtag:hover {\n background-color:$win95-window-header;\n color:white;\n}\n\n.search__icon .fa {\n color:#808080;\n\n &.active {\n opacity:1.0;\n }\n\n &:hover {\n color: #808080;\n }\n}\n\n.drawer__inner,\n.drawer__inner.darker {\n background-color:$win95-bg;\n border: 2px outset $win95-bg;\n border-top-width:0px;\n}\n\n.navigation-bar {\n color:black;\n}\n\n.navigation-bar strong {\n color:black;\n font-weight:bold;\n}\n\n.compose-form .autosuggest-textarea__textarea,\n.compose-form .spoiler-input__input {\n border-radius:0px;\n @include win95-border-slight-inset();\n}\n\n.compose-form .autosuggest-textarea__textarea {\n border-bottom:0px;\n}\n\n.compose-form__uploads-wrapper {\n border-radius:0px;\n border-bottom:1px inset $win95-bg;\n border-top-width:0px;\n}\n\n.compose-form__upload-wrapper {\n border-left:1px inset $win95-bg;\n border-right:1px inset $win95-bg;\n}\n\n.compose-form .compose-form__buttons-wrapper {\n background-color: $win95-bg;\n border:2px groove $win95-bg;\n margin-top:4px;\n padding:4px 8px;\n}\n\n.compose-form__buttons {\n background-color:$win95-bg;\n border-radius:0px;\n box-shadow:unset;\n}\n\n.compose-form__buttons-separator {\n border-left: 2px groove $win95-bg;\n}\n\n.privacy-dropdown.active .privacy-dropdown__value.active,\n.advanced-options-dropdown.open .advanced-options-dropdown__value {\n background: $win95-bg;\n}\n\n.privacy-dropdown.active .privacy-dropdown__value.active .icon-button {\n color: $win95-dark-grey;\n}\n\n.privacy-dropdown.active\n.privacy-dropdown__value {\n background: $win95-bg;\n box-shadow:unset;\n}\n\n.privacy-dropdown__option.active, .privacy-dropdown__option:hover,\n.privacy-dropdown__option.active:hover {\n background:$win95-window-header;\n}\n\n.privacy-dropdown__dropdown,\n.privacy-dropdown.active .privacy-dropdown__dropdown,\n.advanced-options-dropdown__dropdown,\n.advanced-options-dropdown.open .advanced-options-dropdown__dropdown\n{\n box-shadow:unset;\n color:black;\n @include win95-outset();\n background: $win95-bg;\n}\n\n.privacy-dropdown__option__content {\n color:black;\n}\n\n.privacy-dropdown__option__content strong {\n font-weight:bold;\n}\n\n.compose-form__warning::before {\n content:\"Tip:\";\n font-weight:bold;\n display:block;\n position:absolute;\n top:-10px;\n background-color:$win95-bg;\n font-size:11px;\n padding: 0px 5px;\n}\n\n.compose-form__warning {\n position:relative;\n box-shadow:unset;\n border:2px groove $win95-bg;\n background-color:$win95-bg;\n color:black;\n}\n\n.compose-form__warning a {\n color:blue;\n}\n\n.compose-form__warning strong {\n color:black;\n text-decoration:underline;\n}\n\n.compose-form__buttons button.active:last-child {\n @include win95-border-inset();\n background: #dfdfdf;\n color:#7f7f7f;\n}\n\n.compose-form__upload-thumbnail {\n border-radius:0px;\n border:2px groove $win95-bg;\n background-color:$win95-bg;\n padding:2px;\n box-sizing:border-box;\n}\n\n.compose-form__upload-thumbnail .icon-button {\n max-width:20px;\n max-height:20px;\n line-height:10px !important;\n}\n\n.compose-form__upload-thumbnail .icon-button::before {\n content:\"X\";\n font-size:13px;\n font-weight:bold;\n color:black;\n}\n\n.compose-form__upload-thumbnail .icon-button i {\n display:none;\n}\n\n.emoji-picker-dropdown__menu {\n z-index:2;\n}\n\n.emoji-dialog.with-search {\n box-shadow:unset;\n border-radius:0px;\n background-color:$win95-bg;\n border:1px solid black;\n box-sizing:content-box;\n\n}\n\n.emoji-dialog .emoji-search {\n color:black;\n background-color:white;\n border-radius:0px;\n @include win95-inset();\n}\n\n.emoji-dialog .emoji-search-wrapper {\n border-bottom:2px groove $win95-bg;\n}\n\n.emoji-dialog .emoji-category-title {\n color:black;\n font-weight:bold;\n}\n\n.reply-indicator {\n background-color:$win95-bg;\n border-radius:3px;\n border:2px groove $win95-bg;\n}\n\n.button {\n background-color:$win95-bg;\n @include win95-outset();\n border-radius:0px;\n color:black;\n font-weight:bold;\n\n &:hover, &:focus, &:disabled {\n background-color:$win95-bg;\n }\n\n &:active {\n @include win95-inset();\n }\n\n &:disabled {\n color: #808080;\n text-shadow: 1px 1px 0px #efefef;\n\n &:active {\n @include win95-outset();\n }\n }\n\n}\n\n#Getting-started {\n background-color:$win95-bg;\n @include win95-inset();\n border-bottom-width:0px;\n}\n\n#Getting-started::before {\n content:\"Start\";\n color:black;\n font-weight:bold;\n font-size:15px;\n width:80%;\n text-align:center;\n display:block;\n position:absolute;\n right:2px;\n}\n\n#Getting-started {\n position:relative;\n padding:5px 15px;\n width:60px;\n font-size:0px;\n color:$win95-bg;\n\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAIAAACpTQvdAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRBdXRob3IAAAiZS84oys9LzAEAC5oC6A7BY/IAAACWSURBVCiRhVJJDsQgDEuqOfRZ7a1P5gbP4uaJaEjTADMWQhHYjlk4p0wLnNdptdF4KvBUDyGzVwc2xO+uKtH+1o0ytEEmqFpuxlvFCGCxKbNIT56QCi2MzaA/2Mz+mERSOeqzJG2RUxkjdTabgPtFoZ1bZxcKvgPcLZVufAyR9Ni8v5dWDzfFx0giC1RvZFv6l35QQ/Mvv39XXgGzQpoAAAAASUVORK5CYII=\");\n background-repeat:no-repeat;\n background-position:8%;\n background-clip:padding-box;\n background-size:auto 50%;\n}\n\n.column-subheading {\n background-color:$win95-bg;\n color:black;\n border-bottom: 2px groove $win95-bg;\n text-transform: none;\n font-size: 16px;\n}\n\n.column-link {\n background-color:transparent;\n color:black;\n &:hover {\n background-color: $win95-window-header;\n color:white;\n }\n}\n\n.getting-started__wrapper {\n .column-subheading {\n font-size:0px;\n margin:0px;\n padding:0px;\n }\n\n .column-link {\n background-size:32px 32px;\n background-repeat:no-repeat;\n background-position: 36px 50%;\n padding-left:40px;\n\n &:hover {\n background-size:32px 32px;\n background-repeat:no-repeat;\n background-position: 36px 50%;\n }\n\n i {\n font-size: 0px;\n width:32px;\n }\n }\n}\n\n.column-link[href=\"/web/timelines/public\"] {\n background-image: url(\"~images/icon_public.png\");\n &:hover { background-image: url(\"~images/icon_public.png\"); }\n}\n.column-link[href=\"/web/timelines/public/local\"] {\n background-image: url(\"~images/icon_local.png\");\n &:hover { background-image: url(\"~images/icon_local.png\"); }\n}\n.column-link[href=\"/web/pinned\"] {\n background-image: url(\"~images/icon_pin.png\");\n &:hover { background-image: url(\"~images/icon_pin.png\"); }\n}\n.column-link[href=\"/web/favourites\"] {\n background-image: url(\"~images/icon_likes.png\");\n &:hover { background-image: url(\"~images/icon_likes.png\"); }\n}\n.column-link[href=\"/web/lists\"] {\n background-image: url(\"~images/icon_lists.png\");\n &:hover { background-image: url(\"~images/icon_lists.png\"); }\n}\n.column-link[href=\"/web/follow_requests\"] {\n background-image: url(\"~images/icon_follow_requests.png\");\n &:hover { background-image: url(\"~images/icon_follow_requests.png\"); }\n}\n.column-link[href=\"/web/keyboard-shortcuts\"] {\n background-image: url(\"~images/icon_keyboard_shortcuts.png\");\n &:hover { background-image: url(\"~images/icon_keyboard_shortcuts.png\"); }\n}\n.column-link[href=\"/web/blocks\"] {\n background-image: url(\"~images/icon_blocks.png\");\n &:hover { background-image: url(\"~images/icon_blocks.png\"); }\n}\n.column-link[href=\"/web/mutes\"] {\n background-image: url(\"~images/icon_mutes.png\");\n &:hover { background-image: url(\"~images/icon_mutes.png\"); }\n}\n.column-link[href=\"/settings/preferences\"] {\n background-image: url(\"~images/icon_settings.png\");\n &:hover { background-image: url(\"~images/icon_settings.png\"); }\n}\n.column-link[href=\"/about/more\"] {\n background-image: url(\"~images/icon_about.png\");\n &:hover { background-image: url(\"~images/icon_about.png\"); }\n}\n.column-link[href=\"/auth/sign_out\"] {\n background-image: url(\"~images/icon_logout.png\");\n &:hover { background-image: url(\"~images/icon_logout.png\"); }\n}\n\n.getting-started__footer {\n display:none;\n}\n\n.getting-started__wrapper::before {\n content:\"Mastodon 95\";\n font-weight:bold;\n font-size:23px;\n color:white;\n line-height:30px;\n padding-left:20px;\n padding-right:40px;\n\n left:0px;\n bottom:-30px;\n display:block;\n position:absolute;\n background-color:#7f7f7f;\n width:200%;\n height:30px;\n\n -ms-transform: rotate(-90deg);\n\n -webkit-transform: rotate(-90deg);\n transform: rotate(-90deg);\n transform-origin:top left;\n}\n\n.getting-started__wrapper {\n @include win95-border-outset();\n background-color:$win95-bg;\n}\n\n.column .static-content.getting-started {\n display:none;\n}\n\n.keyboard-shortcuts kbd {\n background-color: $win95-bg;\n}\n\n.account__header {\n background-color:#7f7f7f;\n}\n\n.account__header .account__header__content {\n color:white;\n}\n\n.account-authorize__wrapper {\n border: 2px groove $win95-bg;\n margin: 2px;\n padding:2px;\n}\n\n.account--panel {\n background-color: $win95-bg;\n border:0px;\n border-top: 2px groove $win95-bg;\n}\n\n.account-authorize .account__header__content {\n color:black;\n margin:10px;\n}\n\n.account__action-bar__tab > span {\n color:black;\n font-weight:bold;\n}\n\n.account__action-bar__tab strong {\n color:black;\n}\n\n.account__action-bar {\n border: unset;\n}\n\n.account__action-bar__tab {\n border: 1px outset $win95-bg;\n}\n\n.account__action-bar__tab:active {\n @include win95-inset();\n}\n\n.dropdown--active .dropdown__content > ul,\n.dropdown-menu {\n background:$win95-tooltip-yellow;\n border-radius:0px;\n border:1px solid black;\n box-shadow:unset;\n}\n\n.dropdown-menu a {\n background-color:transparent;\n}\n\n.dropdown--active::after {\n display:none;\n}\n\n.dropdown--active .icon-button {\n color:black;\n @include win95-inset();\n}\n\n.dropdown--active .dropdown__content > ul > li > a {\n background:transparent;\n}\n\n.dropdown--active .dropdown__content > ul > li > a:hover {\n background:transparent;\n color:black;\n text-decoration:underline;\n}\n\n.dropdown__sep,\n.dropdown-menu__separator\n{\n border-color:#7f7f7f;\n}\n\n.detailed-status__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__left {\n left:unset;\n}\n\n.dropdown > .icon-button, .detailed-status__button > .icon-button,\n.status__action-bar > .icon-button, .star-icon i {\n /* i don't know what's going on with the inline\n styles someone should look at the react code */\n height: 25px !important;\n width: 28px !important;\n box-sizing: border-box;\n}\n\n.status__action-bar-button .fa-floppy-o {\n padding-top: 2px;\n}\n\n.status__action-bar-dropdown {\n position: relative;\n top: -3px;\n}\n\n.detailed-status__action-bar-dropdown .dropdown {\n position: relative;\n top: -4px;\n}\n\n.notification .status__action-bar {\n border-bottom: none;\n}\n\n.notification .status {\n margin-bottom: 4px;\n}\n\n.status__wrapper .status {\n margin-bottom: 3px;\n}\n\n.status__wrapper {\n margin-bottom: 8px;\n}\n\n.icon-button .fa-retweet {\n position: relative;\n top: -1px;\n}\n\n.embed-modal, .error-modal, .onboarding-modal,\n.actions-modal, .boost-modal, .confirmation-modal, .report-modal {\n @include win95-outset();\n background:$win95-bg;\n}\n\n.actions-modal::before,\n.boost-modal::before,\n.confirmation-modal::before,\n.report-modal::before {\n content: \"Confirmation\";\n display:block;\n background:$win95-window-header;\n color:white;\n font-weight:bold;\n padding-left:2px;\n}\n\n.boost-modal::before {\n content: \"Boost confirmation\";\n}\n\n.boost-modal__action-bar > div > span:before {\n content: \"Tip: \";\n font-weight:bold;\n}\n\n.boost-modal__action-bar, .confirmation-modal__action-bar, .report-modal__action-bar {\n background:$win95-bg;\n margin-top:-15px;\n}\n\n.embed-modal h4, .error-modal h4, .onboarding-modal h4 {\n background:$win95-window-header;\n color:white;\n font-weight:bold;\n padding:2px;\n font-size:13px;\n text-align:left;\n}\n\n.confirmation-modal__action-bar {\n .confirmation-modal__cancel-button {\n color:black;\n\n &:active,\n &:focus,\n &:hover {\n color:black;\n }\n\n &:active {\n @include win95-inset();\n }\n }\n}\n\n.embed-modal .embed-modal__container .embed-modal__html,\n.embed-modal .embed-modal__container .embed-modal__html:focus {\n background:white;\n color:black;\n @include win95-inset();\n}\n\n.modal-root__overlay,\n.account__header > div {\n background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAFnpUWHRUaXRsZQAACJnLzU9JzElKBwALgwLXaCRlPwAAABd6VFh0QXV0aG9yAAAImUvOKMrPS8wBAAuaAugOwWPyAAAAEUlEQVQImWNgYGD4z4AE/gMADwMB/414xEUAAAAASUVORK5CYII=');\n}\n\n.admin-wrapper::before {\n position:absolute;\n top:0px;\n content:\"Control Panel\";\n color:white;\n background-color:$win95-window-header;\n font-size:13px;\n font-weight:bold;\n width:calc(100%);\n margin: 2px;\n display:block;\n padding:2px;\n padding-left:22px;\n box-sizing:border-box;\n}\n\n.admin-wrapper {\n position:relative;\n background: $win95-bg;\n @include win95-outset();\n width:70vw;\n height:80vh;\n margin:10vh auto;\n color: black;\n padding-top:24px;\n flex-direction:column;\n overflow:hidden;\n}\n\n@media screen and (max-width: 1120px) {\n .admin-wrapper {\n width:90vw;\n height:95vh;\n margin:2.5vh auto;\n }\n}\n\n@media screen and (max-width: 740px) {\n .admin-wrapper {\n width:100vw;\n height:95vh;\n height:calc(100vh - 24px);\n margin:0px 0px 0px 0px;\n }\n}\n\n.admin-wrapper .sidebar-wrapper {\n position:static;\n height:auto;\n flex: 0 0 auto;\n margin:2px;\n}\n\n.admin-wrapper .content-wrapper {\n flex: 1 1 auto;\n width:calc(100% - 20px);\n @include win95-border-outset();\n position:relative;\n margin-left:10px;\n margin-right:10px;\n margin-bottom:40px;\n box-sizing:border-box;\n}\n\n.admin-wrapper .content {\n background-color: $win95-bg;\n width: 100%;\n max-width:100%;\n min-height:100%;\n box-sizing:border-box;\n position:relative;\n}\n\n.admin-wrapper .sidebar {\n position:static;\n background: $win95-bg;\n color:black;\n width: 100%;\n height:auto;\n padding-bottom: 20px;\n}\n\n.admin-wrapper .sidebar .logo {\n position:absolute;\n top:2px;\n left:4px;\n width:18px;\n height:18px;\n margin:0px;\n}\n\n.admin-wrapper .sidebar > ul {\n background: $win95-bg;\n margin:0px;\n margin-left:8px;\n color:black;\n\n & > li {\n display:inline-block;\n\n &#settings,\n &#admin {\n padding:2px;\n border: 0px solid transparent;\n }\n\n &#logout {\n position:absolute;\n @include win95-outset();\n right:12px;\n bottom:10px;\n }\n\n &#web {\n display:inline-block;\n @include win95-outset();\n position:absolute;\n left: 12px;\n bottom: 10px;\n }\n\n & > a {\n display:inline-block;\n @include win95-tab();\n padding:2px 5px;\n margin:0px;\n color:black;\n vertical-align:baseline;\n\n &.selected {\n background: $win95-bg;\n color:black;\n padding-top: 4px;\n padding-bottom:4px;\n }\n\n &:hover {\n background: $win95-bg;\n color:black;\n }\n }\n\n & > ul {\n width:calc(100% - 20px);\n background: transparent;\n position:absolute;\n left: 10px;\n top:54px;\n z-index:3;\n\n & > li {\n background: $win95-bg;\n display: inline-block;\n vertical-align:baseline;\n\n & > a {\n background: $win95-bg;\n @include win95-tab();\n color:black;\n padding:2px 5px;\n position:relative;\n z-index:3;\n\n &.selected {\n background: $win95-bg;\n color:black;\n padding-bottom:4px;\n padding-top: 4px;\n padding-right:7px;\n margin-left:-2px;\n margin-right:-2px;\n position:relative;\n z-index:4;\n\n &:first-child {\n margin-left:0px;\n }\n\n &:hover {\n background: transparent;\n color:black;\n }\n }\n\n &:hover {\n background: $win95-bg;\n color:black;\n }\n }\n }\n }\n }\n}\n\n@media screen and (max-width: 1520px) {\n .admin-wrapper .sidebar > ul > li > ul {\n max-width:1000px;\n }\n\n .admin-wrapper .sidebar {\n padding-bottom: 45px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .admin-wrapper .sidebar > ul > li > ul {\n max-width:500px;\n }\n\n .admin-wrapper {\n .sidebar {\n padding:0px;\n padding-bottom: 70px;\n width: 100%;\n height: auto;\n }\n .content-wrapper {\n overflow:auto;\n height:80%;\n height:calc(100% - 150px);\n }\n }\n}\n\n.flash-message {\n background-color:$win95-tooltip-yellow;\n color:black;\n border:1px solid black;\n border-radius:0px;\n position:absolute;\n top:0px;\n left:0px;\n width:100%;\n}\n\n.admin-wrapper table {\n background-color: white;\n @include win95-border-slight-inset();\n}\n\n.admin-wrapper .content h2,\n.simple_form .input.with_label .label_input > label,\n.admin-wrapper .content h6,\n.admin-wrapper .content > p,\n.admin-wrapper .content .muted-hint,\n.simple_form span.hint,\n.simple_form h4,\n.simple_form .check_boxes .checkbox label,\n.simple_form .input.with_label.boolean .label_input > label,\n.filters .filter-subset a,\n.simple_form .input.radio_buttons .radio label,\na.table-action-link,\na.table-action-link:hover,\n.simple_form .input.with_block_label > label,\n.simple_form p.hint {\n color:black;\n}\n\n.table > tbody > tr:nth-child(2n+1) > td,\n.table > tbody > tr:nth-child(2n+1) > th {\n background-color:white;\n}\n\n.simple_form input[type=text],\n.simple_form input[type=number],\n.simple_form input[type=email],\n.simple_form input[type=password],\n.simple_form textarea {\n color:black;\n background-color:white;\n @include win95-border-slight-inset();\n\n &:active, &:focus {\n background-color:white;\n }\n}\n\n.simple_form button,\n.simple_form .button,\n.simple_form .block-button\n{\n background: $win95-bg;\n @include win95-outset();\n color:black;\n font-weight: normal;\n\n &:hover {\n background: $win95-bg;\n }\n}\n\n.simple_form .warning, .table-form .warning\n{\n background: $win95-tooltip-yellow;\n color:black;\n box-shadow: unset;\n text-shadow:unset;\n border:1px solid black;\n\n a {\n color: blue;\n text-decoration:underline;\n }\n}\n\n.simple_form button.negative,\n.simple_form .button.negative,\n.simple_form .block-button.negative\n{\n background: $win95-bg;\n}\n\n.filters .filter-subset {\n border: 2px groove $win95-bg;\n padding:2px;\n}\n\n.filters .filter-subset a::before {\n content: \"\";\n background-color:white;\n border-radius:50%;\n border:2px solid black;\n border-top-color:#7f7f7f;\n border-left-color:#7f7f7f;\n border-bottom-color:#f5f5f5;\n border-right-color:#f5f5f5;\n width:12px;\n height:12px;\n display:inline-block;\n vertical-align:middle;\n margin-right:2px;\n}\n\n.filters .filter-subset a.selected::before {\n background-color:black;\n box-shadow: inset 0 0 0 3px white;\n}\n\n.filters .filter-subset a,\n.filters .filter-subset a:hover,\n.filters .filter-subset a.selected {\n color:black;\n border-bottom: 0px solid transparent;\n}\n","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a !default; // Padua\n$error-red: #df405a !default; // Cerise\n$warning-red: #ff5050 !default; // Sunset Orange\n$gold-star: #ca8f04 !default; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: 'mastodon-font-sans-serif' !default;\n$font-display: 'mastodon-font-display' !default;\n$font-monospace: 'mastodon-font-monospace' !default;\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n\n @return '%23' + unquote($color);\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.player {\n text-align: center;\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n &__illustration {\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div,\n & > noscript {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n\n & > noscript {\n height: 100vh;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n\n.error-boundary,\n.app-holder noscript {\n flex-direction: column;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.7;\n color: lighten($error-red, 4%);\n text-align: center;\n\n & > div {\n max-width: 500px;\n }\n\n p {\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &__footer {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n }\n }\n\n button {\n display: inline;\n border: 0;\n background: transparent;\n color: $dark-text-color;\n font: inherit;\n padding: 0;\n margin: 0;\n line-height: inherit;\n cursor: pointer;\n outline: 0;\n transition: color 300ms linear;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.copied {\n color: $valid-value-color;\n transition: none;\n }\n }\n}\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1 / 3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small,\n .trends__item__current {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n\n .trends__item__current {\n padding-right: 0;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n\n li {\n list-style: disc;\n margin-left: 18px;\n }\n }\n\n ul.hint {\n margin-bottom: 15px;\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .input.datetime .label_input select {\n display: inline-block;\n width: auto;\n flex: 0;\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\nbutton.icon-button.disabled i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.animated-number {\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n overflow: hidden;\n position: relative;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: $ui-highlight-color;\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 10%);\n transition: all 200ms ease-out;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled,\n &.disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n color: $darker-text-color;\n background: transparent;\n padding: 3px 15px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.compose-form {\n padding: 10px;\n\n &__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n }\n\n .compose-form__warning {\n color: $inverted-text-color;\n margin-bottom: 10px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n strong {\n color: $inverted-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 0;\n right: 0;\n }\n\n .compose-form__autosuggest-wrapper {\n position: relative;\n }\n\n .autosuggest-textarea,\n .autosuggest-input,\n .spoiler-input {\n position: relative;\n width: 100%;\n }\n\n .spoiler-input {\n height: 0;\n transform-origin: bottom;\n opacity: 0;\n\n &.spoiler-input--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1;\n }\n }\n\n .autosuggest-textarea__textarea,\n .spoiler-input__input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .spoiler-input__input {\n border-radius: 4px;\n }\n\n .autosuggest-textarea__textarea {\n min-height: 100px;\n border-radius: 4px 4px 0 0;\n padding-bottom: 0;\n padding-right: 10px + 22px;\n resize: none;\n scrollbar-color: initial;\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n @media screen and (max-width: 600px) {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n\n .autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n }\n\n .autosuggest-textarea__suggestions {\n box-sizing: border-box;\n display: none;\n position: absolute;\n top: 100%;\n width: 100%;\n z-index: 99;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n background: $ui-secondary-color;\n border-radius: 0 0 4px 4px;\n color: $inverted-text-color;\n font-size: 14px;\n padding: 6px;\n\n &.autosuggest-textarea__suggestions--visible {\n display: block;\n }\n }\n\n .autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n\n .autosuggest-account,\n .autosuggest-emoji,\n .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .autosuggest-account-icon,\n .autosuggest-emoji img {\n display: block;\n margin-right: 8px;\n width: 16px;\n height: 16px;\n }\n\n .autosuggest-account .display-name__account {\n color: $lighter-text-color;\n }\n\n .compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n\n .compose-form__upload-wrapper {\n overflow: hidden;\n }\n\n .compose-form__uploads-wrapper {\n display: flex;\n flex-direction: row;\n padding: 5px;\n flex-wrap: wrap;\n }\n\n .compose-form__upload {\n flex: 1 1 0;\n min-width: 40%;\n margin: 5px;\n\n &__actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $secondary-text-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($secondary-text-color, 7%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n\n &-description {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n padding: 10px;\n opacity: 0;\n transition: opacity .1s ease;\n\n textarea {\n background: transparent;\n color: $secondary-text-color;\n border: 0;\n padding: 0;\n margin: 0;\n width: 100%;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n\n &:focus {\n color: $white;\n }\n\n &::placeholder {\n opacity: 0.75;\n color: $secondary-text-color;\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n }\n\n .compose-form__upload-thumbnail {\n border-radius: 4px;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 140px;\n width: 100%;\n overflow: hidden;\n }\n }\n\n .compose-form__buttons-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n\n .compose-form__buttons {\n display: flex;\n\n .compose-form__upload-button-icon {\n line-height: 27px;\n }\n\n .compose-form__sensitive-button {\n display: none;\n\n &.compose-form__sensitive-button--visible {\n display: block;\n }\n\n .compose-form__sensitive-button__icon {\n line-height: 27px;\n }\n }\n }\n\n .icon-button,\n .text-icon-button {\n box-sizing: content-box;\n padding: 0 3px;\n }\n\n .character-counter__wrapper {\n align-self: center;\n margin-right: 4px;\n }\n }\n\n .compose-form__publish {\n display: flex;\n justify-content: flex-end;\n min-width: 0;\n flex: 0 0 auto;\n\n .compose-form__publish-button-wrapper {\n overflow: hidden;\n padding-top: 10px;\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .spoiler-input {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.reply-indicator {\n border-radius: 4px;\n margin-bottom: 10px;\n background: $ui-primary-color;\n padding: 10px;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n}\n\n.reply-indicator__header {\n margin-bottom: 5px;\n overflow: hidden;\n}\n\n.reply-indicator__cancel {\n float: right;\n line-height: 24px;\n}\n\n.reply-indicator__display-name {\n color: $inverted-text-color;\n display: block;\n max-width: 100%;\n line-height: 24px;\n overflow: hidden;\n padding-right: 25px;\n text-decoration: none;\n}\n\n.reply-indicator__display-avatar {\n float: left;\n margin-right: 5px;\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content,\n.reply-indicator__content {\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n color: $primary-text-color;\n\n &:focus {\n outline: 0;\n }\n\n &.status__content--with-spoiler {\n white-space: normal;\n\n .status__content__text {\n white-space: pre-wrap;\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n\n .status__content__spoiler-link {\n background: $action-button-color;\n\n &:hover {\n background: lighten($action-button-color, 7%);\n text-decoration: none;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n .status__content__text {\n display: none;\n\n &.status__content__text--visible {\n display: block;\n }\n }\n}\n\n.announcements__item__content {\n word-wrap: break-word;\n overflow-y: auto;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 10px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n &.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n.status__content.status__content--collapsed {\n max-height: 20px * 15; // 15 lines is roughly above 500 characters\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n text-decoration: none;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: transparent;\n border: 0;\n color: $inverted-text-color;\n font-weight: 700;\n font-size: 11px;\n padding: 0 6px;\n text-transform: uppercase;\n line-height: 20px;\n cursor: pointer;\n vertical-align: middle;\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n .status.status-direct {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 8px 10px;\n padding-left: 68px;\n position: relative;\n min-height: 54px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 26px; // 10px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $light-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n color: $light-text-color;\n\n strong {\n color: $inverted-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time,\n.notification__relative_time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n}\n\n.status__display-name {\n color: $dark-text-color;\n}\n\n.status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n}\n\n.status__info {\n font-size: 15px;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n overflow: hidden;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-left: 68px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.reply-indicator__content {\n color: $inverted-text-color;\n font-size: 14px;\n\n a {\n color: $lighter-text-color;\n }\n}\n\n.domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &.compact {\n padding: 0;\n border-bottom: 0;\n\n .account__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius;\n position: relative;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n border-radius: 50%;\n overflow: hidden;\n position: relative;\n\n & > div {\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\na .account__avatar {\n cursor: pointer;\n}\n\n.account__avatar-overlay {\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius;\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius;\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__disclaimer {\n padding: 10px;\n border-top: 1px solid lighten($ui-base-color, 8%);\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-dropdown {\n padding: 10px;\n\n .icon-button {\n vertical-align: middle;\n }\n\n .dropdown--active {\n .dropdown__content.dropdown__right {\n left: 6px;\n right: initial;\n }\n\n &::after {\n bottom: initial;\n margin-left: 11px;\n margin-top: -7px;\n right: initial;\n }\n }\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-right: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\n.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\na.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n height: 48px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n}\n\n.status__expand {\n width: 68px;\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n cursor: pointer;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-lighter-color, 7%);\n text-decoration: none;\n }\n }\n}\n\n.notification__message {\n margin: 0 10px 0 68px;\n padding: 8px 0 0;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n line-height: 22px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: inline;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: -26px;\n position: absolute;\n\n .star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.notification__relative_time {\n float: right;\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.navigation-bar {\n padding: 10px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n cursor: default;\n color: $darker-text-color;\n\n strong {\n color: $secondary-text-color;\n }\n\n a {\n color: inherit;\n }\n\n .permalink {\n text-decoration: none;\n }\n\n .navigation-bar__actions {\n position: relative;\n\n .icon-button.close {\n position: absolute;\n pointer-events: none;\n transform: scale(0, 1) translate(-100%, 0);\n opacity: 0;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: auto;\n transform: scale(1, 1) translate(0, 0);\n opacity: 1;\n }\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n line-height: 20px;\n margin-top: -1px;\n overflow: hidden;\n}\n\n.navigation-bar__profile-account {\n display: block;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.navigation-bar__profile-edit {\n color: inherit;\n text-decoration: none;\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n z-index: 9999;\n\n ul {\n list-style: none;\n }\n\n &.left {\n transform-origin: 100% 50%;\n }\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n\n &.right {\n transform-origin: 0 50%;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &.unscrollable {\n overflow-x: hidden;\n }\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .drawer,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 350px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.drawer {\n width: 330px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n}\n\n.drawer__tab {\n display: block;\n flex: 1 1 auto;\n padding: 15px 5px 13px;\n color: $darker-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 16px;\n border-bottom: 2px solid transparent;\n}\n\n.column,\n.drawer {\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @media screen and (min-width: 631px) {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $highlight-text-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__favourite-icon-wrapper {\n left: -32px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n\n .account__avatar-wrapper {\n margin-left: 17px;\n margin-right: 15px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .getting-started__trends,\n .search {\n margin-bottom: 10px;\n }\n\n .getting-started__panel {\n margin: 10px 0;\n }\n\n .column,\n .drawer {\n min-width: 330px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .navigation-bar {\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 0 1 48px;\n min-height: 20px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .compose-form {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n padding-bottom: 71px;\n margin-bottom: -71px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n border-radius: 2px;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 85%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__header {\n flex: 0 0 auto;\n font-size: 16px;\n background: lighten($ui-base-color, 8%);\n margin-bottom: 10px;\n display: flex;\n flex-direction: row;\n border-radius: 2px;\n\n a {\n transition: background 100ms ease-in;\n\n &:hover {\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n line-height: inherit;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n outline: 0;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n white-space: nowrap;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.getting-started__wrapper,\n.getting-started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n color: $dark-text-color;\n overflow: auto;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n\n &__wrapper,\n &__panel,\n &__footer {\n height: min-content;\n }\n\n &__panel,\n &__footer\n {\n padding: 10px;\n padding-top: 20px;\n flex-grow: 0;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__wrapper,\n &__footer\n {\n color: $dark-text-color;\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n border-radius: 4px;\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n z-index: 1;\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n bottom: -13px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n\n .announcements {\n z-index: 1;\n position: relative;\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n\n & > button {\n margin: 0;\n border: 0;\n padding: 15px 0 15px 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($highlight-text-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n z-index: 1;\n position: relative;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n border-radius: 4px;\n appearance: none;\n\n &:hover,\n &:active,\n &:focus {\n padding: 0;\n color: lighten($darker-text-color, 8%);\n }\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 700;\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: block;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout;\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.empty-column-indicator,\n.error-column,\n.follow_requests-unlocked_explanation {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.follow_requests-unlocked_explanation {\n background: darken($ui-base-color, 4%);\n contain: initial;\n}\n\n.error-column {\n flex-direction: column;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.no-reduce-motion .pulse-loading {\n transform-origin: center center;\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n@keyframes shake-bottom {\n 0%,\n 100% {\n transform: rotate(0deg);\n transform-origin: 50% 100%;\n }\n\n 10% {\n transform: rotate(2deg);\n }\n\n 20%,\n 40%,\n 60% {\n transform: rotate(-4deg);\n }\n\n 30%,\n 50%,\n 70% {\n transform: rotate(4deg);\n }\n\n 80% {\n transform: rotate(-2deg);\n }\n\n 90% {\n transform: rotate(2deg);\n }\n}\n\n.no-reduce-motion .shake-bottom {\n transform-origin: 50% 100%;\n animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.upload-progress {\n padding: 10px;\n color: $lighter-text-color;\n overflow: hidden;\n display: flex;\n\n .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n span {\n font-size: 12px;\n text-transform: uppercase;\n font-weight: 500;\n display: block;\n }\n}\n\n.upload-progess__message {\n flex: 1 1 auto;\n}\n\n.upload-progress__backdrop {\n width: 100%;\n height: 6px;\n border-radius: 6px;\n background: $ui-base-lighter-color;\n position: relative;\n margin-top: 5px;\n}\n\n.upload-progress__tracker {\n position: absolute;\n left: 0;\n top: 0;\n height: 6px;\n background: $ui-highlight-color;\n border-radius: 6px;\n}\n\n.emoji-button {\n display: block;\n padding: 5px 5px 2px 2px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.privacy-dropdown__dropdown {\n position: absolute;\n background: $simple-background-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-left: 40px;\n overflow: hidden;\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n}\n\n.privacy-dropdown__option {\n color: $inverted-text-color;\n padding: 10px;\n cursor: pointer;\n display: flex;\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n outline: 0;\n\n .privacy-dropdown__option__content {\n color: $primary-text-color;\n\n strong {\n color: $primary-text-color;\n }\n }\n }\n\n &.active:hover {\n background: lighten($ui-highlight-color, 4%);\n }\n}\n\n.privacy-dropdown__option__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 10px;\n}\n\n.privacy-dropdown__option__content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n strong {\n font-weight: 500;\n display: block;\n color: $inverted-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.privacy-dropdown.active {\n .privacy-dropdown__value {\n background: $simple-background-color;\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n\n .icon-button {\n transition: none;\n }\n\n &.active {\n background: $ui-highlight-color;\n\n .icon-button {\n color: $primary-text-color;\n }\n }\n }\n\n &.top .privacy-dropdown__value {\n border-radius: 0 0 4px 4px;\n }\n\n .privacy-dropdown__dropdown {\n display: block;\n box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);\n }\n}\n\n.search {\n position: relative;\n}\n\n.search__input {\n @include search-input;\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(90deg);\n\n &.active {\n pointer-events: none;\n transform: rotate(0deg);\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n}\n\n.search-results__section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n}\n\n.search-results__hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $primary-text-color;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $highlight-text-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n }\n\n .status__avatar {\n height: 28px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n .status__content,\n .status__content p {\n color: $inverted-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n max-height: 80vh;\n max-width: 80vw;\n\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.loading-bar {\n background-color: $highlight-text-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n margin-top: 32px;\n\n audio {\n width: 100%;\n }\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n/* Media Gallery */\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n }\n\n img {\n object-fit: cover;\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n object-fit: cover;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n z-index: 1;\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n/* End Media Gallery */\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-overlay-background;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n\n.directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n width: 100%;\n white-space: nowrap;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\n.search-popout {\n @include search-popout;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@media screen and (max-width: 630px) and (max-height: 400px) {\n $duration: 400ms;\n $delay: 100ms;\n\n .tabs-bar,\n .search {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar {\n will-change: padding-bottom;\n transition: padding-bottom $duration $delay;\n }\n\n .navigation-bar {\n & > a:first-child {\n will-change: margin-top, margin-left, margin-right, width;\n transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay);\n }\n\n & > .navigation-bar__profile-edit {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar__actions {\n & > .icon-button.close {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay,\n transform $duration $delay;\n }\n\n & > .compose__action-bar .icon-button {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay + $duration * 0.5,\n transform $duration $delay;\n }\n }\n }\n\n .is-composing {\n .tabs-bar,\n .search {\n margin-top: -50px;\n }\n\n .navigation-bar {\n padding-bottom: 0;\n\n & > a:first-child {\n margin: -100px 10px 0 -50px;\n }\n\n .navigation-bar__profile {\n padding-top: 2px;\n }\n\n .navigation-bar__profile-edit {\n position: absolute;\n margin-top: -60px;\n }\n\n .navigation-bar__actions {\n .icon-button.close {\n pointer-events: auto;\n opacity: 1;\n transform: scale(1, 1) translate(0, 0);\n bottom: 5px;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: none;\n opacity: 0;\n transform: scale(0, 1) translate(100%, 0);\n }\n }\n }\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.column-inline-form {\n padding: 15px;\n padding-right: 0;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 10px;\n }\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n\n.list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n cursor: pointer;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.announcements {\n background: lighten($ui-base-color, 8%);\n font-size: 13px;\n display: flex;\n align-items: flex-end;\n\n &__mastodon {\n width: 124px;\n flex: 0 0 auto;\n\n @media screen and (max-width: 124px + 300px) {\n display: none;\n }\n }\n\n &__container {\n width: calc(100% - 124px);\n flex: 0 0 auto;\n position: relative;\n\n @media screen and (max-width: 124px + 300px) {\n width: 100%;\n }\n }\n\n &__item {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n max-height: 50vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &__range {\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n padding-right: 18px;\n }\n\n &__unread {\n position: absolute;\n top: 19px;\n right: 19px;\n display: block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n }\n }\n\n &__pagination {\n padding: 15px;\n color: $darker-text-color;\n position: absolute;\n bottom: 3px;\n right: 0;\n }\n}\n\n.layout-multiple-columns .announcements__mastodon {\n display: none;\n}\n\n.layout-multiple-columns .announcements__container {\n width: 100%;\n}\n\n.reactions-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-top: 15px;\n margin-left: -2px;\n width: calc(100% - (90px - 33px));\n\n &__item {\n flex-shrink: 0;\n background: lighten($ui-base-color, 12%);\n border: 0;\n border-radius: 3px;\n margin: 2px;\n cursor: pointer;\n user-select: none;\n padding: 0 6px;\n display: flex;\n align-items: center;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &__emoji {\n display: block;\n margin: 3px 0;\n width: 16px;\n height: 16px;\n\n img {\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n min-width: auto;\n min-height: auto;\n vertical-align: bottom;\n object-fit: contain;\n }\n }\n\n &__count {\n display: block;\n min-width: 9px;\n font-size: 13px;\n font-weight: 500;\n text-align: center;\n margin-left: 6px;\n color: $darker-text-color;\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 16%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n\n &__count {\n color: lighten($darker-text-color, 4%);\n }\n }\n\n &.active {\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%);\n\n .reactions-bar__item__count {\n color: lighten($highlight-text-color, 8%);\n }\n }\n }\n\n .emoji-picker-dropdown {\n margin: 2px;\n }\n\n &:hover .emoji-button {\n opacity: 0.85;\n }\n\n .emoji-button {\n color: $darker-text-color;\n margin: 0;\n font-size: 16px;\n width: auto;\n flex-shrink: 0;\n padding: 0 6px;\n height: 22px;\n display: flex;\n align-items: center;\n opacity: 0.5;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n opacity: 1;\n color: lighten($darker-text-color, 4%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n }\n\n &--empty {\n .emoji-button {\n padding: 0;\n }\n }\n}\n",null,"@mixin avatar-radius {\n border-radius: 4px;\n background: transparent no-repeat;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size: 48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin search-input {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: 0;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n border-radius: 4px;\n display: block;\n background: darken($ui-primary-color, 5%);\n height: 5px;\n min-width: 1%;\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__option {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n &__text {\n display: inline-block;\n word-wrap: break-word;\n overflow-wrap: break-word;\n max-width: calc(100% - 45px - 25px);\n }\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($valid-value-color, 15%);\n border-width: 4px;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 45px;\n font-weight: 700;\n flex: 0 0 45px;\n }\n\n &__voted {\n padding: 0 5px;\n display: inline-block;\n\n &__mark {\n font-size: 18px;\n }\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__option {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".emoji-mart {\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: -1px;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -5px;\n left: 0;\n width: 100%;\n height: 4px;\n background-color: $highlight-text-color;\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n summary {\n display: list-item;\n }\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: 0;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &--with-select strong {\n display: block;\n margin-bottom: 10px;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n line-height: 20px;\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: $darker-text-color;\n font-size: 14px;\n padding: 0 10px;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n\n.announcements-list {\n border: 1px solid lighten($ui-base-color, 4%);\n border-radius: 4px;\n\n &__item {\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &__title {\n padding: 0 15px;\n display: block;\n font-weight: 500;\n font-size: 18px;\n line-height: 1.5;\n color: $secondary-text-color;\n text-decoration: none;\n margin-bottom: 10px;\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n }\n\n &__meta {\n padding: 0 15px;\n color: $dark-text-color;\n }\n\n &__action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .status__avatar {\n left: auto;\n right: 10px;\n }\n\n .status,\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n","$black-emojis: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash';\n\n%white-emoji-outline {\n filter: drop-shadow(1px 1px 0 $white) drop-shadow(-1px 1px 0 $white) drop-shadow(1px -1px 0 $white) drop-shadow(-1px -1px 0 $white);\n transform: scale(.71);\n}\n\n.emojione {\n @each $emoji in $black-emojis {\n &[title=':#{$emoji}:'] {\n @extend %white-emoji-outline;\n }\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/skins/vanilla/win95/common.js b/priv/static/packs/skins/vanilla/win95/common.js index 67f57683a..ad508dd52 100644 Binary files a/priv/static/packs/skins/vanilla/win95/common.js and b/priv/static/packs/skins/vanilla/win95/common.js differ diff --git a/priv/static/packs/tesseract.js b/priv/static/packs/tesseract.js index 3dca2bfe2..8d0a37718 100644 Binary files a/priv/static/packs/tesseract.js and b/priv/static/packs/tesseract.js differ diff --git a/priv/static/packs/tesseract.js.LICENSE b/priv/static/packs/tesseract.js.LICENSE.txt similarity index 100% rename from priv/static/packs/tesseract.js.LICENSE rename to priv/static/packs/tesseract.js.LICENSE.txt diff --git a/priv/static/packs/tesseract.js.map b/priv/static/packs/tesseract.js.map index 5e9c4cd5c..0a5962033 100644 Binary files a/priv/static/packs/tesseract.js.map and b/priv/static/packs/tesseract.js.map differ diff --git a/priv/static/schemas/litepub-0.1.jsonld b/priv/static/schemas/litepub-0.1.jsonld index 278ad2f96..7cc3fee40 100644 --- a/priv/static/schemas/litepub-0.1.jsonld +++ b/priv/static/schemas/litepub-0.1.jsonld @@ -30,6 +30,7 @@ "@type": "@id" }, "EmojiReact": "litepub:EmojiReact", + "ChatMessage": "litepub:ChatMessage", "alsoKnownAs": { "@id": "as:alsoKnownAs", "@type": "@id" diff --git a/priv/static/static/font/fontello.1588947937982.woff2 b/priv/static/static/font/fontello.1588947937982.woff2 deleted file mode 100644 index 50318a670..000000000 Binary files a/priv/static/static/font/fontello.1588947937982.woff2 and /dev/null differ diff --git a/priv/static/static/font/fontello.1588947937982.eot b/priv/static/static/font/fontello.1589385935077.eot similarity index 99% rename from priv/static/static/font/fontello.1588947937982.eot rename to priv/static/static/font/fontello.1589385935077.eot index b1297072e..e5f37013a 100644 Binary files a/priv/static/static/font/fontello.1588947937982.eot and b/priv/static/static/font/fontello.1589385935077.eot differ diff --git a/priv/static/static/font/fontello.1588947937982.svg b/priv/static/static/font/fontello.1589385935077.svg similarity index 100% rename from priv/static/static/font/fontello.1588947937982.svg rename to priv/static/static/font/fontello.1589385935077.svg diff --git a/priv/static/static/font/fontello.1588947937982.ttf b/priv/static/static/font/fontello.1589385935077.ttf similarity index 99% rename from priv/static/static/font/fontello.1588947937982.ttf rename to priv/static/static/font/fontello.1589385935077.ttf index 443801c4f..0fde96cea 100644 Binary files a/priv/static/static/font/fontello.1588947937982.ttf and b/priv/static/static/font/fontello.1589385935077.ttf differ diff --git a/priv/static/static/font/fontello.1588947937982.woff b/priv/static/static/font/fontello.1589385935077.woff similarity index 98% rename from priv/static/static/font/fontello.1588947937982.woff rename to priv/static/static/font/fontello.1589385935077.woff index e96fea757..f48488a77 100644 Binary files a/priv/static/static/font/fontello.1588947937982.woff and b/priv/static/static/font/fontello.1589385935077.woff differ diff --git a/priv/static/static/font/fontello.1589385935077.woff2 b/priv/static/static/font/fontello.1589385935077.woff2 new file mode 100644 index 000000000..012eb9305 Binary files /dev/null and b/priv/static/static/font/fontello.1589385935077.woff2 differ diff --git a/priv/static/static/fontello.1588947937982.css b/priv/static/static/fontello.1589385935077.css similarity index 89% rename from priv/static/static/fontello.1588947937982.css rename to priv/static/static/fontello.1589385935077.css index d3d77a8b5..746492163 100644 Binary files a/priv/static/static/fontello.1588947937982.css and b/priv/static/static/fontello.1589385935077.css differ diff --git a/priv/static/static/js/app.838ffa9aecf210c7d744.js b/priv/static/static/js/app.838ffa9aecf210c7d744.js new file mode 100644 index 000000000..7e224748e Binary files /dev/null and b/priv/static/static/js/app.838ffa9aecf210c7d744.js differ diff --git a/priv/static/static/js/app.838ffa9aecf210c7d744.js.map b/priv/static/static/js/app.838ffa9aecf210c7d744.js.map new file mode 100644 index 000000000..4c2835cb4 Binary files /dev/null and b/priv/static/static/js/app.838ffa9aecf210c7d744.js.map differ diff --git a/priv/static/static/js/app.996428ccaaaa7f28cb8d.js b/priv/static/static/js/app.996428ccaaaa7f28cb8d.js deleted file mode 100644 index 00f3a28e0..000000000 Binary files a/priv/static/static/js/app.996428ccaaaa7f28cb8d.js and /dev/null differ diff --git a/priv/static/static/js/app.996428ccaaaa7f28cb8d.js.map b/priv/static/static/js/app.996428ccaaaa7f28cb8d.js.map deleted file mode 100644 index 9daca3ff5..000000000 Binary files a/priv/static/static/js/app.996428ccaaaa7f28cb8d.js.map and /dev/null differ diff --git a/priv/static/sw-pleroma.js b/priv/static/sw-pleroma.js index d2be1782b..4d73c414e 100644 Binary files a/priv/static/sw-pleroma.js and b/priv/static/sw-pleroma.js differ diff --git a/priv/static/sw.js b/priv/static/sw.js index b462115f9..0fde0f440 100644 Binary files a/priv/static/sw.js and b/priv/static/sw.js differ diff --git a/test/application_requirements_test.exs b/test/application_requirements_test.exs new file mode 100644 index 000000000..481cdfd73 --- /dev/null +++ b/test/application_requirements_test.exs @@ -0,0 +1,96 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.ApplicationRequirementsTest do + use Pleroma.DataCase + import ExUnit.CaptureLog + import Mock + + alias Pleroma.Repo + + describe "check_rum!" do + setup_with_mocks([ + {Pleroma.ApplicationRequirements, [:passthrough], + [check_migrations_applied!: fn _ -> :ok end]} + ]) do + :ok + end + + setup do: clear_config([:database, :rum_enabled]) + + test "raises if rum is enabled and detects unapplied rum migrations" do + Pleroma.Config.put([:database, :rum_enabled], true) + + with_mocks([{Repo, [:passthrough], [exists?: fn _, _ -> false end]}]) do + assert_raise Pleroma.ApplicationRequirements.VerifyError, + "Unapplied RUM Migrations detected", + fn -> + capture_log(&Pleroma.ApplicationRequirements.verify!/0) + end + end + end + + test "raises if rum is disabled and detects rum migrations" do + Pleroma.Config.put([:database, :rum_enabled], false) + + with_mocks([{Repo, [:passthrough], [exists?: fn _, _ -> true end]}]) do + assert_raise Pleroma.ApplicationRequirements.VerifyError, + "RUM Migrations detected", + fn -> + capture_log(&Pleroma.ApplicationRequirements.verify!/0) + end + end + end + + test "doesn't do anything if rum enabled and applied migrations" do + Pleroma.Config.put([:database, :rum_enabled], true) + + with_mocks([{Repo, [:passthrough], [exists?: fn _, _ -> true end]}]) do + assert Pleroma.ApplicationRequirements.verify!() == :ok + end + end + + test "doesn't do anything if rum disabled" do + Pleroma.Config.put([:database, :rum_enabled], false) + + with_mocks([{Repo, [:passthrough], [exists?: fn _, _ -> false end]}]) do + assert Pleroma.ApplicationRequirements.verify!() == :ok + end + end + end + + describe "check_migrations_applied!" do + setup_with_mocks([ + {Ecto.Migrator, [], + [ + with_repo: fn repo, fun -> passthrough([repo, fun]) end, + migrations: fn Repo -> + [ + {:up, 20_191_128_153_944, "fix_missing_following_count"}, + {:up, 20_191_203_043_610, "create_report_notes"}, + {:down, 20_191_220_174_645, "add_scopes_to_pleroma_feo_auth_records"} + ] + end + ]} + ]) do + :ok + end + + setup do: clear_config([:i_am_aware_this_may_cause_data_loss, :disable_migration_check]) + + test "raises if it detects unapplied migrations" do + assert_raise Pleroma.ApplicationRequirements.VerifyError, + "Unapplied Migrations detected", + fn -> + capture_log(&Pleroma.ApplicationRequirements.verify!/0) + end + end + + test "doesn't do anything if disabled" do + Pleroma.Config.put([:i_am_aware_this_may_cause_data_loss, :disable_migration_check], true) + + assert :ok == Pleroma.ApplicationRequirements.verify!() + end + end +end diff --git a/test/chat/message_reference_test.exs b/test/chat/message_reference_test.exs new file mode 100644 index 000000000..aaa7c1ad4 --- /dev/null +++ b/test/chat/message_reference_test.exs @@ -0,0 +1,29 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Chat.MessageReferenceTest do + use Pleroma.DataCase, async: true + + alias Pleroma.Chat + alias Pleroma.Chat.MessageReference + alias Pleroma.Web.CommonAPI + + import Pleroma.Factory + + describe "messages" do + test "it returns the last message in a chat" do + user = insert(:user) + recipient = insert(:user) + + {:ok, _message_1} = CommonAPI.post_chat_message(user, recipient, "hey") + {:ok, _message_2} = CommonAPI.post_chat_message(recipient, user, "ho") + + {:ok, chat} = Chat.get_or_create(user.id, recipient.ap_id) + + message = MessageReference.last_message_for_chat(chat) + + assert message.object.data["content"] == "ho" + end + end +end diff --git a/test/chat_test.exs b/test/chat_test.exs new file mode 100644 index 000000000..332f2180a --- /dev/null +++ b/test/chat_test.exs @@ -0,0 +1,61 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.ChatTest do + use Pleroma.DataCase, async: true + + alias Pleroma.Chat + + import Pleroma.Factory + + describe "creation and getting" do + test "it only works if the recipient is a valid user (for now)" do + user = insert(:user) + + assert {:error, _chat} = Chat.bump_or_create(user.id, "http://some/nonexisting/account") + assert {:error, _chat} = Chat.get_or_create(user.id, "http://some/nonexisting/account") + end + + test "it creates a chat for a user and recipient" do + user = insert(:user) + other_user = insert(:user) + + {:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id) + + assert chat.id + end + + test "it returns and bumps a chat for a user and recipient if it already exists" do + user = insert(:user) + other_user = insert(:user) + + {:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id) + {:ok, chat_two} = Chat.bump_or_create(user.id, other_user.ap_id) + + assert chat.id == chat_two.id + end + + test "it returns a chat for a user and recipient if it already exists" do + user = insert(:user) + other_user = insert(:user) + + {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + {:ok, chat_two} = Chat.get_or_create(user.id, other_user.ap_id) + + assert chat.id == chat_two.id + end + + test "a returning chat will have an updated `update_at` field" do + user = insert(:user) + other_user = insert(:user) + + {:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id) + :timer.sleep(1500) + {:ok, chat_two} = Chat.bump_or_create(user.id, other_user.ap_id) + + assert chat.id == chat_two.id + assert chat.updated_at != chat_two.updated_at + end + end +end diff --git a/test/config/config_db_test.exs b/test/config/config_db_test.exs index 336de7359..3895e2cda 100644 --- a/test/config/config_db_test.exs +++ b/test/config/config_db_test.exs @@ -7,40 +7,28 @@ defmodule Pleroma.ConfigDBTest do import Pleroma.Factory alias Pleroma.ConfigDB - test "get_by_key/1" do + test "get_by_params/1" do config = insert(:config) insert(:config) assert config == ConfigDB.get_by_params(%{group: config.group, key: config.key}) end - test "create/1" do - {:ok, config} = ConfigDB.create(%{group: ":pleroma", key: ":some_key", value: "some_value"}) - assert config == ConfigDB.get_by_params(%{group: ":pleroma", key: ":some_key"}) - end - - test "update/1" do - config = insert(:config) - {:ok, updated} = ConfigDB.update(config, %{value: "some_value"}) - loaded = ConfigDB.get_by_params(%{group: config.group, key: config.key}) - assert loaded == updated - end - test "get_all_as_keyword/0" do saved = insert(:config) - insert(:config, group: ":quack", key: ":level", value: ConfigDB.to_binary(:info)) - insert(:config, group: ":quack", key: ":meta", value: ConfigDB.to_binary([:none])) + insert(:config, group: ":quack", key: ":level", value: :info) + insert(:config, group: ":quack", key: ":meta", value: [:none]) insert(:config, group: ":quack", key: ":webhook_url", - value: ConfigDB.to_binary("https://hooks.slack.com/services/KEY/some_val") + value: "https://hooks.slack.com/services/KEY/some_val" ) config = ConfigDB.get_all_as_keyword() assert config[:pleroma] == [ - {ConfigDB.from_string(saved.key), ConfigDB.from_binary(saved.value)} + {saved.key, saved.value} ] assert config[:quack][:level] == :info @@ -51,11 +39,11 @@ test "get_all_as_keyword/0" do describe "update_or_create/1" do test "common" do config = insert(:config) - key2 = "another_key" + key2 = :another_key params = [ - %{group: "pleroma", key: key2, value: "another_value"}, - %{group: config.group, key: config.key, value: "new_value"} + %{group: :pleroma, key: key2, value: "another_value"}, + %{group: :pleroma, key: config.key, value: [a: 1, b: 2, c: "new_value"]} ] assert Repo.all(ConfigDB) |> length() == 1 @@ -65,16 +53,16 @@ test "common" do assert Repo.all(ConfigDB) |> length() == 2 config1 = ConfigDB.get_by_params(%{group: config.group, key: config.key}) - config2 = ConfigDB.get_by_params(%{group: "pleroma", key: key2}) + config2 = ConfigDB.get_by_params(%{group: :pleroma, key: key2}) - assert config1.value == ConfigDB.transform("new_value") - assert config2.value == ConfigDB.transform("another_value") + assert config1.value == [a: 1, b: 2, c: "new_value"] + assert config2.value == "another_value" end test "partial update" do - config = insert(:config, value: ConfigDB.to_binary(key1: "val1", key2: :val2)) + config = insert(:config, value: [key1: "val1", key2: :val2]) - {:ok, _config} = + {:ok, config} = ConfigDB.update_or_create(%{ group: config.group, key: config.key, @@ -83,15 +71,14 @@ test "partial update" do updated = ConfigDB.get_by_params(%{group: config.group, key: config.key}) - value = ConfigDB.from_binary(updated.value) - assert length(value) == 3 - assert value[:key1] == :val1 - assert value[:key2] == :val2 - assert value[:key3] == :val3 + assert config.value == updated.value + assert updated.value[:key1] == :val1 + assert updated.value[:key2] == :val2 + assert updated.value[:key3] == :val3 end test "deep merge" do - config = insert(:config, value: ConfigDB.to_binary(key1: "val1", key2: [k1: :v1, k2: "v2"])) + config = insert(:config, value: [key1: "val1", key2: [k1: :v1, k2: "v2"]]) {:ok, config} = ConfigDB.update_or_create(%{ @@ -103,18 +90,15 @@ test "deep merge" do updated = ConfigDB.get_by_params(%{group: config.group, key: config.key}) assert config.value == updated.value - - value = ConfigDB.from_binary(updated.value) - assert value[:key1] == :val1 - assert value[:key2] == [k1: :v1, k2: :v2, k3: :v3] - assert value[:key3] == :val3 + assert updated.value[:key1] == :val1 + assert updated.value[:key2] == [k1: :v1, k2: :v2, k3: :v3] + assert updated.value[:key3] == :val3 end test "only full update for some keys" do - config1 = insert(:config, key: ":ecto_repos", value: ConfigDB.to_binary(repo: Pleroma.Repo)) + config1 = insert(:config, key: :ecto_repos, value: [repo: Pleroma.Repo]) - config2 = - insert(:config, group: ":cors_plug", key: ":max_age", value: ConfigDB.to_binary(18)) + config2 = insert(:config, group: :cors_plug, key: :max_age, value: 18) {:ok, _config} = ConfigDB.update_or_create(%{ @@ -133,8 +117,8 @@ test "only full update for some keys" do updated1 = ConfigDB.get_by_params(%{group: config1.group, key: config1.key}) updated2 = ConfigDB.get_by_params(%{group: config2.group, key: config2.key}) - assert ConfigDB.from_binary(updated1.value) == [another_repo: [Pleroma.Repo]] - assert ConfigDB.from_binary(updated2.value) == 777 + assert updated1.value == [another_repo: [Pleroma.Repo]] + assert updated2.value == 777 end test "full update if value is not keyword" do @@ -142,7 +126,7 @@ test "full update if value is not keyword" do insert(:config, group: ":tesla", key: ":adapter", - value: ConfigDB.to_binary(Tesla.Adapter.Hackney) + value: Tesla.Adapter.Hackney ) {:ok, _config} = @@ -154,20 +138,20 @@ test "full update if value is not keyword" do updated = ConfigDB.get_by_params(%{group: config.group, key: config.key}) - assert ConfigDB.from_binary(updated.value) == Tesla.Adapter.Httpc + assert updated.value == Tesla.Adapter.Httpc end test "only full update for some subkeys" do config1 = insert(:config, key: ":emoji", - value: ConfigDB.to_binary(groups: [a: 1, b: 2], key: [a: 1]) + value: [groups: [a: 1, b: 2], key: [a: 1]] ) config2 = insert(:config, key: ":assets", - value: ConfigDB.to_binary(mascots: [a: 1, b: 2], key: [a: 1]) + value: [mascots: [a: 1, b: 2], key: [a: 1]] ) {:ok, _config} = @@ -187,8 +171,8 @@ test "only full update for some subkeys" do updated1 = ConfigDB.get_by_params(%{group: config1.group, key: config1.key}) updated2 = ConfigDB.get_by_params(%{group: config2.group, key: config2.key}) - assert ConfigDB.from_binary(updated1.value) == [groups: [c: 3, d: 4], key: [a: 1, b: 2]] - assert ConfigDB.from_binary(updated2.value) == [mascots: [c: 3, d: 4], key: [a: 1, b: 2]] + assert updated1.value == [groups: [c: 3, d: 4], key: [a: 1, b: 2]] + assert updated2.value == [mascots: [c: 3, d: 4], key: [a: 1, b: 2]] end end @@ -206,14 +190,14 @@ test "full delete" do end test "partial subkeys delete" do - config = insert(:config, value: ConfigDB.to_binary(groups: [a: 1, b: 2], key: [a: 1])) + config = insert(:config, value: [groups: [a: 1, b: 2], key: [a: 1]]) {:ok, deleted} = ConfigDB.delete(%{group: config.group, key: config.key, subkeys: [":groups"]}) assert Ecto.get_meta(deleted, :state) == :loaded - assert deleted.value == ConfigDB.to_binary(key: [a: 1]) + assert deleted.value == [key: [a: 1]] updated = ConfigDB.get_by_params(%{group: config.group, key: config.key}) @@ -221,7 +205,7 @@ test "partial subkeys delete" do end test "full delete if remaining value after subkeys deletion is empty list" do - config = insert(:config, value: ConfigDB.to_binary(groups: [a: 1, b: 2])) + config = insert(:config, value: [groups: [a: 1, b: 2]]) {:ok, deleted} = ConfigDB.delete(%{group: config.group, key: config.key, subkeys: [":groups"]}) @@ -232,234 +216,159 @@ test "full delete if remaining value after subkeys deletion is empty list" do end end - describe "transform/1" do + describe "to_elixir_types/1" do test "string" do - binary = ConfigDB.transform("value as string") - assert binary == :erlang.term_to_binary("value as string") - assert ConfigDB.from_binary(binary) == "value as string" + assert ConfigDB.to_elixir_types("value as string") == "value as string" end test "boolean" do - binary = ConfigDB.transform(false) - assert binary == :erlang.term_to_binary(false) - assert ConfigDB.from_binary(binary) == false + assert ConfigDB.to_elixir_types(false) == false end test "nil" do - binary = ConfigDB.transform(nil) - assert binary == :erlang.term_to_binary(nil) - assert ConfigDB.from_binary(binary) == nil + assert ConfigDB.to_elixir_types(nil) == nil end test "integer" do - binary = ConfigDB.transform(150) - assert binary == :erlang.term_to_binary(150) - assert ConfigDB.from_binary(binary) == 150 + assert ConfigDB.to_elixir_types(150) == 150 end test "atom" do - binary = ConfigDB.transform(":atom") - assert binary == :erlang.term_to_binary(:atom) - assert ConfigDB.from_binary(binary) == :atom + assert ConfigDB.to_elixir_types(":atom") == :atom end test "ssl options" do - binary = ConfigDB.transform([":tlsv1", ":tlsv1.1", ":tlsv1.2"]) - assert binary == :erlang.term_to_binary([:tlsv1, :"tlsv1.1", :"tlsv1.2"]) - assert ConfigDB.from_binary(binary) == [:tlsv1, :"tlsv1.1", :"tlsv1.2"] + assert ConfigDB.to_elixir_types([":tlsv1", ":tlsv1.1", ":tlsv1.2"]) == [ + :tlsv1, + :"tlsv1.1", + :"tlsv1.2" + ] end test "pleroma module" do - binary = ConfigDB.transform("Pleroma.Bookmark") - assert binary == :erlang.term_to_binary(Pleroma.Bookmark) - assert ConfigDB.from_binary(binary) == Pleroma.Bookmark + assert ConfigDB.to_elixir_types("Pleroma.Bookmark") == Pleroma.Bookmark end test "pleroma string" do - binary = ConfigDB.transform("Pleroma") - assert binary == :erlang.term_to_binary("Pleroma") - assert ConfigDB.from_binary(binary) == "Pleroma" + assert ConfigDB.to_elixir_types("Pleroma") == "Pleroma" end test "phoenix module" do - binary = ConfigDB.transform("Phoenix.Socket.V1.JSONSerializer") - assert binary == :erlang.term_to_binary(Phoenix.Socket.V1.JSONSerializer) - assert ConfigDB.from_binary(binary) == Phoenix.Socket.V1.JSONSerializer + assert ConfigDB.to_elixir_types("Phoenix.Socket.V1.JSONSerializer") == + Phoenix.Socket.V1.JSONSerializer end test "tesla module" do - binary = ConfigDB.transform("Tesla.Adapter.Hackney") - assert binary == :erlang.term_to_binary(Tesla.Adapter.Hackney) - assert ConfigDB.from_binary(binary) == Tesla.Adapter.Hackney + assert ConfigDB.to_elixir_types("Tesla.Adapter.Hackney") == Tesla.Adapter.Hackney end test "ExSyslogger module" do - binary = ConfigDB.transform("ExSyslogger") - assert binary == :erlang.term_to_binary(ExSyslogger) - assert ConfigDB.from_binary(binary) == ExSyslogger + assert ConfigDB.to_elixir_types("ExSyslogger") == ExSyslogger end test "Quack.Logger module" do - binary = ConfigDB.transform("Quack.Logger") - assert binary == :erlang.term_to_binary(Quack.Logger) - assert ConfigDB.from_binary(binary) == Quack.Logger + assert ConfigDB.to_elixir_types("Quack.Logger") == Quack.Logger end test "Swoosh.Adapters modules" do - binary = ConfigDB.transform("Swoosh.Adapters.SMTP") - assert binary == :erlang.term_to_binary(Swoosh.Adapters.SMTP) - assert ConfigDB.from_binary(binary) == Swoosh.Adapters.SMTP - binary = ConfigDB.transform("Swoosh.Adapters.AmazonSES") - assert binary == :erlang.term_to_binary(Swoosh.Adapters.AmazonSES) - assert ConfigDB.from_binary(binary) == Swoosh.Adapters.AmazonSES + assert ConfigDB.to_elixir_types("Swoosh.Adapters.SMTP") == Swoosh.Adapters.SMTP + assert ConfigDB.to_elixir_types("Swoosh.Adapters.AmazonSES") == Swoosh.Adapters.AmazonSES end test "sigil" do - binary = ConfigDB.transform("~r[comp[lL][aA][iI][nN]er]") - assert binary == :erlang.term_to_binary(~r/comp[lL][aA][iI][nN]er/) - assert ConfigDB.from_binary(binary) == ~r/comp[lL][aA][iI][nN]er/ + assert ConfigDB.to_elixir_types("~r[comp[lL][aA][iI][nN]er]") == ~r/comp[lL][aA][iI][nN]er/ end test "link sigil" do - binary = ConfigDB.transform("~r/https:\/\/example.com/") - assert binary == :erlang.term_to_binary(~r/https:\/\/example.com/) - assert ConfigDB.from_binary(binary) == ~r/https:\/\/example.com/ + assert ConfigDB.to_elixir_types("~r/https:\/\/example.com/") == ~r/https:\/\/example.com/ end test "link sigil with um modifiers" do - binary = ConfigDB.transform("~r/https:\/\/example.com/um") - assert binary == :erlang.term_to_binary(~r/https:\/\/example.com/um) - assert ConfigDB.from_binary(binary) == ~r/https:\/\/example.com/um + assert ConfigDB.to_elixir_types("~r/https:\/\/example.com/um") == + ~r/https:\/\/example.com/um end test "link sigil with i modifier" do - binary = ConfigDB.transform("~r/https:\/\/example.com/i") - assert binary == :erlang.term_to_binary(~r/https:\/\/example.com/i) - assert ConfigDB.from_binary(binary) == ~r/https:\/\/example.com/i + assert ConfigDB.to_elixir_types("~r/https:\/\/example.com/i") == ~r/https:\/\/example.com/i end test "link sigil with s modifier" do - binary = ConfigDB.transform("~r/https:\/\/example.com/s") - assert binary == :erlang.term_to_binary(~r/https:\/\/example.com/s) - assert ConfigDB.from_binary(binary) == ~r/https:\/\/example.com/s + assert ConfigDB.to_elixir_types("~r/https:\/\/example.com/s") == ~r/https:\/\/example.com/s end test "raise if valid delimiter not found" do assert_raise ArgumentError, "valid delimiter for Regex expression not found", fn -> - ConfigDB.transform("~r/https://[]{}<>\"'()|example.com/s") + ConfigDB.to_elixir_types("~r/https://[]{}<>\"'()|example.com/s") end end test "2 child tuple" do - binary = ConfigDB.transform(%{"tuple" => ["v1", ":v2"]}) - assert binary == :erlang.term_to_binary({"v1", :v2}) - assert ConfigDB.from_binary(binary) == {"v1", :v2} + assert ConfigDB.to_elixir_types(%{"tuple" => ["v1", ":v2"]}) == {"v1", :v2} end test "proxy tuple with localhost" do - binary = - ConfigDB.transform(%{ - "tuple" => [":proxy_url", %{"tuple" => [":socks5", "localhost", 1234]}] - }) - - assert binary == :erlang.term_to_binary({:proxy_url, {:socks5, :localhost, 1234}}) - assert ConfigDB.from_binary(binary) == {:proxy_url, {:socks5, :localhost, 1234}} + assert ConfigDB.to_elixir_types(%{ + "tuple" => [":proxy_url", %{"tuple" => [":socks5", "localhost", 1234]}] + }) == {:proxy_url, {:socks5, :localhost, 1234}} end test "proxy tuple with domain" do - binary = - ConfigDB.transform(%{ - "tuple" => [":proxy_url", %{"tuple" => [":socks5", "domain.com", 1234]}] - }) - - assert binary == :erlang.term_to_binary({:proxy_url, {:socks5, 'domain.com', 1234}}) - assert ConfigDB.from_binary(binary) == {:proxy_url, {:socks5, 'domain.com', 1234}} + assert ConfigDB.to_elixir_types(%{ + "tuple" => [":proxy_url", %{"tuple" => [":socks5", "domain.com", 1234]}] + }) == {:proxy_url, {:socks5, 'domain.com', 1234}} end test "proxy tuple with ip" do - binary = - ConfigDB.transform(%{ - "tuple" => [":proxy_url", %{"tuple" => [":socks5", "127.0.0.1", 1234]}] - }) - - assert binary == :erlang.term_to_binary({:proxy_url, {:socks5, {127, 0, 0, 1}, 1234}}) - assert ConfigDB.from_binary(binary) == {:proxy_url, {:socks5, {127, 0, 0, 1}, 1234}} + assert ConfigDB.to_elixir_types(%{ + "tuple" => [":proxy_url", %{"tuple" => [":socks5", "127.0.0.1", 1234]}] + }) == {:proxy_url, {:socks5, {127, 0, 0, 1}, 1234}} end test "tuple with n childs" do - binary = - ConfigDB.transform(%{ - "tuple" => [ - "v1", - ":v2", - "Pleroma.Bookmark", - 150, - false, - "Phoenix.Socket.V1.JSONSerializer" - ] - }) - - assert binary == - :erlang.term_to_binary( - {"v1", :v2, Pleroma.Bookmark, 150, false, Phoenix.Socket.V1.JSONSerializer} - ) - - assert ConfigDB.from_binary(binary) == - {"v1", :v2, Pleroma.Bookmark, 150, false, Phoenix.Socket.V1.JSONSerializer} + assert ConfigDB.to_elixir_types(%{ + "tuple" => [ + "v1", + ":v2", + "Pleroma.Bookmark", + 150, + false, + "Phoenix.Socket.V1.JSONSerializer" + ] + }) == {"v1", :v2, Pleroma.Bookmark, 150, false, Phoenix.Socket.V1.JSONSerializer} end test "map with string key" do - binary = ConfigDB.transform(%{"key" => "value"}) - assert binary == :erlang.term_to_binary(%{"key" => "value"}) - assert ConfigDB.from_binary(binary) == %{"key" => "value"} + assert ConfigDB.to_elixir_types(%{"key" => "value"}) == %{"key" => "value"} end test "map with atom key" do - binary = ConfigDB.transform(%{":key" => "value"}) - assert binary == :erlang.term_to_binary(%{key: "value"}) - assert ConfigDB.from_binary(binary) == %{key: "value"} + assert ConfigDB.to_elixir_types(%{":key" => "value"}) == %{key: "value"} end test "list of strings" do - binary = ConfigDB.transform(["v1", "v2", "v3"]) - assert binary == :erlang.term_to_binary(["v1", "v2", "v3"]) - assert ConfigDB.from_binary(binary) == ["v1", "v2", "v3"] + assert ConfigDB.to_elixir_types(["v1", "v2", "v3"]) == ["v1", "v2", "v3"] end test "list of modules" do - binary = ConfigDB.transform(["Pleroma.Repo", "Pleroma.Activity"]) - assert binary == :erlang.term_to_binary([Pleroma.Repo, Pleroma.Activity]) - assert ConfigDB.from_binary(binary) == [Pleroma.Repo, Pleroma.Activity] + assert ConfigDB.to_elixir_types(["Pleroma.Repo", "Pleroma.Activity"]) == [ + Pleroma.Repo, + Pleroma.Activity + ] end test "list of atoms" do - binary = ConfigDB.transform([":v1", ":v2", ":v3"]) - assert binary == :erlang.term_to_binary([:v1, :v2, :v3]) - assert ConfigDB.from_binary(binary) == [:v1, :v2, :v3] + assert ConfigDB.to_elixir_types([":v1", ":v2", ":v3"]) == [:v1, :v2, :v3] end test "list of mixed values" do - binary = - ConfigDB.transform([ - "v1", - ":v2", - "Pleroma.Repo", - "Phoenix.Socket.V1.JSONSerializer", - 15, - false - ]) - - assert binary == - :erlang.term_to_binary([ - "v1", - :v2, - Pleroma.Repo, - Phoenix.Socket.V1.JSONSerializer, - 15, - false - ]) - - assert ConfigDB.from_binary(binary) == [ + assert ConfigDB.to_elixir_types([ + "v1", + ":v2", + "Pleroma.Repo", + "Phoenix.Socket.V1.JSONSerializer", + 15, + false + ]) == [ "v1", :v2, Pleroma.Repo, @@ -470,40 +379,17 @@ test "list of mixed values" do end test "simple keyword" do - binary = ConfigDB.transform([%{"tuple" => [":key", "value"]}]) - assert binary == :erlang.term_to_binary([{:key, "value"}]) - assert ConfigDB.from_binary(binary) == [{:key, "value"}] - assert ConfigDB.from_binary(binary) == [key: "value"] - end - - test "keyword with partial_chain key" do - binary = - ConfigDB.transform([%{"tuple" => [":partial_chain", "&:hackney_connect.partial_chain/1"]}]) - - assert binary == :erlang.term_to_binary(partial_chain: &:hackney_connect.partial_chain/1) - assert ConfigDB.from_binary(binary) == [partial_chain: &:hackney_connect.partial_chain/1] + assert ConfigDB.to_elixir_types([%{"tuple" => [":key", "value"]}]) == [key: "value"] end test "keyword" do - binary = - ConfigDB.transform([ - %{"tuple" => [":types", "Pleroma.PostgresTypes"]}, - %{"tuple" => [":telemetry_event", ["Pleroma.Repo.Instrumenter"]]}, - %{"tuple" => [":migration_lock", nil]}, - %{"tuple" => [":key1", 150]}, - %{"tuple" => [":key2", "string"]} - ]) - - assert binary == - :erlang.term_to_binary( - types: Pleroma.PostgresTypes, - telemetry_event: [Pleroma.Repo.Instrumenter], - migration_lock: nil, - key1: 150, - key2: "string" - ) - - assert ConfigDB.from_binary(binary) == [ + assert ConfigDB.to_elixir_types([ + %{"tuple" => [":types", "Pleroma.PostgresTypes"]}, + %{"tuple" => [":telemetry_event", ["Pleroma.Repo.Instrumenter"]]}, + %{"tuple" => [":migration_lock", nil]}, + %{"tuple" => [":key1", 150]}, + %{"tuple" => [":key2", "string"]} + ]) == [ types: Pleroma.PostgresTypes, telemetry_event: [Pleroma.Repo.Instrumenter], migration_lock: nil, @@ -512,86 +398,60 @@ test "keyword" do ] end - test "complex keyword with nested mixed childs" do - binary = - ConfigDB.transform([ - %{"tuple" => [":uploader", "Pleroma.Uploaders.Local"]}, - %{"tuple" => [":filters", ["Pleroma.Upload.Filter.Dedupe"]]}, - %{"tuple" => [":link_name", true]}, - %{"tuple" => [":proxy_remote", false]}, - %{"tuple" => [":common_map", %{":key" => "value"}]}, - %{ - "tuple" => [ - ":proxy_opts", - [ - %{"tuple" => [":redirect_on_failure", false]}, - %{"tuple" => [":max_body_length", 1_048_576]}, - %{ - "tuple" => [ - ":http", - [%{"tuple" => [":follow_redirect", true]}, %{"tuple" => [":pool", ":upload"]}] - ] - } - ] - ] - } - ]) + test "trandformed keyword" do + assert ConfigDB.to_elixir_types(a: 1, b: 2, c: "string") == [a: 1, b: 2, c: "string"] + end - assert binary == - :erlang.term_to_binary( - uploader: Pleroma.Uploaders.Local, - filters: [Pleroma.Upload.Filter.Dedupe], - link_name: true, - proxy_remote: false, - common_map: %{key: "value"}, - proxy_opts: [ - redirect_on_failure: false, - max_body_length: 1_048_576, - http: [ - follow_redirect: true, - pool: :upload + test "complex keyword with nested mixed childs" do + assert ConfigDB.to_elixir_types([ + %{"tuple" => [":uploader", "Pleroma.Uploaders.Local"]}, + %{"tuple" => [":filters", ["Pleroma.Upload.Filter.Dedupe"]]}, + %{"tuple" => [":link_name", true]}, + %{"tuple" => [":proxy_remote", false]}, + %{"tuple" => [":common_map", %{":key" => "value"}]}, + %{ + "tuple" => [ + ":proxy_opts", + [ + %{"tuple" => [":redirect_on_failure", false]}, + %{"tuple" => [":max_body_length", 1_048_576]}, + %{ + "tuple" => [ + ":http", + [ + %{"tuple" => [":follow_redirect", true]}, + %{"tuple" => [":pool", ":upload"]} + ] + ] + } ] ] - ) - - assert ConfigDB.from_binary(binary) == - [ - uploader: Pleroma.Uploaders.Local, - filters: [Pleroma.Upload.Filter.Dedupe], - link_name: true, - proxy_remote: false, - common_map: %{key: "value"}, - proxy_opts: [ - redirect_on_failure: false, - max_body_length: 1_048_576, - http: [ - follow_redirect: true, - pool: :upload - ] + } + ]) == [ + uploader: Pleroma.Uploaders.Local, + filters: [Pleroma.Upload.Filter.Dedupe], + link_name: true, + proxy_remote: false, + common_map: %{key: "value"}, + proxy_opts: [ + redirect_on_failure: false, + max_body_length: 1_048_576, + http: [ + follow_redirect: true, + pool: :upload ] ] + ] end test "common keyword" do - binary = - ConfigDB.transform([ - %{"tuple" => [":level", ":warn"]}, - %{"tuple" => [":meta", [":all"]]}, - %{"tuple" => [":path", ""]}, - %{"tuple" => [":val", nil]}, - %{"tuple" => [":webhook_url", "https://hooks.slack.com/services/YOUR-KEY-HERE"]} - ]) - - assert binary == - :erlang.term_to_binary( - level: :warn, - meta: [:all], - path: "", - val: nil, - webhook_url: "https://hooks.slack.com/services/YOUR-KEY-HERE" - ) - - assert ConfigDB.from_binary(binary) == [ + assert ConfigDB.to_elixir_types([ + %{"tuple" => [":level", ":warn"]}, + %{"tuple" => [":meta", [":all"]]}, + %{"tuple" => [":path", ""]}, + %{"tuple" => [":val", nil]}, + %{"tuple" => [":webhook_url", "https://hooks.slack.com/services/YOUR-KEY-HERE"]} + ]) == [ level: :warn, meta: [:all], path: "", @@ -601,98 +461,73 @@ test "common keyword" do end test "complex keyword with sigil" do - binary = - ConfigDB.transform([ - %{"tuple" => [":federated_timeline_removal", []]}, - %{"tuple" => [":reject", ["~r/comp[lL][aA][iI][nN]er/"]]}, - %{"tuple" => [":replace", []]} - ]) - - assert binary == - :erlang.term_to_binary( - federated_timeline_removal: [], - reject: [~r/comp[lL][aA][iI][nN]er/], - replace: [] - ) - - assert ConfigDB.from_binary(binary) == - [federated_timeline_removal: [], reject: [~r/comp[lL][aA][iI][nN]er/], replace: []] + assert ConfigDB.to_elixir_types([ + %{"tuple" => [":federated_timeline_removal", []]}, + %{"tuple" => [":reject", ["~r/comp[lL][aA][iI][nN]er/"]]}, + %{"tuple" => [":replace", []]} + ]) == [ + federated_timeline_removal: [], + reject: [~r/comp[lL][aA][iI][nN]er/], + replace: [] + ] end test "complex keyword with tuples with more than 2 values" do - binary = - ConfigDB.transform([ - %{ - "tuple" => [ - ":http", - [ - %{ - "tuple" => [ - ":key1", - [ - %{ - "tuple" => [ - ":_", - [ - %{ - "tuple" => [ - "/api/v1/streaming", - "Pleroma.Web.MastodonAPI.WebsocketHandler", - [] - ] - }, - %{ - "tuple" => [ - "/websocket", - "Phoenix.Endpoint.CowboyWebSocket", - %{ - "tuple" => [ - "Phoenix.Transports.WebSocket", - %{ - "tuple" => [ - "Pleroma.Web.Endpoint", - "Pleroma.Web.UserSocket", - [] - ] - } - ] - } - ] - }, - %{ - "tuple" => [ - ":_", - "Phoenix.Endpoint.Cowboy2Handler", - %{"tuple" => ["Pleroma.Web.Endpoint", []]} - ] - } - ] - ] - } - ] - ] - } - ] - ] - } - ]) - - assert binary == - :erlang.term_to_binary( - http: [ - key1: [ - _: [ - {"/api/v1/streaming", Pleroma.Web.MastodonAPI.WebsocketHandler, []}, - {"/websocket", Phoenix.Endpoint.CowboyWebSocket, - {Phoenix.Transports.WebSocket, - {Pleroma.Web.Endpoint, Pleroma.Web.UserSocket, []}}}, - {:_, Phoenix.Endpoint.Cowboy2Handler, {Pleroma.Web.Endpoint, []}} - ] + assert ConfigDB.to_elixir_types([ + %{ + "tuple" => [ + ":http", + [ + %{ + "tuple" => [ + ":key1", + [ + %{ + "tuple" => [ + ":_", + [ + %{ + "tuple" => [ + "/api/v1/streaming", + "Pleroma.Web.MastodonAPI.WebsocketHandler", + [] + ] + }, + %{ + "tuple" => [ + "/websocket", + "Phoenix.Endpoint.CowboyWebSocket", + %{ + "tuple" => [ + "Phoenix.Transports.WebSocket", + %{ + "tuple" => [ + "Pleroma.Web.Endpoint", + "Pleroma.Web.UserSocket", + [] + ] + } + ] + } + ] + }, + %{ + "tuple" => [ + ":_", + "Phoenix.Endpoint.Cowboy2Handler", + %{"tuple" => ["Pleroma.Web.Endpoint", []]} + ] + } + ] + ] + } + ] + ] + } ] ] - ) - - assert ConfigDB.from_binary(binary) == [ + } + ]) == [ http: [ key1: [ {:_, diff --git a/test/config/deprecation_warnings_test.exs b/test/config/deprecation_warnings_test.exs new file mode 100644 index 000000000..548ee87b0 --- /dev/null +++ b/test/config/deprecation_warnings_test.exs @@ -0,0 +1,57 @@ +defmodule Pleroma.Config.DeprecationWarningsTest do + use ExUnit.Case, async: true + use Pleroma.Tests.Helpers + + import ExUnit.CaptureLog + + test "check_old_mrf_config/0" do + clear_config([:instance, :rewrite_policy], Pleroma.Web.ActivityPub.MRF.NoOpPolicy) + clear_config([:instance, :mrf_transparency], true) + clear_config([:instance, :mrf_transparency_exclusions], []) + + assert capture_log(fn -> Pleroma.Config.DeprecationWarnings.check_old_mrf_config() end) =~ + """ + !!!DEPRECATION WARNING!!! + Your config is using old namespaces for MRF configuration. They should work for now, but you are advised to change to new namespaces to prevent possible issues later: + + * `config :pleroma, :instance, rewrite_policy` is now `config :pleroma, :mrf, policies` + * `config :pleroma, :instance, mrf_transparency` is now `config :pleroma, :mrf, transparency` + * `config :pleroma, :instance, mrf_transparency_exclusions` is now `config :pleroma, :mrf, transparency_exclusions` + """ + end + + test "move_namespace_and_warn/2" do + old_group1 = [:group, :key] + old_group2 = [:group, :key2] + old_group3 = [:group, :key3] + + new_group1 = [:another_group, :key4] + new_group2 = [:another_group, :key5] + new_group3 = [:another_group, :key6] + + clear_config(old_group1, 1) + clear_config(old_group2, 2) + clear_config(old_group3, 3) + + clear_config(new_group1) + clear_config(new_group2) + clear_config(new_group3) + + config_map = [ + {old_group1, new_group1, "\n error :key"}, + {old_group2, new_group2, "\n error :key2"}, + {old_group3, new_group3, "\n error :key3"} + ] + + assert capture_log(fn -> + Pleroma.Config.DeprecationWarnings.move_namespace_and_warn( + config_map, + "Warning preface" + ) + end) =~ "Warning preface\n error :key\n error :key2\n error :key3" + + assert Pleroma.Config.get(new_group1) == 1 + assert Pleroma.Config.get(new_group2) == 2 + assert Pleroma.Config.get(new_group3) == 3 + end +end diff --git a/test/config/transfer_task_test.exs b/test/config/transfer_task_test.exs index 473899d1d..f53829e09 100644 --- a/test/config/transfer_task_test.exs +++ b/test/config/transfer_task_test.exs @@ -6,9 +6,9 @@ defmodule Pleroma.Config.TransferTaskTest do use Pleroma.DataCase import ExUnit.CaptureLog + import Pleroma.Factory alias Pleroma.Config.TransferTask - alias Pleroma.ConfigDB setup do: clear_config(:configurable_from_database, true) @@ -19,31 +19,11 @@ test "transfer config values from db to env" do refute Application.get_env(:postgrex, :test_key) initial = Application.get_env(:logger, :level) - ConfigDB.create(%{ - group: ":pleroma", - key: ":test_key", - value: [live: 2, com: 3] - }) - - ConfigDB.create(%{ - group: ":idna", - key: ":test_key", - value: [live: 15, com: 35] - }) - - ConfigDB.create(%{ - group: ":quack", - key: ":test_key", - value: [:test_value1, :test_value2] - }) - - ConfigDB.create(%{ - group: ":postgrex", - key: ":test_key", - value: :value - }) - - ConfigDB.create(%{group: ":logger", key: ":level", value: :debug}) + insert(:config, key: :test_key, value: [live: 2, com: 3]) + insert(:config, group: :idna, key: :test_key, value: [live: 15, com: 35]) + insert(:config, group: :quack, key: :test_key, value: [:test_value1, :test_value2]) + insert(:config, group: :postgrex, key: :test_key, value: :value) + insert(:config, group: :logger, key: :level, value: :debug) TransferTask.start_link([]) @@ -66,17 +46,8 @@ test "transfer config values for 1 group and some keys" do level = Application.get_env(:quack, :level) meta = Application.get_env(:quack, :meta) - ConfigDB.create(%{ - group: ":quack", - key: ":level", - value: :info - }) - - ConfigDB.create(%{ - group: ":quack", - key: ":meta", - value: [:none] - }) + insert(:config, group: :quack, key: :level, value: :info) + insert(:config, group: :quack, key: :meta, value: [:none]) TransferTask.start_link([]) @@ -95,17 +66,8 @@ test "transfer config values with full subkey update" do clear_config(:emoji) clear_config(:assets) - ConfigDB.create(%{ - group: ":pleroma", - key: ":emoji", - value: [groups: [a: 1, b: 2]] - }) - - ConfigDB.create(%{ - group: ":pleroma", - key: ":assets", - value: [mascots: [a: 1, b: 2]] - }) + insert(:config, key: :emoji, value: [groups: [a: 1, b: 2]]) + insert(:config, key: :assets, value: [mascots: [a: 1, b: 2]]) TransferTask.start_link([]) @@ -122,12 +84,7 @@ test "transfer config values with full subkey update" do test "don't restart if no reboot time settings were changed" do clear_config(:emoji) - - ConfigDB.create(%{ - group: ":pleroma", - key: ":emoji", - value: [groups: [a: 1, b: 2]] - }) + insert(:config, key: :emoji, value: [groups: [a: 1, b: 2]]) refute String.contains?( capture_log(fn -> TransferTask.start_link([]) end), @@ -137,25 +94,13 @@ test "don't restart if no reboot time settings were changed" do test "on reboot time key" do clear_config(:chat) - - ConfigDB.create(%{ - group: ":pleroma", - key: ":chat", - value: [enabled: false] - }) - + insert(:config, key: :chat, value: [enabled: false]) assert capture_log(fn -> TransferTask.start_link([]) end) =~ "pleroma restarted" end test "on reboot time subkey" do clear_config(Pleroma.Captcha) - - ConfigDB.create(%{ - group: ":pleroma", - key: "Pleroma.Captcha", - value: [seconds_valid: 60] - }) - + insert(:config, key: Pleroma.Captcha, value: [seconds_valid: 60]) assert capture_log(fn -> TransferTask.start_link([]) end) =~ "pleroma restarted" end @@ -163,17 +108,8 @@ test "don't restart pleroma on reboot time key and subkey if there is false flag clear_config(:chat) clear_config(Pleroma.Captcha) - ConfigDB.create(%{ - group: ":pleroma", - key: ":chat", - value: [enabled: false] - }) - - ConfigDB.create(%{ - group: ":pleroma", - key: "Pleroma.Captcha", - value: [seconds_valid: 60] - }) + insert(:config, key: :chat, value: [enabled: false]) + insert(:config, key: Pleroma.Captcha, value: [seconds_valid: 60]) refute String.contains?( capture_log(fn -> TransferTask.load_and_update_env([], false) end), diff --git a/test/fixtures/config/temp.secret.exs b/test/fixtures/config/temp.secret.exs index dc950ca30..fa8c7c7e8 100644 --- a/test/fixtures/config/temp.secret.exs +++ b/test/fixtures/config/temp.secret.exs @@ -9,3 +9,5 @@ config :pleroma, Pleroma.Repo, pool: Ecto.Adapters.SQL.Sandbox config :postgrex, :json_library, Poison + +config :pleroma, :database, rum_enabled: true diff --git a/test/fixtures/create-chat-message.json b/test/fixtures/create-chat-message.json new file mode 100644 index 000000000..9c23a1c9b --- /dev/null +++ b/test/fixtures/create-chat-message.json @@ -0,0 +1,31 @@ +{ + "actor": "http://2hu.gensokyo/users/raymoo", + "id": "http://2hu.gensokyo/objects/1", + "object": { + "attributedTo": "http://2hu.gensokyo/users/raymoo", + "content": "You expected a cute girl? Too bad. ", + "id": "http://2hu.gensokyo/objects/2", + "published": "2020-02-12T14:08:20Z", + "to": [ + "http://2hu.gensokyo/users/marisa" + ], + "tag": [ + { + "icon": { + "type": "Image", + "url": "http://2hu.gensokyo/emoji/Firefox.gif" + }, + "id": "http://2hu.gensokyo/emoji/Firefox.gif", + "name": ":firefox:", + "type": "Emoji", + "updated": "1970-01-01T00:00:00Z" + } + ], + "type": "ChatMessage" + }, + "published": "2018-02-12T14:08:20Z", + "to": [ + "http://2hu.gensokyo/users/marisa" + ], + "type": "Create" +} diff --git a/test/fixtures/kroeg-announce-with-inline-actor.json b/test/fixtures/kroeg-announce-with-inline-actor.json index 7bd6e8199..f73f93410 100644 --- a/test/fixtures/kroeg-announce-with-inline-actor.json +++ b/test/fixtures/kroeg-announce-with-inline-actor.json @@ -1 +1,88 @@ -{"@context":["https://www.w3.org/ns/activitystreams","https://puckipedia.com/-/context"],"actor":{"endpoints":"https://puckipedia.com/#endpoints","followers":"https://puckipedia.com/followers","following":"https://puckipedia.com/following","icon":{"mediaType":"image/png","type":"Image","url":"https://puckipedia.com/images/avatar.png"},"id":"https://puckipedia.com/","inbox":"https://puckipedia.com/inbox","kroeg:blocks":{"id":"https://puckipedia.com/blocks"},"liked":"https://puckipedia.com/liked","manuallyApprovesFollowers":false,"name":"HACKER TEEN PUCKIPEDIA 👩‍💻","outbox":"https://puckipedia.com/outbox","preferredUsername":"puckipedia","publicKey":{"id":"https://puckipedia.com/#key","owner":"https://puckipedia.com/","publicKeyPem":"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvN05xIcFE0Qgany7Rht4\n0ZI5wu++IT7K5iSqRimBYkpoeHbVcT9RFlW+aWH/QJJW/YgZ7+LMr8AMCrKrwSpS\nCndyrpx4O4lZ3FNRLu7tbklh01rGZfE6R1SFfYBpvMvImc9nYT6iezYDbv6NkHku\no3aVhjql216XlA0OhIrqQme9sAdrLbjbMrTUS8douCTkDOX+JFj1ghHCqdYEMZJI\nOY9kovtgnqyxFLm0RsPGsO1+g/OVojqG+VqHz6O2lceaTVQLlnZ4gOhLVG1tVsA2\nRfXQK+R/VgXncYE+BlQVd/tcdGAz7CDL7PP3rP65gmARnafhGR96cCOi/KzlAXSO\nMwIDAQAB\n-----END PUBLIC KEY-----","type":[]},"summary":"

federated hacker teen
\n[she/they]

","type":"Person","updated":"2017-12-19T16:56:29.7576707+00:00"},"cc":"http://mastodon.example.org/users/admin","id":"https://puckipedia.com/cc56a9658e","object":{"as:sensitive":false,"attributedTo":{"endpoints":{"sharedInbox":"https://mastodon.social/inbox","type":[]},"followers":"http://mastodon.example.org/users/admin/followers","following":"http://mastodon.example.org/users/admin/following","icon":{"mediaType":"image/png","type":"Image","url":"https://files.mastodon.social/accounts/avatars/000/015/163/original/70ca6c52b01ca913.png"},"id":"http://mastodon.example.org/users/admin","inbox":"http://mastodon.example.org/users/admin/inbox","manuallyApprovesFollowers":{"@value":"False","type":"xsd:boolean"},"name":"","outbox":"http://mastodon.example.org/users/admin/outbox","preferredUsername":"revenant","publicKey":{"id":"http://mastodon.example.org/users/admin#main-key","owner":"http://mastodon.example.org/users/admin","publicKeyPem":"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0gEN3wPW7gkE2gQqnmfB\n1ychjmFIf2LIwY0oCJLiGE/xpZrUKoq+eWH30AP7mATw4LD0gOYABL/ijqPUrPqR\nDXLL+0CqMP8HsZKvRlj9KArMK3YtNiSGGj2U7iReiRrD7nJzjJlsjjJXflLZhZ7/\nenSv1CcaeK8tB0PoAgShy/MyfhPF7WI5/Zm9DmmDQFvUEnDYKXAf/vG/IWw1EyMC\nkbaEYJeIowQU3GsbPxzRGI22bQtfotm431Ch2MbNo+kyzmYVFLAVoSGNMzvJwOPg\nTxLIIBeQXG7MinRyK887yPKhxhcALea4yCcALaa+3jPE7yqwIKYwTHtSlblsHDAo\nmQIDAQAB\n-----END PUBLIC KEY-----\n","type":[]},"summary":"

neatly partitioned meats and cheeses appeal to me on an aesthetic level | any pronouns | revenant1.net

","type":"Person","url":"https://mastodon.social/@revenant"},"cc":"http://mastodon.example.org/users/admin/followers","content":"

the name's jond (jeans bond)

","contentMap":{"en":"

the name's jond (jeans bond)

"},"conversation":"tag:mastodon.social,2018-09-25:objectId=55659382:objectType=Conversation","id":"http://mastodon.example.org/users/admin/statuses/100787282858396771","ostatus:atomUri":"http://mastodon.example.org/users/admin/statuses/100787282858396771","published":"2018-09-25T16:11:29Z","to":"https://www.w3.org/ns/activitystreams#Public","type":"Note","url":"https://mastodon.social/@revenant/100787282858396771"},"to":["https://www.w3.org/ns/activitystreams#Public","https://puckipedia.com/followers"],"type":"Announce"} +{ + "@context" : [ + "https://www.w3.org/ns/activitystreams", + "https://puckipedia.com/-/context" + ], + "actor" : { + "endpoints" : "https://puckipedia.com/#endpoints", + "followers" : "https://puckipedia.com/followers", + "following" : "https://puckipedia.com/following", + "icon" : { + "mediaType" : "image/png", + "type" : "Image", + "url" : "https://puckipedia.com/images/avatar.png" + }, + "id" : "https://puckipedia.com/", + "inbox" : "https://puckipedia.com/inbox", + "kroeg:blocks" : { + "id" : "https://puckipedia.com/blocks" + }, + "liked" : "https://puckipedia.com/liked", + "manuallyApprovesFollowers" : false, + "name" : "HACKER TEEN PUCKIPEDIA 👩‍💻", + "outbox" : "https://puckipedia.com/outbox", + "preferredUsername" : "puckipedia", + "publicKey" : { + "id" : "https://puckipedia.com/#key", + "owner" : "https://puckipedia.com/", + "publicKeyPem" : "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvN05xIcFE0Qgany7Rht4\n0ZI5wu++IT7K5iSqRimBYkpoeHbVcT9RFlW+aWH/QJJW/YgZ7+LMr8AMCrKrwSpS\nCndyrpx4O4lZ3FNRLu7tbklh01rGZfE6R1SFfYBpvMvImc9nYT6iezYDbv6NkHku\no3aVhjql216XlA0OhIrqQme9sAdrLbjbMrTUS8douCTkDOX+JFj1ghHCqdYEMZJI\nOY9kovtgnqyxFLm0RsPGsO1+g/OVojqG+VqHz6O2lceaTVQLlnZ4gOhLVG1tVsA2\nRfXQK+R/VgXncYE+BlQVd/tcdGAz7CDL7PP3rP65gmARnafhGR96cCOi/KzlAXSO\nMwIDAQAB\n-----END PUBLIC KEY-----", + "type" : [] + }, + "summary" : "

federated hacker teen
\n[she/they]

", + "type" : "Person", + "updated" : "2017-12-19T16:56:29.7576707+00:00" + }, + "cc" : "http://mastodon.example.org/users/admin", + "id" : "https://puckipedia.com/cc56a9658e", + "object" : { + "as:sensitive" : false, + "attributedTo" : { + "endpoints" : { + "sharedInbox" : "https://mastodon.social/inbox", + "type" : [] + }, + "followers" : "http://mastodon.example.org/users/admin/followers", + "following" : "http://mastodon.example.org/users/admin/following", + "icon" : { + "mediaType" : "image/png", + "type" : "Image", + "url" : "https://files.mastodon.social/accounts/avatars/000/015/163/original/70ca6c52b01ca913.png" + }, + "id" : "http://mastodon.example.org/users/admin", + "inbox" : "http://mastodon.example.org/users/admin/inbox", + "manuallyApprovesFollowers" : { + "@value" : "False", + "type" : "xsd:boolean" + }, + "name" : "", + "outbox" : "http://mastodon.example.org/users/admin/outbox", + "preferredUsername" : "revenant", + "publicKey" : { + "id" : "http://mastodon.example.org/users/admin#main-key", + "owner" : "http://mastodon.example.org/users/admin", + "publicKeyPem" : "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0gEN3wPW7gkE2gQqnmfB\n1ychjmFIf2LIwY0oCJLiGE/xpZrUKoq+eWH30AP7mATw4LD0gOYABL/ijqPUrPqR\nDXLL+0CqMP8HsZKvRlj9KArMK3YtNiSGGj2U7iReiRrD7nJzjJlsjjJXflLZhZ7/\nenSv1CcaeK8tB0PoAgShy/MyfhPF7WI5/Zm9DmmDQFvUEnDYKXAf/vG/IWw1EyMC\nkbaEYJeIowQU3GsbPxzRGI22bQtfotm431Ch2MbNo+kyzmYVFLAVoSGNMzvJwOPg\nTxLIIBeQXG7MinRyK887yPKhxhcALea4yCcALaa+3jPE7yqwIKYwTHtSlblsHDAo\nmQIDAQAB\n-----END PUBLIC KEY-----\n", + "type" : [] + }, + "summary" : "

neatly partitioned meats and cheeses appeal to me on an aesthetic level | any pronouns | revenant1.net

", + "type" : "Person", + "url" : "https://mastodon.social/@revenant" + }, + "cc" : "http://mastodon.example.org/users/admin/followers", + "content" : "

the name's jond (jeans bond)

", + "contentMap" : { + "en" : "

the name's jond (jeans bond)

" + }, + "conversation" : "tag:mastodon.social,2018-09-25:objectId=55659382:objectType=Conversation", + "id" : "http://mastodon.example.org/users/admin/statuses/100787282858396771", + "ostatus:atomUri" : "http://mastodon.example.org/users/admin/statuses/100787282858396771", + "published" : "2018-09-25T16:11:29Z", + "to" : "https://www.w3.org/ns/activitystreams#Public", + "type" : "Note", + "url" : "https://mastodon.social/@revenant/100787282858396771" + }, + "to" : [ + "https://www.w3.org/ns/activitystreams#Public", + "https://puckipedia.com/followers" + ], + "type" : "Announce" +} diff --git a/test/fixtures/mastodon-note-object.json b/test/fixtures/mastodon-note-object.json index 75bed9625..d28c7fbe9 100644 --- a/test/fixtures/mastodon-note-object.json +++ b/test/fixtures/mastodon-note-object.json @@ -1,9 +1,45 @@ -{"@context":["https://www.w3.org/ns/activitystreams","https://w3id.org/security/v1",{"manuallyApprovesFollowers":"as:manuallyApprovesFollowers","sensitive":"as:sensitive","movedTo":"as:movedTo","Hashtag":"as:Hashtag","ostatus":"http://ostatus.org#","atomUri":"ostatus:atomUri","inReplyToAtomUri":"ostatus:inReplyToAtomUri","conversation":"ostatus:conversation","toot":"http://joinmastodon.org/ns#","Emoji":"toot:Emoji"}],"id":"http://mastodon.example.org/users/admin/statuses/99541947525187367","type":"Note","summary":null,"content":"\u003cp\u003eyeah.\u003c/p\u003e","inReplyTo":null,"published":"2018-02-17T17:46:20Z","url":"http://mastodon.example.org/@admin/99541947525187367","attributedTo":"http://mastodon.example.org/users/admin","to":["https://www.w3.org/ns/activitystreams#Public"],"cc":["http://mastodon.example.org/users/admin/followers"],"sensitive":false,"atomUri":"http://mastodon.example.org/users/admin/statuses/99541947525187367","inReplyToAtomUri":null,"conversation":"tag:mastodon.example.org,2018-02-17:objectId=59:objectType=Conversation","tag":[], - "attachment": [ +{ + "@context" : [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", { - "url": "http://mastodon.example.org/system/media_attachments/files/000/000/002/original/334ce029e7bfb920.jpg", - "type": "Document", - "name": null, - "mediaType": "image/jpeg" + "Emoji" : "toot:Emoji", + "Hashtag" : "as:Hashtag", + "atomUri" : "ostatus:atomUri", + "conversation" : "ostatus:conversation", + "inReplyToAtomUri" : "ostatus:inReplyToAtomUri", + "manuallyApprovesFollowers" : "as:manuallyApprovesFollowers", + "movedTo" : "as:movedTo", + "ostatus" : "http://ostatus.org#", + "sensitive" : "as:sensitive", + "toot" : "http://joinmastodon.org/ns#" } - ]} + ], + "atomUri" : "http://mastodon.example.org/users/admin/statuses/99541947525187367", + "attachment" : [ + { + "mediaType" : "image/jpeg", + "name" : null, + "type" : "Document", + "url" : "http://mastodon.example.org/system/media_attachments/files/000/000/002/original/334ce029e7bfb920.jpg" + } + ], + "attributedTo" : "http://mastodon.example.org/users/admin", + "cc" : [ + "http://mastodon.example.org/users/admin/followers" + ], + "content" : "

yeah.

", + "conversation" : "tag:mastodon.example.org,2018-02-17:objectId=59:objectType=Conversation", + "id" : "http://mastodon.example.org/users/admin/statuses/99541947525187367", + "inReplyTo" : null, + "inReplyToAtomUri" : null, + "published" : "2018-02-17T17:46:20Z", + "sensitive" : false, + "summary" : null, + "tag" : [], + "to" : [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "type" : "Note", + "url" : "http://mastodon.example.org/@admin/99541947525187367" +} diff --git a/test/http/adapter_helper/hackney_test.exs b/test/http/adapter_helper/hackney_test.exs index 3f7e708e0..f2361ff0b 100644 --- a/test/http/adapter_helper/hackney_test.exs +++ b/test/http/adapter_helper/hackney_test.exs @@ -31,17 +31,5 @@ test "respect connection opts and no proxy", %{uri: uri} do assert opts[:b] == 1 refute Keyword.has_key?(opts, :proxy) end - - test "add opts for https" do - uri = URI.parse("https://domain.com") - - opts = Hackney.options(uri) - - assert opts[:ssl_options] == [ - partial_chain: &:hackney_connect.partial_chain/1, - versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"], - server_name_indication: 'domain.com' - ] - end end end diff --git a/test/http/ex_aws_test.exs b/test/http/ex_aws_test.exs new file mode 100644 index 000000000..d0b00ca26 --- /dev/null +++ b/test/http/ex_aws_test.exs @@ -0,0 +1,54 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.HTTP.ExAwsTest do + use ExUnit.Case + + import Tesla.Mock + alias Pleroma.HTTP + + @url "https://s3.amazonaws.com/test_bucket/test_image.jpg" + + setup do + mock(fn + %{method: :get, url: @url, headers: [{"x-amz-bucket-region", "us-east-1"}]} -> + %Tesla.Env{ + status: 200, + body: "image-content", + headers: [{"x-amz-bucket-region", "us-east-1"}] + } + + %{method: :post, url: @url, body: "image-content-2"} -> + %Tesla.Env{status: 200, body: "image-content-2"} + end) + + :ok + end + + describe "request" do + test "get" do + assert HTTP.ExAws.request(:get, @url, "", [{"x-amz-bucket-region", "us-east-1"}]) == { + :ok, + %{ + body: "image-content", + headers: [{"x-amz-bucket-region", "us-east-1"}], + status_code: 200 + } + } + end + + test "post" do + assert HTTP.ExAws.request(:post, @url, "image-content-2", [ + {"x-amz-bucket-region", "us-east-1"} + ]) == { + :ok, + %{ + body: "image-content-2", + headers: [], + status_code: 200 + } + } + end + end +end diff --git a/test/http/tzdata_test.exs b/test/http/tzdata_test.exs new file mode 100644 index 000000000..3e605d33b --- /dev/null +++ b/test/http/tzdata_test.exs @@ -0,0 +1,35 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.HTTP.TzdataTest do + use ExUnit.Case + + import Tesla.Mock + alias Pleroma.HTTP + @url "https://data.iana.org/time-zones/tzdata-latest.tar.gz" + + setup do + mock(fn + %{method: :head, url: @url} -> + %Tesla.Env{status: 200, body: ""} + + %{method: :get, url: @url} -> + %Tesla.Env{status: 200, body: "hello"} + end) + + :ok + end + + describe "head/1" do + test "returns successfully result" do + assert HTTP.Tzdata.head(@url, [], []) == {:ok, {200, []}} + end + end + + describe "get/1" do + test "returns successfully result" do + assert HTTP.Tzdata.get(@url, [], []) == {:ok, {200, [], "hello"}} + end + end +end diff --git a/test/http_test.exs b/test/http_test.exs index 618485b55..d394bb942 100644 --- a/test/http_test.exs +++ b/test/http_test.exs @@ -17,6 +17,9 @@ defmodule Pleroma.HTTPTest do } -> json(%{"my" => "data"}) + %{method: :head, url: "http://example.com/hello"} -> + %Tesla.Env{status: 200, body: ""} + %{method: :get, url: "http://example.com/hello"} -> %Tesla.Env{status: 200, body: "hello"} @@ -27,6 +30,12 @@ defmodule Pleroma.HTTPTest do :ok end + describe "head/1" do + test "returns successfully result" do + assert HTTP.head("http://example.com/hello") == {:ok, %Tesla.Env{status: 200, body: ""}} + end + end + describe "get/1" do test "returns successfully result" do assert HTTP.get("http://example.com/hello") == { diff --git a/test/instance_static/emoji/test_pack/blank2.png b/test/instance_static/emoji/test_pack/blank2.png new file mode 100644 index 000000000..8f50fa023 Binary files /dev/null and b/test/instance_static/emoji/test_pack/blank2.png differ diff --git a/test/instance_static/emoji/test_pack/pack.json b/test/instance_static/emoji/test_pack/pack.json index 481891b08..5b33fbb32 100644 --- a/test/instance_static/emoji/test_pack/pack.json +++ b/test/instance_static/emoji/test_pack/pack.json @@ -1,6 +1,7 @@ { "files": { - "blank": "blank.png" + "blank": "blank.png", + "blank2": "blank2.png" }, "pack": { "description": "Test description", diff --git a/test/instance_static/emoji/test_pack_nonshared/nonshared.zip b/test/instance_static/emoji/test_pack_nonshared/nonshared.zip index 148446c64..59bff37f0 100644 Binary files a/test/instance_static/emoji/test_pack_nonshared/nonshared.zip and b/test/instance_static/emoji/test_pack_nonshared/nonshared.zip differ diff --git a/test/instance_static/emoji/test_pack_nonshared/pack.json b/test/instance_static/emoji/test_pack_nonshared/pack.json index 93d643a5f..09f6274d1 100644 --- a/test/instance_static/emoji/test_pack_nonshared/pack.json +++ b/test/instance_static/emoji/test_pack_nonshared/pack.json @@ -4,7 +4,7 @@ "homepage": "https://pleroma.social", "description": "Test description", "fallback-src": "https://nonshared-pack", - "fallback-src-sha256": "74409E2674DAA06C072729C6C8426C4CB3B7E0B85ED77792DB7A436E11D76DAF", + "fallback-src-sha256": "1967BB4E42BCC34BCC12D57BE7811D3B7BE52F965BCE45C87BD377B9499CE11D", "share-files": false }, "files": { diff --git a/test/instance_static/local_pack/files.json b/test/instance_static/local_pack/files.json new file mode 100644 index 000000000..279770998 --- /dev/null +++ b/test/instance_static/local_pack/files.json @@ -0,0 +1,3 @@ +{ + "blank": "blank.png" +} \ No newline at end of file diff --git a/test/instance_static/local_pack/manifest.json b/test/instance_static/local_pack/manifest.json new file mode 100644 index 000000000..01067042f --- /dev/null +++ b/test/instance_static/local_pack/manifest.json @@ -0,0 +1,10 @@ +{ + "local": { + "src_sha256": "384025A1AC6314473863A11AC7AB38A12C01B851A3F82359B89B4D4211D3291D", + "src": "test/fixtures/emoji/packs/blank.png.zip", + "license": "Apache 2.0", + "homepage": "https://example.com", + "files": "files.json", + "description": "Some local pack" + } +} \ No newline at end of file diff --git a/test/migration_helper/notification_backfill_test.exs b/test/migration_helper/notification_backfill_test.exs new file mode 100644 index 000000000..2a62a2b00 --- /dev/null +++ b/test/migration_helper/notification_backfill_test.exs @@ -0,0 +1,56 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.MigrationHelper.NotificationBackfillTest do + use Pleroma.DataCase + + alias Pleroma.Activity + alias Pleroma.MigrationHelper.NotificationBackfill + alias Pleroma.Notification + alias Pleroma.Repo + alias Pleroma.Web.CommonAPI + + import Pleroma.Factory + + describe "fill_in_notification_types" do + test "it fills in missing notification types" do + user = insert(:user) + other_user = insert(:user) + + {:ok, post} = CommonAPI.post(user, %{status: "yeah, @#{other_user.nickname}"}) + {:ok, chat} = CommonAPI.post_chat_message(user, other_user, "yo") + {:ok, react} = CommonAPI.react_with_emoji(post.id, other_user, "☕") + {:ok, like} = CommonAPI.favorite(other_user, post.id) + {:ok, react_2} = CommonAPI.react_with_emoji(post.id, other_user, "☕") + + data = + react_2.data + |> Map.put("type", "EmojiReaction") + + {:ok, react_2} = + react_2 + |> Activity.change(%{data: data}) + |> Repo.update() + + assert {5, nil} = Repo.update_all(Notification, set: [type: nil]) + + NotificationBackfill.fill_in_notification_types() + + assert %{type: "mention"} = + Repo.get_by(Notification, user_id: other_user.id, activity_id: post.id) + + assert %{type: "favourite"} = + Repo.get_by(Notification, user_id: user.id, activity_id: like.id) + + assert %{type: "pleroma:emoji_reaction"} = + Repo.get_by(Notification, user_id: user.id, activity_id: react.id) + + assert %{type: "pleroma:emoji_reaction"} = + Repo.get_by(Notification, user_id: user.id, activity_id: react_2.id) + + assert %{type: "pleroma:chat_mention"} = + Repo.get_by(Notification, user_id: other_user.id, activity_id: chat.id) + end + end +end diff --git a/test/notification_test.exs b/test/notification_test.exs index 111ff09f4..526f43fab 100644 --- a/test/notification_test.exs +++ b/test/notification_test.exs @@ -10,6 +10,7 @@ defmodule Pleroma.NotificationTest do alias Pleroma.FollowingRelationship alias Pleroma.Notification + alias Pleroma.Repo alias Pleroma.Tests.ObanHelpers alias Pleroma.User alias Pleroma.Web.ActivityPub.ActivityPub @@ -31,6 +32,7 @@ test "creates a notification for an emoji reaction" do {:ok, [notification]} = Notification.create_notifications(activity) assert notification.user_id == user.id + assert notification.type == "pleroma:emoji_reaction" end test "notifies someone when they are directly addressed" do @@ -48,6 +50,7 @@ test "notifies someone when they are directly addressed" do notified_ids = Enum.sort([notification.user_id, other_notification.user_id]) assert notified_ids == [other_user.id, third_user.id] assert notification.activity_id == activity.id + assert notification.type == "mention" assert other_notification.activity_id == activity.id assert [%Pleroma.Marker{unread_count: 2}] = @@ -303,6 +306,14 @@ test "it doesn't create subscription notifications if the recipient cannot see t assert {:ok, []} == Notification.create_notifications(status) end + + test "it disables notifications from people who are invisible" do + author = insert(:user, invisible: true) + user = insert(:user) + + {:ok, status} = CommonAPI.post(author, %{status: "hey @#{user.nickname}"}) + refute Notification.create_notification(status, user) + end end describe "follow / follow_request notifications" do @@ -335,9 +346,12 @@ test "it creates `follow_request` notification for pending Follow activity" do # After request is accepted, the same notification is rendered with type "follow": assert {:ok, _} = CommonAPI.accept_follow_request(user, followed_user) - notification_id = notification.id - assert [%{id: ^notification_id}] = Notification.for_user(followed_user) - assert %{type: "follow"} = NotificationView.render("show.json", render_opts) + notification = + Repo.get(Notification, notification.id) + |> Repo.preload(:activity) + + assert %{type: "follow"} = + NotificationView.render("show.json", notification: notification, for: followed_user) end test "it doesn't create a notification for follow-unfollow-follow chains" do @@ -454,8 +468,7 @@ test "it sets all notifications as read up to a specified notification ID" do status: "hey again @#{other_user.nickname}!" }) - [n2, n1] = notifs = Notification.for_user(other_user) - assert length(notifs) == 2 + [n2, n1] = Notification.for_user(other_user) assert n2.id > n1.id @@ -464,7 +477,9 @@ test "it sets all notifications as read up to a specified notification ID" do status: "hey yet again @#{other_user.nickname}!" }) - Notification.set_read_up_to(other_user, n2.id) + [_, read_notification] = Notification.set_read_up_to(other_user, n2.id) + + assert read_notification.activity.object [n3, n2, n1] = Notification.for_user(other_user) @@ -648,7 +663,7 @@ test "it does not send notification to mentioned users in announces" do status: "hey @#{other_user.nickname}!" }) - {:ok, activity_two, _} = CommonAPI.repeat(activity_one.id, third_user) + {:ok, activity_two} = CommonAPI.repeat(activity_one.id, third_user) {enabled_receivers, _disabled_receivers} = Notification.get_notified_from_activity(activity_two) @@ -778,7 +793,7 @@ test "repeating an activity results in 1 notification, then 0 if the activity is assert Enum.empty?(Notification.for_user(user)) - {:ok, _, _} = CommonAPI.repeat(activity.id, other_user) + {:ok, _} = CommonAPI.repeat(activity.id, other_user) assert length(Notification.for_user(user)) == 1 @@ -795,7 +810,7 @@ test "repeating an activity results in 1 notification, then 0 if the activity is assert Enum.empty?(Notification.for_user(user)) - {:ok, _, _} = CommonAPI.repeat(activity.id, other_user) + {:ok, _} = CommonAPI.repeat(activity.id, other_user) assert length(Notification.for_user(user)) == 1 @@ -972,7 +987,9 @@ test "it returns notifications for muted user without notifications" do {:ok, _activity} = CommonAPI.post(muted, %{status: "hey @#{user.nickname}"}) - assert length(Notification.for_user(user)) == 1 + [notification] = Notification.for_user(user) + + assert notification.activity.object end test "it doesn't return notifications for muted user with notifications" do diff --git a/test/pagination_test.exs b/test/pagination_test.exs index d5b1b782d..9165427ae 100644 --- a/test/pagination_test.exs +++ b/test/pagination_test.exs @@ -21,7 +21,7 @@ test "paginates by min_id", %{notes: notes} do id = Enum.at(notes, 2).id |> Integer.to_string() %{total: total, items: paginated} = - Pagination.fetch_paginated(Object, %{"min_id" => id, "total" => true}) + Pagination.fetch_paginated(Object, %{min_id: id, total: true}) assert length(paginated) == 2 assert total == 5 @@ -31,7 +31,7 @@ test "paginates by since_id", %{notes: notes} do id = Enum.at(notes, 2).id |> Integer.to_string() %{total: total, items: paginated} = - Pagination.fetch_paginated(Object, %{"since_id" => id, "total" => true}) + Pagination.fetch_paginated(Object, %{since_id: id, total: true}) assert length(paginated) == 2 assert total == 5 @@ -41,7 +41,7 @@ test "paginates by max_id", %{notes: notes} do id = Enum.at(notes, 1).id |> Integer.to_string() %{total: total, items: paginated} = - Pagination.fetch_paginated(Object, %{"max_id" => id, "total" => true}) + Pagination.fetch_paginated(Object, %{max_id: id, total: true}) assert length(paginated) == 1 assert total == 5 @@ -50,7 +50,7 @@ test "paginates by max_id", %{notes: notes} do test "paginates by min_id & limit", %{notes: notes} do id = Enum.at(notes, 2).id |> Integer.to_string() - paginated = Pagination.fetch_paginated(Object, %{"min_id" => id, "limit" => 1}) + paginated = Pagination.fetch_paginated(Object, %{min_id: id, limit: 1}) assert length(paginated) == 1 end @@ -64,13 +64,13 @@ test "paginates by min_id & limit", %{notes: notes} do end test "paginates by limit" do - paginated = Pagination.fetch_paginated(Object, %{"limit" => 2}, :offset) + paginated = Pagination.fetch_paginated(Object, %{limit: 2}, :offset) assert length(paginated) == 2 end test "paginates by limit & offset" do - paginated = Pagination.fetch_paginated(Object, %{"limit" => 2, "offset" => 4}, :offset) + paginated = Pagination.fetch_paginated(Object, %{limit: 2, offset: 4}, :offset) assert length(paginated) == 1 end diff --git a/test/plugs/authentication_plug_test.exs b/test/plugs/authentication_plug_test.exs index c8ede71c0..777ae15ae 100644 --- a/test/plugs/authentication_plug_test.exs +++ b/test/plugs/authentication_plug_test.exs @@ -11,6 +11,7 @@ defmodule Pleroma.Plugs.AuthenticationPlugTest do alias Pleroma.User import ExUnit.CaptureLog + import Pleroma.Factory setup %{conn: conn} do user = %User{ @@ -50,16 +51,42 @@ test "with a correct password in the credentials, " <> assert PlugHelper.plug_skipped?(conn, OAuthScopesPlug) end - test "with a wrong password in the credentials, it does nothing", %{conn: conn} do + test "with a bcrypt hash, it updates to a pkbdf2 hash", %{conn: conn} do + user = insert(:user, password_hash: Bcrypt.hash_pwd_salt("123")) + assert "$2" <> _ = user.password_hash + conn = conn - |> assign(:auth_credentials, %{password: "wrong"}) - - ret_conn = - conn + |> assign(:auth_user, user) + |> assign(:auth_credentials, %{password: "123"}) |> AuthenticationPlug.call(%{}) - assert conn == ret_conn + assert conn.assigns.user.id == conn.assigns.auth_user.id + assert PlugHelper.plug_skipped?(conn, OAuthScopesPlug) + + user = User.get_by_id(user.id) + assert "$pbkdf2" <> _ = user.password_hash + end + + @tag :skip_on_mac + test "with a crypt hash, it updates to a pkbdf2 hash", %{conn: conn} do + user = + insert(:user, + password_hash: + "$6$9psBWV8gxkGOZWBz$PmfCycChoxeJ3GgGzwvhlgacb9mUoZ.KUXNCssekER4SJ7bOK53uXrHNb2e4i8yPFgSKyzaW9CcmrDXWIEMtD1" + ) + + conn = + conn + |> assign(:auth_user, user) + |> assign(:auth_credentials, %{password: "password"}) + |> AuthenticationPlug.call(%{}) + + assert conn.assigns.user.id == conn.assigns.auth_user.id + assert PlugHelper.plug_skipped?(conn, OAuthScopesPlug) + + user = User.get_by_id(user.id) + assert "$pbkdf2" <> _ = user.password_hash end describe "checkpw/2" do diff --git a/test/plugs/http_security_plug_test.exs b/test/plugs/http_security_plug_test.exs index 84e4c274f..63b4d3f31 100644 --- a/test/plugs/http_security_plug_test.exs +++ b/test/plugs/http_security_plug_test.exs @@ -67,7 +67,7 @@ test "it sends `report-to` & `report-uri` CSP response headers" do [csp] = Conn.get_resp_header(conn, "content-security-policy") - assert csp =~ ~r|report-uri https://endpoint.com; report-to csp-endpoint;| + assert csp =~ ~r|report-uri https://endpoint.com;report-to csp-endpoint;| [reply_to] = Conn.get_resp_header(conn, "reply-to") diff --git a/test/plugs/instance_static_test.exs b/test/plugs/instance_static_test.exs index b8f070d6a..be2613ad0 100644 --- a/test/plugs/instance_static_test.exs +++ b/test/plugs/instance_static_test.exs @@ -16,7 +16,7 @@ defmodule Pleroma.Web.RuntimeStaticPlugTest do test "overrides index" do bundled_index = get(build_conn(), "/") - assert html_response(bundled_index, 200) == File.read!("priv/static/index.html") + refute html_response(bundled_index, 200) == "hello world" File.write!(@dir <> "/index.html", "hello world") diff --git a/test/repo_test.exs b/test/repo_test.exs index daffc6542..92e827c95 100644 --- a/test/repo_test.exs +++ b/test/repo_test.exs @@ -4,9 +4,7 @@ defmodule Pleroma.RepoTest do use Pleroma.DataCase - import ExUnit.CaptureLog import Pleroma.Factory - import Mock alias Pleroma.User @@ -49,36 +47,4 @@ test "return error if has not assoc " do assert Repo.get_assoc(token, :user) == {:error, :not_found} end end - - describe "check_migrations_applied!" do - setup_with_mocks([ - {Ecto.Migrator, [], - [ - with_repo: fn repo, fun -> passthrough([repo, fun]) end, - migrations: fn Pleroma.Repo -> - [ - {:up, 20_191_128_153_944, "fix_missing_following_count"}, - {:up, 20_191_203_043_610, "create_report_notes"}, - {:down, 20_191_220_174_645, "add_scopes_to_pleroma_feo_auth_records"} - ] - end - ]} - ]) do - :ok - end - - setup do: clear_config([:i_am_aware_this_may_cause_data_loss, :disable_migration_check]) - - test "raises if it detects unapplied migrations" do - assert_raise Pleroma.Repo.UnappliedMigrationsError, fn -> - capture_log(&Repo.check_migrations_applied!/0) - end - end - - test "doesn't do anything if disabled" do - Pleroma.Config.put([:i_am_aware_this_may_cause_data_loss, :disable_migration_check], true) - - assert :ok == Repo.check_migrations_applied!() - end - end end diff --git a/test/stats_test.exs b/test/stats_test.exs index 4b76e2e78..f09d8d31a 100644 --- a/test/stats_test.exs +++ b/test/stats_test.exs @@ -17,10 +17,11 @@ test "it ignores internal users" do end end - describe "status visibility count" do + describe "status visibility sum count" do test "on new status" do + instance2 = "instance2.tld" user = insert(:user) - other_user = insert(:user) + other_user = insert(:user, %{ap_id: "https://#{instance2}/@actor"}) CommonAPI.post(user, %{visibility: "public", status: "hey"}) @@ -45,24 +46,24 @@ test "on new status" do }) end) - assert %{direct: 3, private: 4, public: 1, unlisted: 2} = + assert %{"direct" => 3, "private" => 4, "public" => 1, "unlisted" => 2} = Pleroma.Stats.get_status_visibility_count() end test "on status delete" do user = insert(:user) {:ok, activity} = CommonAPI.post(user, %{visibility: "public", status: "hey"}) - assert %{public: 1} = Pleroma.Stats.get_status_visibility_count() + assert %{"public" => 1} = Pleroma.Stats.get_status_visibility_count() CommonAPI.delete(activity.id, user) - assert %{public: 0} = Pleroma.Stats.get_status_visibility_count() + assert %{"public" => 0} = Pleroma.Stats.get_status_visibility_count() end test "on status visibility update" do user = insert(:user) {:ok, activity} = CommonAPI.post(user, %{visibility: "public", status: "hey"}) - assert %{public: 1, private: 0} = Pleroma.Stats.get_status_visibility_count() + assert %{"public" => 1, "private" => 0} = Pleroma.Stats.get_status_visibility_count() {:ok, _} = CommonAPI.update_activity_scope(activity.id, %{visibility: "private"}) - assert %{public: 0, private: 1} = Pleroma.Stats.get_status_visibility_count() + assert %{"public" => 0, "private" => 1} = Pleroma.Stats.get_status_visibility_count() end test "doesn't count unrelated activities" do @@ -73,8 +74,46 @@ test "doesn't count unrelated activities" do CommonAPI.favorite(other_user, activity.id) CommonAPI.repeat(activity.id, other_user) - assert %{direct: 0, private: 0, public: 1, unlisted: 0} = + assert %{"direct" => 0, "private" => 0, "public" => 1, "unlisted" => 0} = Pleroma.Stats.get_status_visibility_count() end end + + describe "status visibility by instance count" do + test "single instance" do + local_instance = Pleroma.Web.Endpoint.url() |> String.split("//") |> Enum.at(1) + instance2 = "instance2.tld" + user1 = insert(:user) + user2 = insert(:user, %{ap_id: "https://#{instance2}/@actor"}) + + CommonAPI.post(user1, %{visibility: "public", status: "hey"}) + + Enum.each(1..5, fn _ -> + CommonAPI.post(user1, %{ + visibility: "unlisted", + status: "hey" + }) + end) + + Enum.each(1..10, fn _ -> + CommonAPI.post(user1, %{ + visibility: "direct", + status: "hey @#{user2.nickname}" + }) + end) + + Enum.each(1..20, fn _ -> + CommonAPI.post(user2, %{ + visibility: "private", + status: "hey" + }) + end) + + assert %{"direct" => 10, "private" => 0, "public" => 1, "unlisted" => 5} = + Pleroma.Stats.get_status_visibility_count(local_instance) + + assert %{"direct" => 0, "private" => 20, "public" => 0, "unlisted" => 0} = + Pleroma.Stats.get_status_visibility_count(instance2) + end + end end diff --git a/test/support/api_spec_helpers.ex b/test/support/api_spec_helpers.ex index 80c69c788..46388f92c 100644 --- a/test/support/api_spec_helpers.ex +++ b/test/support/api_spec_helpers.ex @@ -51,7 +51,7 @@ def api_operations do |> Map.take([:delete, :get, :head, :options, :patch, :post, :put, :trace]) |> Map.values() |> Enum.reject(&is_nil/1) - |> Enum.uniq() end) + |> Enum.uniq() end end diff --git a/test/support/factory.ex b/test/support/factory.ex index d4284831c..6e22b66a4 100644 --- a/test/support/factory.ex +++ b/test/support/factory.ex @@ -34,14 +34,16 @@ def user_factory do last_digest_emailed_at: NaiveDateTime.utc_now(), last_refreshed_at: NaiveDateTime.utc_now(), notification_settings: %Pleroma.User.NotificationSetting{}, - multi_factor_authentication_settings: %Pleroma.MFA.Settings{} + multi_factor_authentication_settings: %Pleroma.MFA.Settings{}, + ap_enabled: true } %{ user | ap_id: User.ap_id(user), follower_address: User.ap_followers(user), - following_address: User.ap_following(user) + following_address: User.ap_following(user), + raw_bio: user.bio } end @@ -395,24 +397,17 @@ def registration_factory do } end - def config_factory do + def config_factory(attrs \\ %{}) do %Pleroma.ConfigDB{ - key: - sequence(:key, fn key -> - # Atom dynamic registration hack in tests - "some_key_#{key}" - |> String.to_atom() - |> inspect() - end), - group: ":pleroma", + key: sequence(:key, &String.to_atom("some_key_#{&1}")), + group: :pleroma, value: sequence( :value, - fn key -> - :erlang.term_to_binary(%{another_key: "#{key}somevalue", another: "#{key}somevalue"}) - end + &%{another_key: "#{&1}somevalue", another: "#{&1}somevalue"} ) } + |> merge_attributes(attrs) end def marker_factory do diff --git a/test/support/http_request_mock.ex b/test/support/http_request_mock.ex index 3a95e92da..3d5128835 100644 --- a/test/support/http_request_mock.ex +++ b/test/support/http_request_mock.ex @@ -1291,6 +1291,10 @@ def get("https://skippers-bin.com/notes/7x9tmrp97i", _, _, _) do }} end + def get("https://example.org/emoji/firedfox.png", _, _, _) do + {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/image.jpg")}} + end + def get("https://skippers-bin.com/users/7v1w1r8ce6", _, _, _) do {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/tesla_mock/sjw.json")}} end diff --git a/test/tasks/config_test.exs b/test/tasks/config_test.exs index 04bc947a9..71f36c0e3 100644 --- a/test/tasks/config_test.exs +++ b/test/tasks/config_test.exs @@ -5,6 +5,8 @@ defmodule Mix.Tasks.Pleroma.ConfigTest do use Pleroma.DataCase + import Pleroma.Factory + alias Pleroma.ConfigDB alias Pleroma.Repo @@ -48,25 +50,21 @@ test "filtered settings are migrated to db" do config3 = ConfigDB.get_by_params(%{group: ":quack", key: ":level"}) refute ConfigDB.get_by_params(%{group: ":pleroma", key: "Pleroma.Repo"}) refute ConfigDB.get_by_params(%{group: ":postgrex", key: ":json_library"}) + refute ConfigDB.get_by_params(%{group: ":pleroma", key: ":database"}) - assert ConfigDB.from_binary(config1.value) == [key: "value", key2: [Repo]] - assert ConfigDB.from_binary(config2.value) == [key: "value2", key2: ["Activity"]] - assert ConfigDB.from_binary(config3.value) == :info + assert config1.value == [key: "value", key2: [Repo]] + assert config2.value == [key: "value2", key2: ["Activity"]] + assert config3.value == :info end test "config table is truncated before migration" do - ConfigDB.create(%{ - group: ":pleroma", - key: ":first_setting", - value: [key: "value", key2: ["Activity"]] - }) - + insert(:config, key: :first_setting, value: [key: "value", key2: ["Activity"]]) assert Repo.aggregate(ConfigDB, :count, :id) == 1 Mix.Tasks.Pleroma.Config.migrate_to_db("test/fixtures/config/temp.secret.exs") config = ConfigDB.get_by_params(%{group: ":pleroma", key: ":first_setting"}) - assert ConfigDB.from_binary(config.value) == [key: "value", key2: [Repo]] + assert config.value == [key: "value", key2: [Repo]] end end @@ -82,19 +80,9 @@ test "config table is truncated before migration" do end test "settings are migrated to file and deleted from db", %{temp_file: temp_file} do - ConfigDB.create(%{ - group: ":pleroma", - key: ":setting_first", - value: [key: "value", key2: ["Activity"]] - }) - - ConfigDB.create(%{ - group: ":pleroma", - key: ":setting_second", - value: [key: "value2", key2: [Repo]] - }) - - ConfigDB.create(%{group: ":quack", key: ":level", value: :info}) + insert(:config, key: :setting_first, value: [key: "value", key2: ["Activity"]]) + insert(:config, key: :setting_second, value: [key: "value2", key2: [Repo]]) + insert(:config, group: :quack, key: :level, value: :info) Mix.Tasks.Pleroma.Config.run(["migrate_from_db", "--env", "temp", "-d"]) @@ -107,9 +95,8 @@ test "settings are migrated to file and deleted from db", %{temp_file: temp_file end test "load a settings with large values and pass to file", %{temp_file: temp_file} do - ConfigDB.create(%{ - group: ":pleroma", - key: ":instance", + insert(:config, + key: :instance, value: [ name: "Pleroma", email: "example@example.com", @@ -134,14 +121,11 @@ test "load a settings with large values and pass to file", %{temp_file: temp_fil federation_reachability_timeout_days: 7, federation_publisher_modules: [Pleroma.Web.ActivityPub.Publisher], allow_relay: true, - rewrite_policy: Pleroma.Web.ActivityPub.MRF.NoOpPolicy, public: true, quarantined_instances: [], managed_config: true, static_dir: "instance/static/", allowed_post_formats: ["text/plain", "text/html", "text/markdown", "text/bbcode"], - mrf_transparency: true, - mrf_transparency_exclusions: [], autofollowed_nicknames: [], max_pinned_statuses: 1, attachment_links: false, @@ -163,7 +147,6 @@ test "load a settings with large values and pass to file", %{temp_file: temp_fil extended_nickname_format: true, multi_factor_authentication: [ totp: [ - # digits 6 or 8 digits: 6, period: 30 ], @@ -173,7 +156,7 @@ test "load a settings with large values and pass to file", %{temp_file: temp_fil ] ] ] - }) + ) Mix.Tasks.Pleroma.Config.run(["migrate_from_db", "--env", "temp", "-d"]) @@ -189,7 +172,7 @@ test "load a settings with large values and pass to file", %{temp_file: temp_fil end assert file == - "#{header}\n\nconfig :pleroma, :instance,\n name: \"Pleroma\",\n email: \"example@example.com\",\n notify_email: \"noreply@example.com\",\n description: \"A Pleroma instance, an alternative fediverse server\",\n limit: 5000,\n chat_limit: 5000,\n remote_limit: 100_000,\n upload_limit: 16_000_000,\n avatar_upload_limit: 2_000_000,\n background_upload_limit: 4_000_000,\n banner_upload_limit: 4_000_000,\n poll_limits: %{\n max_expiration: 31_536_000,\n max_option_chars: 200,\n max_options: 20,\n min_expiration: 0\n },\n registrations_open: true,\n federating: true,\n federation_incoming_replies_max_depth: 100,\n federation_reachability_timeout_days: 7,\n federation_publisher_modules: [Pleroma.Web.ActivityPub.Publisher],\n allow_relay: true,\n rewrite_policy: Pleroma.Web.ActivityPub.MRF.NoOpPolicy,\n public: true,\n quarantined_instances: [],\n managed_config: true,\n static_dir: \"instance/static/\",\n allowed_post_formats: [\"text/plain\", \"text/html\", \"text/markdown\", \"text/bbcode\"],\n mrf_transparency: true,\n mrf_transparency_exclusions: [],\n autofollowed_nicknames: [],\n max_pinned_statuses: 1,\n attachment_links: false,\n welcome_user_nickname: nil,\n welcome_message: nil,\n max_report_comment_size: 1000,\n safe_dm_mentions: false,\n healthcheck: false,\n remote_post_retention_days: 90,\n skip_thread_containment: true,\n limit_to_local_content: :unauthenticated,\n user_bio_length: 5000,\n user_name_length: 100,\n max_account_fields: 10,\n max_remote_account_fields: 20,\n account_field_name_length: 512,\n account_field_value_length: 2048,\n external_user_synchronization: true,\n extended_nickname_format: true,\n multi_factor_authentication: [\n totp: [digits: 6, period: 30],\n backup_codes: [number: 2, length: 6]\n ]\n" + "#{header}\n\nconfig :pleroma, :instance,\n name: \"Pleroma\",\n email: \"example@example.com\",\n notify_email: \"noreply@example.com\",\n description: \"A Pleroma instance, an alternative fediverse server\",\n limit: 5000,\n chat_limit: 5000,\n remote_limit: 100_000,\n upload_limit: 16_000_000,\n avatar_upload_limit: 2_000_000,\n background_upload_limit: 4_000_000,\n banner_upload_limit: 4_000_000,\n poll_limits: %{\n max_expiration: 31_536_000,\n max_option_chars: 200,\n max_options: 20,\n min_expiration: 0\n },\n registrations_open: true,\n federating: true,\n federation_incoming_replies_max_depth: 100,\n federation_reachability_timeout_days: 7,\n federation_publisher_modules: [Pleroma.Web.ActivityPub.Publisher],\n allow_relay: true,\n public: true,\n quarantined_instances: [],\n managed_config: true,\n static_dir: \"instance/static/\",\n allowed_post_formats: [\"text/plain\", \"text/html\", \"text/markdown\", \"text/bbcode\"],\n autofollowed_nicknames: [],\n max_pinned_statuses: 1,\n attachment_links: false,\n welcome_user_nickname: nil,\n welcome_message: nil,\n max_report_comment_size: 1000,\n safe_dm_mentions: false,\n healthcheck: false,\n remote_post_retention_days: 90,\n skip_thread_containment: true,\n limit_to_local_content: :unauthenticated,\n user_bio_length: 5000,\n user_name_length: 100,\n max_account_fields: 10,\n max_remote_account_fields: 20,\n account_field_name_length: 512,\n account_field_value_length: 2048,\n external_user_synchronization: true,\n extended_nickname_format: true,\n multi_factor_authentication: [\n totp: [digits: 6, period: 30],\n backup_codes: [number: 2, length: 6]\n ]\n" end end end diff --git a/test/tasks/emoji_test.exs b/test/tasks/emoji_test.exs index f5de3ef0e..499f098c2 100644 --- a/test/tasks/emoji_test.exs +++ b/test/tasks/emoji_test.exs @@ -73,6 +73,19 @@ test "download pack from default manifest" do on_exit(fn -> File.rm_rf!("test/instance_static/emoji/finmoji") end) end + test "install local emoji pack" do + assert capture_io(fn -> + Emoji.run([ + "get-packs", + "local", + "--manifest", + "test/instance_static/local_pack/manifest.json" + ]) + end) =~ "Writing pack.json for" + + on_exit(fn -> File.rm_rf!("test/instance_static/emoji/local") end) + end + test "pack not found" do mock(fn %{ diff --git a/test/tasks/instance_test.exs b/test/tasks/instance_test.exs index f6a4ba508..3b4c041d9 100644 --- a/test/tasks/instance_test.exs +++ b/test/tasks/instance_test.exs @@ -63,7 +63,7 @@ test "running gen" do "--uploads-dir", "test/uploads", "--static-dir", - "instance/static/" + "./test/../test/instance/static/" ]) end @@ -83,6 +83,7 @@ test "running gen" do assert generated_config =~ "configurable_from_database: true" assert generated_config =~ "http: [ip: {127, 0, 0, 1}, port: 4000]" assert File.read!(tmp_path() <> "setup.psql") == generated_setup_psql() + assert File.exists?(Path.expand("./test/instance/static/robots.txt")) end defp generated_setup_psql do diff --git a/test/tasks/refresh_counter_cache_test.exs b/test/tasks/refresh_counter_cache_test.exs index 851971a77..6a1a9ac17 100644 --- a/test/tasks/refresh_counter_cache_test.exs +++ b/test/tasks/refresh_counter_cache_test.exs @@ -37,7 +37,7 @@ test "counts statuses" do assert capture_io(fn -> Mix.Tasks.Pleroma.RefreshCounterCache.run([]) end) =~ "Done\n" - assert %{direct: 3, private: 4, public: 1, unlisted: 2} = + assert %{"direct" => 3, "private" => 4, "public" => 1, "unlisted" => 2} = Pleroma.Stats.get_status_visibility_count() end end diff --git a/test/tasks/relay_test.exs b/test/tasks/relay_test.exs index d3d88467d..a8ba0658d 100644 --- a/test/tasks/relay_test.exs +++ b/test/tasks/relay_test.exs @@ -62,10 +62,11 @@ test "relay is unfollowed" do [undo_activity] = ActivityPub.fetch_activities([], %{ - "type" => "Undo", - "actor_id" => follower_id, - "limit" => 1, - "skip_preload" => true + type: "Undo", + actor_id: follower_id, + limit: 1, + skip_preload: true, + invisible_actors: true }) assert undo_activity.data["type"] == "Undo" diff --git a/test/tasks/user_test.exs b/test/tasks/user_test.exs index 4aa873f0b..9220d23fc 100644 --- a/test/tasks/user_test.exs +++ b/test/tasks/user_test.exs @@ -4,6 +4,7 @@ defmodule Mix.Tasks.Pleroma.UserTest do alias Pleroma.Activity + alias Pleroma.MFA alias Pleroma.Object alias Pleroma.Repo alias Pleroma.Tests.ObanHelpers @@ -91,6 +92,7 @@ test "user is not created" do describe "running rm" do test "user is deleted" do + clear_config([:instance, :federating], true) user = insert(:user) with_mock Pleroma.Web.Federator, @@ -108,8 +110,10 @@ test "user is deleted" do test "a remote user's create activity is deleted when the object has been pruned" do user = insert(:user) - {:ok, post} = CommonAPI.post(user, %{status: "uguu"}) + + clear_config([:instance, :federating], true) + object = Object.normalize(post) Object.prune(object) @@ -169,31 +173,31 @@ test "no user to toggle" do end end - describe "running unsubscribe" do + describe "running deactivate" do test "user is unsubscribed" do followed = insert(:user) + remote_followed = insert(:user, local: false) user = insert(:user) - User.follow(user, followed, :follow_accept) - Mix.Tasks.Pleroma.User.run(["unsubscribe", user.nickname]) + User.follow(user, followed, :follow_accept) + User.follow(user, remote_followed, :follow_accept) + + Mix.Tasks.Pleroma.User.run(["deactivate", user.nickname]) assert_received {:mix_shell, :info, [message]} assert message =~ "Deactivating" - assert_received {:mix_shell, :info, [message]} - assert message =~ "Unsubscribing" - # Note that the task has delay :timer.sleep(500) assert_received {:mix_shell, :info, [message]} assert message =~ "Successfully unsubscribed" user = User.get_cached_by_nickname(user.nickname) - assert Enum.empty?(User.get_friends(user)) + assert Enum.empty?(Enum.filter(User.get_friends(user), & &1.local)) assert user.deactivated end - test "no user to unsubscribe" do - Mix.Tasks.Pleroma.User.run(["unsubscribe", "nonexistent"]) + test "no user to deactivate" do + Mix.Tasks.Pleroma.User.run(["deactivate", "nonexistent"]) assert_received {:mix_shell, :error, [message]} assert message =~ "No user" @@ -275,6 +279,35 @@ test "no user to reset password" do end end + describe "running reset_mfa" do + test "disables MFA" do + user = + insert(:user, + multi_factor_authentication_settings: %MFA.Settings{ + enabled: true, + totp: %MFA.Settings.TOTP{secret: "xx", confirmed: true} + } + ) + + Mix.Tasks.Pleroma.User.run(["reset_mfa", user.nickname]) + + assert_received {:mix_shell, :info, [message]} + assert message == "Multi-Factor Authentication disabled for #{user.nickname}" + + assert %{enabled: false, totp: false} == + user.nickname + |> User.get_cached_by_nickname() + |> MFA.mfa_settings() + end + + test "no user to reset MFA" do + Mix.Tasks.Pleroma.User.run(["reset_password", "nonexistent"]) + + assert_received {:mix_shell, :error, [message]} + assert message =~ "No local user" + end + end + describe "running invite" do test "invite token is generated" do assert capture_io(fn -> diff --git a/test/upload/filter/mogrify_test.exs b/test/upload/filter/mogrify_test.exs index b6a463e8c..62ca30487 100644 --- a/test/upload/filter/mogrify_test.exs +++ b/test/upload/filter/mogrify_test.exs @@ -6,21 +6,17 @@ defmodule Pleroma.Upload.Filter.MogrifyTest do use Pleroma.DataCase import Mock - alias Pleroma.Config - alias Pleroma.Upload alias Pleroma.Upload.Filter - setup do: clear_config([Filter.Mogrify, :args]) - test "apply mogrify filter" do - Config.put([Filter.Mogrify, :args], [{"tint", "40"}]) + clear_config(Filter.Mogrify, args: [{"tint", "40"}]) File.cp!( "test/fixtures/image.jpg", "test/fixtures/image_tmp.jpg" ) - upload = %Upload{ + upload = %Pleroma.Upload{ name: "an… image.jpg", content_type: "image/jpg", path: Path.absname("test/fixtures/image_tmp.jpg"), diff --git a/test/upload_test.exs b/test/upload_test.exs index 060a940bb..2abf0edec 100644 --- a/test/upload_test.exs +++ b/test/upload_test.exs @@ -54,6 +54,7 @@ test "it returns file" do %{ "name" => "image.jpg", "type" => "Document", + "mediaType" => "image/jpeg", "url" => [ %{ "href" => "http://localhost:4001/media/post-process-file.jpg", diff --git a/test/user_test.exs b/test/user_test.exs index 6b9df60a4..9b66f3f51 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -199,6 +199,16 @@ test "doesn't return already accepted or duplicate follow requests" do assert [^pending_follower] = User.get_follow_requests(locked) end + test "doesn't return follow requests for deactivated accounts" do + locked = insert(:user, locked: true) + pending_follower = insert(:user, %{deactivated: true}) + + CommonAPI.follow(pending_follower, locked) + + assert true == pending_follower.deactivated + assert [] = User.get_follow_requests(locked) + end + test "clears follow requests when requester is blocked" do followed = insert(:user, locked: true) follower = insert(:user) @@ -555,6 +565,7 @@ test "gets an existing user by fully qualified nickname, case insensitive" do assert user == fetched_user end + @tag capture_log: true test "returns nil if no user could be fetched" do {:error, fetched_user} = User.get_or_fetch_by_nickname("nonexistant@social.heldscal.la") assert fetched_user == "not found nonexistant@social.heldscal.la" @@ -585,6 +596,26 @@ test "updates an existing user, if stale" do refute user.last_refreshed_at == orig_user.last_refreshed_at end + + @tag capture_log: true + test "it returns the old user if stale, but unfetchable" do + a_week_ago = NaiveDateTime.add(NaiveDateTime.utc_now(), -604_800) + + orig_user = + insert( + :user, + local: false, + nickname: "admin@mastodon.example.org", + ap_id: "http://mastodon.example.org/users/raymoo", + last_refreshed_at: a_week_ago + ) + + assert orig_user.last_refreshed_at == a_week_ago + + {:ok, user} = User.get_or_fetch_by_ap_id("http://mastodon.example.org/users/raymoo") + + assert user.last_refreshed_at == orig_user.last_refreshed_at + end end test "returns an ap_id for a user" do @@ -991,7 +1022,7 @@ test "works for announces" do user = insert(:user, local: true) {:ok, activity} = CommonAPI.post(actor, %{status: "hello"}) - {:ok, announce, _} = CommonAPI.repeat(activity.id, user) + {:ok, announce} = CommonAPI.repeat(activity.id, user) recipients = User.get_recipients_from_activity(announce) @@ -1101,7 +1132,7 @@ test "hide a user's statuses from timelines and notifications" do assert [%{activity | thread_muted?: CommonAPI.thread_muted?(user2, activity)}] == ActivityPub.fetch_activities([user2.ap_id | User.following(user2)], %{ - "user" => user2 + user: user2 }) {:ok, _user} = User.deactivate(user) @@ -1111,7 +1142,7 @@ test "hide a user's statuses from timelines and notifications" do assert [] == ActivityPub.fetch_activities([user2.ap_id | User.following(user2)], %{ - "user" => user2 + user: user2 }) end end @@ -1138,6 +1169,9 @@ test "it deactivates a user, all follow relationships and all activities", %{use follower = insert(:user) {:ok, follower} = User.follow(follower, user) + locked_user = insert(:user, name: "locked", locked: true) + {:ok, _} = User.follow(user, locked_user, :follow_pending) + object = insert(:note, user: user) activity = insert(:note_activity, user: user, note: object) @@ -1146,7 +1180,7 @@ test "it deactivates a user, all follow relationships and all activities", %{use {:ok, like} = CommonAPI.favorite(user, activity_two.id) {:ok, like_two} = CommonAPI.favorite(follower, activity.id) - {:ok, repeat, _} = CommonAPI.repeat(activity_two.id, user) + {:ok, repeat} = CommonAPI.repeat(activity_two.id, user) {:ok, job} = User.delete(user) {:ok, _user} = ObanHelpers.perform(job) @@ -1156,6 +1190,8 @@ test "it deactivates a user, all follow relationships and all activities", %{use refute User.following?(follower, user) assert %{deactivated: true} = User.get_by_id(user.id) + assert [] == User.get_follow_requests(locked_user) + user_activities = user.ap_id |> Activity.Queries.by_actor() @@ -1171,6 +1207,33 @@ test "it deactivates a user, all follow relationships and all activities", %{use end end + describe "delete/1 when confirmation is pending" do + setup do + user = insert(:user, confirmation_pending: true) + {:ok, user: user} + end + + test "deletes user from database when activation required", %{user: user} do + clear_config([:instance, :account_activation_required], true) + + {:ok, job} = User.delete(user) + {:ok, _} = ObanHelpers.perform(job) + + refute User.get_cached_by_id(user.id) + refute User.get_by_id(user.id) + end + + test "deactivates user when activation is not required", %{user: user} do + clear_config([:instance, :account_activation_required], false) + + {:ok, job} = User.delete(user) + {:ok, _} = ObanHelpers.perform(job) + + assert %{deactivated: true} = User.get_cached_by_id(user.id) + assert %{deactivated: true} = User.get_by_id(user.id) + end + end + test "get_public_key_for_ap_id fetches a user that's not in the db" do assert {:ok, _key} = User.get_public_key_for_ap_id("http://mastodon.example.org/users/admin") end @@ -1289,11 +1352,11 @@ test "returns false for a non-invisible user" do end end - describe "visible_for?/2" do + describe "visible_for/2" do test "returns true when the account is itself" do user = insert(:user, local: true) - assert User.visible_for?(user, user) + assert User.visible_for(user, user) == :visible end test "returns false when the account is unauthenticated and auth is required" do @@ -1302,14 +1365,14 @@ test "returns false when the account is unauthenticated and auth is required" do user = insert(:user, local: true, confirmation_pending: true) other_user = insert(:user, local: true) - refute User.visible_for?(user, other_user) + refute User.visible_for(user, other_user) == :visible end test "returns true when the account is unauthenticated and auth is not required" do user = insert(:user, local: true, confirmation_pending: true) other_user = insert(:user, local: true) - assert User.visible_for?(user, other_user) + assert User.visible_for(user, other_user) == :visible end test "returns true when the account is unauthenticated and being viewed by a privileged account (auth required)" do @@ -1318,7 +1381,7 @@ test "returns true when the account is unauthenticated and being viewed by a pri user = insert(:user, local: true, confirmation_pending: true) other_user = insert(:user, local: true, is_admin: true) - assert User.visible_for?(user, other_user) + assert User.visible_for(user, other_user) == :visible end end @@ -1749,4 +1812,16 @@ test "Notifications are updated", %{user: user} do assert result.email_notifications["digest"] == false end end + + test "avatar fallback" do + user = insert(:user) + assert User.avatar_url(user) =~ "/images/avi.png" + + clear_config([:assets, :default_user_avatar], "avatar.png") + + user = User.get_cached_by_nickname_or_id(user.nickname) + assert User.avatar_url(user) =~ "avatar.png" + + assert User.avatar_url(user, no_default: true) == nil + end end diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs index c432c90e3..e722f7c04 100644 --- a/test/web/activity_pub/activity_pub_controller_test.exs +++ b/test/web/activity_pub/activity_pub_controller_test.exs @@ -6,7 +6,6 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do use Pleroma.Web.ConnCase use Oban.Testing, repo: Pleroma.Repo - import Pleroma.Factory alias Pleroma.Activity alias Pleroma.Config alias Pleroma.Delivery @@ -14,13 +13,19 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do alias Pleroma.Object alias Pleroma.Tests.ObanHelpers alias Pleroma.User + alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.ObjectView alias Pleroma.Web.ActivityPub.Relay alias Pleroma.Web.ActivityPub.UserView alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.CommonAPI + alias Pleroma.Web.Endpoint alias Pleroma.Workers.ReceiverWorker + import Pleroma.Factory + + require Pleroma.Constants + setup_all do Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) :ok @@ -168,6 +173,60 @@ test "it requires authentication if instance is NOT federating", %{ end end + describe "mastodon compatibility routes" do + test "it returns a json representation of the object with accept application/json", %{ + conn: conn + } do + {:ok, object} = + %{ + "type" => "Note", + "content" => "hey", + "id" => Endpoint.url() <> "/users/raymoo/statuses/999999999", + "actor" => Endpoint.url() <> "/users/raymoo", + "to" => [Pleroma.Constants.as_public()] + } + |> Object.create() + + conn = + conn + |> put_req_header("accept", "application/json") + |> get("/users/raymoo/statuses/999999999") + + assert json_response(conn, 200) == ObjectView.render("object.json", %{object: object}) + end + + test "it returns a json representation of the activity with accept application/json", %{ + conn: conn + } do + {:ok, object} = + %{ + "type" => "Note", + "content" => "hey", + "id" => Endpoint.url() <> "/users/raymoo/statuses/999999999", + "actor" => Endpoint.url() <> "/users/raymoo", + "to" => [Pleroma.Constants.as_public()] + } + |> Object.create() + + {:ok, activity, _} = + %{ + "id" => object.data["id"] <> "/activity", + "type" => "Create", + "object" => object.data["id"], + "actor" => object.data["actor"], + "to" => object.data["to"] + } + |> ActivityPub.persist(local: true) + + conn = + conn + |> put_req_header("accept", "application/json") + |> get("/users/raymoo/statuses/999999999/activity") + + assert json_response(conn, 200) == ObjectView.render("object.json", %{object: activity}) + end + end + describe "/objects/:uuid" do test "it returns a json representation of the object with accept application/json", %{ conn: conn @@ -392,6 +451,36 @@ test "it inserts an incoming activity into the database", %{conn: conn} do assert Activity.get_by_ap_id(data["id"]) end + @tag capture_log: true + test "it inserts an incoming activity into the database" <> + "even if we can't fetch the user but have it in our db", + %{conn: conn} do + user = + insert(:user, + ap_id: "https://mastodon.example.org/users/raymoo", + ap_enabled: true, + local: false, + last_refreshed_at: nil + ) + + data = + File.read!("test/fixtures/mastodon-post-activity.json") + |> Poison.decode!() + |> Map.put("actor", user.ap_id) + |> put_in(["object", "attridbutedTo"], user.ap_id) + + conn = + conn + |> assign(:valid_signature, true) + |> put_req_header("content-type", "application/activity+json") + |> post("/inbox", data) + + assert "ok" == json_response(conn, 200) + + ObanHelpers.perform(all_enqueued(worker: ReceiverWorker)) + assert Activity.get_by_ap_id(data["id"]) + end + test "it clears `unreachable` federation status of the sender", %{conn: conn} do data = File.read!("test/fixtures/mastodon-post-activity.json") |> Poison.decode!() @@ -447,6 +536,7 @@ test "accept follow activity", %{conn: conn} do assert_receive {:mix_shell, :info, ["relay.mastodon.host"]} end + @tag capture_log: true test "without valid signature, " <> "it only accepts Create activities and requires enabled federation", %{conn: conn} do @@ -559,11 +649,14 @@ test "it accepts messages with bcc as string instead of array", %{conn: conn, da test "it accepts announces with to as string instead of array", %{conn: conn} do user = insert(:user) + {:ok, post} = CommonAPI.post(user, %{status: "hey"}) + announcer = insert(:user, local: false) + data = %{ "@context" => "https://www.w3.org/ns/activitystreams", - "actor" => "http://mastodon.example.org/users/admin", - "id" => "http://mastodon.example.org/users/admin/statuses/19512778738411822/activity", - "object" => "https://mastodon.social/users/emelie/statuses/101849165031453009", + "actor" => announcer.ap_id, + "id" => "#{announcer.ap_id}/statuses/19512778738411822/activity", + "object" => post.data["object"], "to" => "https://www.w3.org/ns/activitystreams#Public", "cc" => [user.ap_id], "type" => "Announce" @@ -715,17 +808,63 @@ test "it requires authentication", %{conn: conn} do end describe "GET /users/:nickname/outbox" do + test "it paginates correctly", %{conn: conn} do + user = insert(:user) + conn = assign(conn, :user, user) + outbox_endpoint = user.ap_id <> "/outbox" + + _posts = + for i <- 0..25 do + {:ok, activity} = CommonAPI.post(user, %{status: "post #{i}"}) + activity + end + + result = + conn + |> put_req_header("accept", "application/activity+json") + |> get(outbox_endpoint <> "?page=true") + |> json_response(200) + + result_ids = Enum.map(result["orderedItems"], fn x -> x["id"] end) + assert length(result["orderedItems"]) == 20 + assert length(result_ids) == 20 + assert result["next"] + assert String.starts_with?(result["next"], outbox_endpoint) + + result_next = + conn + |> put_req_header("accept", "application/activity+json") + |> get(result["next"]) + |> json_response(200) + + result_next_ids = Enum.map(result_next["orderedItems"], fn x -> x["id"] end) + assert length(result_next["orderedItems"]) == 6 + assert length(result_next_ids) == 6 + refute Enum.find(result_next_ids, fn x -> x in result_ids end) + refute Enum.find(result_ids, fn x -> x in result_next_ids end) + assert String.starts_with?(result["id"], outbox_endpoint) + + result_next_again = + conn + |> put_req_header("accept", "application/activity+json") + |> get(result_next["id"]) + |> json_response(200) + + assert result_next == result_next_again + end + test "it returns 200 even if there're no activities", %{conn: conn} do user = insert(:user) + outbox_endpoint = user.ap_id <> "/outbox" conn = conn |> assign(:user, user) |> put_req_header("accept", "application/activity+json") - |> get("/users/#{user.nickname}/outbox") + |> get(outbox_endpoint) result = json_response(conn, 200) - assert user.ap_id <> "/outbox" == result["id"] + assert outbox_endpoint == result["id"] end test "it returns a note activity in a collection", %{conn: conn} do diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs index 77bd07edf..575e0c5db 100644 --- a/test/web/activity_pub/activity_pub_test.exs +++ b/test/web/activity_pub/activity_pub_test.exs @@ -82,30 +82,28 @@ test "it restricts by the appropriate visibility" do {:ok, private_activity} = CommonAPI.post(user, %{status: ".", visibility: "private"}) - activities = - ActivityPub.fetch_activities([], %{:visibility => "direct", "actor_id" => user.ap_id}) + activities = ActivityPub.fetch_activities([], %{visibility: "direct", actor_id: user.ap_id}) assert activities == [direct_activity] activities = - ActivityPub.fetch_activities([], %{:visibility => "unlisted", "actor_id" => user.ap_id}) + ActivityPub.fetch_activities([], %{visibility: "unlisted", actor_id: user.ap_id}) assert activities == [unlisted_activity] activities = - ActivityPub.fetch_activities([], %{:visibility => "private", "actor_id" => user.ap_id}) + ActivityPub.fetch_activities([], %{visibility: "private", actor_id: user.ap_id}) assert activities == [private_activity] - activities = - ActivityPub.fetch_activities([], %{:visibility => "public", "actor_id" => user.ap_id}) + activities = ActivityPub.fetch_activities([], %{visibility: "public", actor_id: user.ap_id}) assert activities == [public_activity] activities = ActivityPub.fetch_activities([], %{ - :visibility => ~w[private public], - "actor_id" => user.ap_id + visibility: ~w[private public], + actor_id: user.ap_id }) assert activities == [public_activity, private_activity] @@ -126,8 +124,8 @@ test "it excludes by the appropriate visibility" do activities = ActivityPub.fetch_activities([], %{ - "exclude_visibilities" => "direct", - "actor_id" => user.ap_id + exclude_visibilities: "direct", + actor_id: user.ap_id }) assert public_activity in activities @@ -137,8 +135,8 @@ test "it excludes by the appropriate visibility" do activities = ActivityPub.fetch_activities([], %{ - "exclude_visibilities" => "unlisted", - "actor_id" => user.ap_id + exclude_visibilities: "unlisted", + actor_id: user.ap_id }) assert public_activity in activities @@ -148,8 +146,8 @@ test "it excludes by the appropriate visibility" do activities = ActivityPub.fetch_activities([], %{ - "exclude_visibilities" => "private", - "actor_id" => user.ap_id + exclude_visibilities: "private", + actor_id: user.ap_id }) assert public_activity in activities @@ -159,8 +157,8 @@ test "it excludes by the appropriate visibility" do activities = ActivityPub.fetch_activities([], %{ - "exclude_visibilities" => "public", - "actor_id" => user.ap_id + exclude_visibilities: "public", + actor_id: user.ap_id }) refute public_activity in activities @@ -193,23 +191,22 @@ test "it fetches the appropriate tag-restricted posts" do {:ok, status_two} = CommonAPI.post(user, %{status: ". #essais"}) {:ok, status_three} = CommonAPI.post(user, %{status: ". #test #reject"}) - fetch_one = ActivityPub.fetch_activities([], %{"type" => "Create", "tag" => "test"}) + fetch_one = ActivityPub.fetch_activities([], %{type: "Create", tag: "test"}) - fetch_two = - ActivityPub.fetch_activities([], %{"type" => "Create", "tag" => ["test", "essais"]}) + fetch_two = ActivityPub.fetch_activities([], %{type: "Create", tag: ["test", "essais"]}) fetch_three = ActivityPub.fetch_activities([], %{ - "type" => "Create", - "tag" => ["test", "essais"], - "tag_reject" => ["reject"] + type: "Create", + tag: ["test", "essais"], + tag_reject: ["reject"] }) fetch_four = ActivityPub.fetch_activities([], %{ - "type" => "Create", - "tag" => ["test"], - "tag_all" => ["test", "reject"] + type: "Create", + tag: ["test"], + tag_all: ["test", "reject"] }) assert fetch_one == [status_one, status_three] @@ -375,7 +372,7 @@ test "can be fetched into a timeline" do _listen_activity_2 = insert(:listen) _listen_activity_3 = insert(:listen) - timeline = ActivityPub.fetch_activities([], %{"type" => ["Listen"]}) + timeline = ActivityPub.fetch_activities([], %{type: ["Listen"]}) assert length(timeline) == 3 end @@ -507,7 +504,7 @@ test "retrieves activities that have a given context" do {:ok, _user_relationship} = User.block(user, %{ap_id: activity_five.data["actor"]}) - activities = ActivityPub.fetch_activities_for_context("2hu", %{"blocking_user" => user}) + activities = ActivityPub.fetch_activities_for_context("2hu", %{blocking_user: user}) assert activities == [activity_two, activity] end end @@ -520,8 +517,7 @@ test "doesn't return blocked activities" do booster = insert(:user) {:ok, _user_relationship} = User.block(user, %{ap_id: activity_one.data["actor"]}) - activities = - ActivityPub.fetch_activities([], %{"blocking_user" => user, "skip_preload" => true}) + activities = ActivityPub.fetch_activities([], %{blocking_user: user, skip_preload: true}) assert Enum.member?(activities, activity_two) assert Enum.member?(activities, activity_three) @@ -529,28 +525,25 @@ test "doesn't return blocked activities" do {:ok, _user_block} = User.unblock(user, %{ap_id: activity_one.data["actor"]}) - activities = - ActivityPub.fetch_activities([], %{"blocking_user" => user, "skip_preload" => true}) + activities = ActivityPub.fetch_activities([], %{blocking_user: user, skip_preload: true}) assert Enum.member?(activities, activity_two) assert Enum.member?(activities, activity_three) assert Enum.member?(activities, activity_one) {:ok, _user_relationship} = User.block(user, %{ap_id: activity_three.data["actor"]}) - {:ok, _announce, %{data: %{"id" => id}}} = CommonAPI.repeat(activity_three.id, booster) + {:ok, %{data: %{"object" => id}}} = CommonAPI.repeat(activity_three.id, booster) %Activity{} = boost_activity = Activity.get_create_by_object_ap_id(id) activity_three = Activity.get_by_id(activity_three.id) - activities = - ActivityPub.fetch_activities([], %{"blocking_user" => user, "skip_preload" => true}) + activities = ActivityPub.fetch_activities([], %{blocking_user: user, skip_preload: true}) assert Enum.member?(activities, activity_two) refute Enum.member?(activities, activity_three) refute Enum.member?(activities, boost_activity) assert Enum.member?(activities, activity_one) - activities = - ActivityPub.fetch_activities([], %{"blocking_user" => nil, "skip_preload" => true}) + activities = ActivityPub.fetch_activities([], %{blocking_user: nil, skip_preload: true}) assert Enum.member?(activities, activity_two) assert Enum.member?(activities, activity_three) @@ -573,7 +566,7 @@ test "doesn't return transitive interactions concerning blocked users" do {:ok, activity_four} = CommonAPI.post(blockee, %{status: "hey! @#{blocker.nickname}"}) - activities = ActivityPub.fetch_activities([], %{"blocking_user" => blocker}) + activities = ActivityPub.fetch_activities([], %{blocking_user: blocker}) assert Enum.member?(activities, activity_one) refute Enum.member?(activities, activity_two) @@ -581,7 +574,7 @@ test "doesn't return transitive interactions concerning blocked users" do refute Enum.member?(activities, activity_four) end - test "doesn't return announce activities concerning blocked users" do + test "doesn't return announce activities with blocked users in 'to'" do blocker = insert(:user) blockee = insert(:user) friend = insert(:user) @@ -592,10 +585,43 @@ test "doesn't return announce activities concerning blocked users" do {:ok, activity_two} = CommonAPI.post(blockee, %{status: "hey! @#{friend.nickname}"}) - {:ok, activity_three, _} = CommonAPI.repeat(activity_two.id, friend) + {:ok, activity_three} = CommonAPI.repeat(activity_two.id, friend) activities = - ActivityPub.fetch_activities([], %{"blocking_user" => blocker}) + ActivityPub.fetch_activities([], %{blocking_user: blocker}) + |> Enum.map(fn act -> act.id end) + + assert Enum.member?(activities, activity_one.id) + refute Enum.member?(activities, activity_two.id) + refute Enum.member?(activities, activity_three.id) + end + + test "doesn't return announce activities with blocked users in 'cc'" do + blocker = insert(:user) + blockee = insert(:user) + friend = insert(:user) + + {:ok, _user_relationship} = User.block(blocker, blockee) + + {:ok, activity_one} = CommonAPI.post(friend, %{status: "hey!"}) + + {:ok, activity_two} = CommonAPI.post(blockee, %{status: "hey! @#{friend.nickname}"}) + + assert object = Pleroma.Object.normalize(activity_two) + + data = %{ + "actor" => friend.ap_id, + "object" => object.data["id"], + "context" => object.data["context"], + "type" => "Announce", + "to" => ["https://www.w3.org/ns/activitystreams#Public"], + "cc" => [blockee.ap_id] + } + + assert {:ok, activity_three} = ActivityPub.insert(data) + + activities = + ActivityPub.fetch_activities([], %{blocking_user: blocker}) |> Enum.map(fn act -> act.id end) assert Enum.member?(activities, activity_one.id) @@ -611,17 +637,15 @@ test "doesn't return activities from blocked domains" do user = insert(:user) {:ok, user} = User.block_domain(user, domain) - activities = - ActivityPub.fetch_activities([], %{"blocking_user" => user, "skip_preload" => true}) + activities = ActivityPub.fetch_activities([], %{blocking_user: user, skip_preload: true}) refute activity in activities followed_user = insert(:user) ActivityPub.follow(user, followed_user) - {:ok, repeat_activity, _} = CommonAPI.repeat(activity.id, followed_user) + {:ok, repeat_activity} = CommonAPI.repeat(activity.id, followed_user) - activities = - ActivityPub.fetch_activities([], %{"blocking_user" => user, "skip_preload" => true}) + activities = ActivityPub.fetch_activities([], %{blocking_user: user, skip_preload: true}) refute repeat_activity in activities end @@ -641,8 +665,7 @@ test "does return activities from followed users on blocked domains" do note = insert(:note, %{data: %{"actor" => domain_user.ap_id}}) activity = insert(:note_activity, %{note: note}) - activities = - ActivityPub.fetch_activities([], %{"blocking_user" => blocker, "skip_preload" => true}) + activities = ActivityPub.fetch_activities([], %{blocking_user: blocker, skip_preload: true}) assert activity in activities @@ -651,10 +674,9 @@ test "does return activities from followed users on blocked domains" do another_user = insert(:user, %{ap_id: "https://#{domain}/@meanie2"}) bad_note = insert(:note, %{data: %{"actor" => another_user.ap_id}}) bad_activity = insert(:note_activity, %{note: bad_note}) - {:ok, repeat_activity, _} = CommonAPI.repeat(bad_activity.id, domain_user) + {:ok, repeat_activity} = CommonAPI.repeat(bad_activity.id, domain_user) - activities = - ActivityPub.fetch_activities([], %{"blocking_user" => blocker, "skip_preload" => true}) + activities = ActivityPub.fetch_activities([], %{blocking_user: blocker, skip_preload: true}) refute repeat_activity in activities end @@ -669,8 +691,7 @@ test "doesn't return muted activities" do activity_one_actor = User.get_by_ap_id(activity_one.data["actor"]) {:ok, _user_relationships} = User.mute(user, activity_one_actor) - activities = - ActivityPub.fetch_activities([], %{"muting_user" => user, "skip_preload" => true}) + activities = ActivityPub.fetch_activities([], %{muting_user: user, skip_preload: true}) assert Enum.member?(activities, activity_two) assert Enum.member?(activities, activity_three) @@ -679,9 +700,9 @@ test "doesn't return muted activities" do # Calling with 'with_muted' will deliver muted activities, too. activities = ActivityPub.fetch_activities([], %{ - "muting_user" => user, - "with_muted" => true, - "skip_preload" => true + muting_user: user, + with_muted: true, + skip_preload: true }) assert Enum.member?(activities, activity_two) @@ -690,8 +711,7 @@ test "doesn't return muted activities" do {:ok, _user_mute} = User.unmute(user, activity_one_actor) - activities = - ActivityPub.fetch_activities([], %{"muting_user" => user, "skip_preload" => true}) + activities = ActivityPub.fetch_activities([], %{muting_user: user, skip_preload: true}) assert Enum.member?(activities, activity_two) assert Enum.member?(activities, activity_three) @@ -699,19 +719,18 @@ test "doesn't return muted activities" do activity_three_actor = User.get_by_ap_id(activity_three.data["actor"]) {:ok, _user_relationships} = User.mute(user, activity_three_actor) - {:ok, _announce, %{data: %{"id" => id}}} = CommonAPI.repeat(activity_three.id, booster) + {:ok, %{data: %{"object" => id}}} = CommonAPI.repeat(activity_three.id, booster) %Activity{} = boost_activity = Activity.get_create_by_object_ap_id(id) activity_three = Activity.get_by_id(activity_three.id) - activities = - ActivityPub.fetch_activities([], %{"muting_user" => user, "skip_preload" => true}) + activities = ActivityPub.fetch_activities([], %{muting_user: user, skip_preload: true}) assert Enum.member?(activities, activity_two) refute Enum.member?(activities, activity_three) refute Enum.member?(activities, boost_activity) assert Enum.member?(activities, activity_one) - activities = ActivityPub.fetch_activities([], %{"muting_user" => nil, "skip_preload" => true}) + activities = ActivityPub.fetch_activities([], %{muting_user: nil, skip_preload: true}) assert Enum.member?(activities, activity_two) assert Enum.member?(activities, activity_three) @@ -727,7 +746,7 @@ test "doesn't return thread muted activities" do {:ok, _activity_two} = CommonAPI.add_mute(user, activity_two) - assert [_activity_one] = ActivityPub.fetch_activities([], %{"muting_user" => user}) + assert [_activity_one] = ActivityPub.fetch_activities([], %{muting_user: user}) end test "returns thread muted activities when with_muted is set" do @@ -739,7 +758,7 @@ test "returns thread muted activities when with_muted is set" do {:ok, _activity_two} = CommonAPI.add_mute(user, activity_two) assert [_activity_two, _activity_one] = - ActivityPub.fetch_activities([], %{"muting_user" => user, "with_muted" => true}) + ActivityPub.fetch_activities([], %{muting_user: user, with_muted: true}) end test "does include announces on request" do @@ -749,7 +768,7 @@ test "does include announces on request" do {:ok, user} = User.follow(user, booster) - {:ok, announce, _object} = CommonAPI.repeat(activity_three.id, booster) + {:ok, announce} = CommonAPI.repeat(activity_three.id, booster) [announce_activity] = ActivityPub.fetch_activities([user.ap_id | User.following(user)]) @@ -761,7 +780,7 @@ test "excludes reblogs on request" do {:ok, expected_activity} = ActivityBuilder.insert(%{"type" => "Create"}, %{:user => user}) {:ok, _} = ActivityBuilder.insert(%{"type" => "Announce"}, %{:user => user}) - [activity] = ActivityPub.fetch_user_activities(user, nil, %{"exclude_reblogs" => "true"}) + [activity] = ActivityPub.fetch_user_activities(user, nil, %{exclude_reblogs: true}) assert activity == expected_activity end @@ -804,7 +823,7 @@ test "retrieves ids starting from a since_id" do expected_activities = ActivityBuilder.insert_list(10) since_id = List.last(activities).id - activities = ActivityPub.fetch_public_activities(%{"since_id" => since_id}) + activities = ActivityPub.fetch_public_activities(%{since_id: since_id}) assert collect_ids(activities) == collect_ids(expected_activities) assert length(activities) == 10 @@ -819,7 +838,7 @@ test "retrieves ids up to max_id" do |> ActivityBuilder.insert_list() |> List.first() - activities = ActivityPub.fetch_public_activities(%{"max_id" => max_id}) + activities = ActivityPub.fetch_public_activities(%{max_id: max_id}) assert length(activities) == 20 assert collect_ids(activities) == collect_ids(expected_activities) @@ -831,8 +850,7 @@ test "paginates via offset/limit" do later_activities = ActivityBuilder.insert_list(10) - activities = - ActivityPub.fetch_public_activities(%{"page" => "2", "page_size" => "20"}, :offset) + activities = ActivityPub.fetch_public_activities(%{page: "2", page_size: "20"}, :offset) assert length(activities) == 20 @@ -846,9 +864,9 @@ test "doesn't return reblogs for users for whom reblogs have been muted" do booster = insert(:user) {:ok, _reblog_mute} = CommonAPI.hide_reblogs(user, booster) - {:ok, activity, _} = CommonAPI.repeat(activity.id, booster) + {:ok, activity} = CommonAPI.repeat(activity.id, booster) - activities = ActivityPub.fetch_activities([], %{"muting_user" => user}) + activities = ActivityPub.fetch_activities([], %{muting_user: user}) refute Enum.any?(activities, fn %{id: id} -> id == activity.id end) end @@ -860,83 +878,14 @@ test "returns reblogs for users for whom reblogs have not been muted" do {:ok, _reblog_mute} = CommonAPI.hide_reblogs(user, booster) {:ok, _reblog_mute} = CommonAPI.show_reblogs(user, booster) - {:ok, activity, _} = CommonAPI.repeat(activity.id, booster) + {:ok, activity} = CommonAPI.repeat(activity.id, booster) - activities = ActivityPub.fetch_activities([], %{"muting_user" => user}) + activities = ActivityPub.fetch_activities([], %{muting_user: user}) assert Enum.any?(activities, fn %{id: id} -> id == activity.id end) end end - describe "announcing an object" do - test "adds an announce activity to the db" do - note_activity = insert(:note_activity) - object = Object.normalize(note_activity) - user = insert(:user) - - {:ok, announce_activity, object} = ActivityPub.announce(user, object) - assert object.data["announcement_count"] == 1 - assert object.data["announcements"] == [user.ap_id] - - assert announce_activity.data["to"] == [ - User.ap_followers(user), - note_activity.data["actor"] - ] - - assert announce_activity.data["object"] == object.data["id"] - assert announce_activity.data["actor"] == user.ap_id - assert announce_activity.data["context"] == object.data["context"] - end - - test "reverts annouce from object on error" do - note_activity = insert(:note_activity) - object = Object.normalize(note_activity) - user = insert(:user) - - with_mock(Utils, [:passthrough], maybe_federate: fn _ -> {:error, :reverted} end) do - assert {:error, :reverted} = ActivityPub.announce(user, object) - end - - reloaded_object = Object.get_by_ap_id(object.data["id"]) - assert reloaded_object == object - refute reloaded_object.data["announcement_count"] - refute reloaded_object.data["announcements"] - end - end - - describe "announcing a private object" do - test "adds an announce activity to the db if the audience is not widened" do - user = insert(:user) - {:ok, note_activity} = CommonAPI.post(user, %{status: ".", visibility: "private"}) - object = Object.normalize(note_activity) - - {:ok, announce_activity, object} = ActivityPub.announce(user, object, nil, true, false) - - assert announce_activity.data["to"] == [User.ap_followers(user)] - - assert announce_activity.data["object"] == object.data["id"] - assert announce_activity.data["actor"] == user.ap_id - assert announce_activity.data["context"] == object.data["context"] - end - - test "does not add an announce activity to the db if the audience is widened" do - user = insert(:user) - {:ok, note_activity} = CommonAPI.post(user, %{status: ".", visibility: "private"}) - object = Object.normalize(note_activity) - - assert {:error, _} = ActivityPub.announce(user, object, nil, true, true) - end - - test "does not add an announce activity to the db if the announcer is not the author" do - user = insert(:user) - announcer = insert(:user) - {:ok, note_activity} = CommonAPI.post(user, %{status: ".", visibility: "private"}) - object = Object.normalize(note_activity) - - assert {:error, _} = ActivityPub.announce(announcer, object, nil, true, false) - end - end - describe "uploading files" do test "copies the file to the configured folder" do file = %Plug.Upload{ @@ -1043,54 +992,6 @@ test "creates an undo activity for a pending follow request" do end end - describe "blocking" do - test "reverts block activity on error" do - [blocker, blocked] = insert_list(2, :user) - - with_mock(Utils, [:passthrough], maybe_federate: fn _ -> {:error, :reverted} end) do - assert {:error, :reverted} = ActivityPub.block(blocker, blocked) - end - - assert Repo.aggregate(Activity, :count, :id) == 0 - assert Repo.aggregate(Object, :count, :id) == 0 - end - - test "creates a block activity" do - clear_config([:instance, :federating], true) - blocker = insert(:user) - blocked = insert(:user) - - with_mock Pleroma.Web.Federator, - publish: fn _ -> nil end do - {:ok, activity} = ActivityPub.block(blocker, blocked) - - assert activity.data["type"] == "Block" - assert activity.data["actor"] == blocker.ap_id - assert activity.data["object"] == blocked.ap_id - - assert called(Pleroma.Web.Federator.publish(activity)) - end - end - - test "works with outgoing blocks disabled, but doesn't federate" do - clear_config([:instance, :federating], true) - clear_config([:activitypub, :outgoing_blocks], false) - blocker = insert(:user) - blocked = insert(:user) - - with_mock Pleroma.Web.Federator, - publish: fn _ -> nil end do - {:ok, activity} = ActivityPub.block(blocker, blocked) - - assert activity.data["type"] == "Block" - assert activity.data["actor"] == blocker.ap_id - assert activity.data["object"] == blocked.ap_id - - refute called(Pleroma.Web.Federator.publish(:_)) - end - end - end - describe "timeline post-processing" do test "it filters broken threads" do user1 = insert(:user) @@ -1135,7 +1036,7 @@ test "it filters broken threads" do assert length(activities) == 3 activities = - ActivityPub.fetch_activities([user1.ap_id | User.following(user1)], %{"user" => user1}) + ActivityPub.fetch_activities([user1.ap_id | User.following(user1)], %{user: user1}) |> Enum.map(fn a -> a.id end) assert [public_activity.id, private_activity_1.id] == activities @@ -1143,52 +1044,6 @@ test "it filters broken threads" do end end - describe "update" do - setup do: clear_config([:instance, :max_pinned_statuses]) - - test "it creates an update activity with the new user data" do - user = insert(:user) - {:ok, user} = User.ensure_keys_present(user) - user_data = Pleroma.Web.ActivityPub.UserView.render("user.json", %{user: user}) - - {:ok, update} = - ActivityPub.update(%{ - actor: user_data["id"], - to: [user.follower_address], - cc: [], - object: user_data - }) - - assert update.data["actor"] == user.ap_id - assert update.data["to"] == [user.follower_address] - assert embedded_object = update.data["object"] - assert embedded_object["id"] == user_data["id"] - assert embedded_object["type"] == user_data["type"] - end - end - - test "returned pinned statuses" do - Config.put([:instance, :max_pinned_statuses], 3) - user = insert(:user) - - {:ok, activity_one} = CommonAPI.post(user, %{status: "HI!!!"}) - {:ok, activity_two} = CommonAPI.post(user, %{status: "HI!!!"}) - {:ok, activity_three} = CommonAPI.post(user, %{status: "HI!!!"}) - - CommonAPI.pin(activity_one.id, user) - user = refresh_record(user) - - CommonAPI.pin(activity_two.id, user) - user = refresh_record(user) - - CommonAPI.pin(activity_three.id, user) - user = refresh_record(user) - - activities = ActivityPub.fetch_user_activities(user, nil, %{"pinned" => "true"}) - - assert 3 = length(activities) - end - describe "flag/1" do setup do reporter = insert(:user) @@ -1295,7 +1150,7 @@ test "fetch_activities/2 returns activities addressed to a list " do activity = Repo.preload(activity, :bookmark) activity = %Activity{activity | thread_muted?: !!activity.thread_muted?} - assert ActivityPub.fetch_activities([], %{"user" => user}) == [activity] + assert ActivityPub.fetch_activities([], %{user: user}) == [activity] end def data_uri do @@ -1469,7 +1324,7 @@ test "returns a favourite activities sorted by adds to favorite" do assert Enum.map(result, & &1.id) == [a1.id, a5.id, a3.id, a4.id] - result = ActivityPub.fetch_favourites(user, %{"limit" => 2}) + result = ActivityPub.fetch_favourites(user, %{limit: 2}) assert Enum.map(result, & &1.id) == [a1.id, a5.id] end end @@ -1539,7 +1394,7 @@ test "doesn't retrieve replies activities with exclude_replies" do {:ok, _reply} = CommonAPI.post(user, %{status: "yeah", in_reply_to_status_id: activity.id}) - [result] = ActivityPub.fetch_public_activities(%{"exclude_replies" => "true"}) + [result] = ActivityPub.fetch_public_activities(%{exclude_replies: true}) assert result.id == activity.id @@ -1552,11 +1407,11 @@ test "doesn't retrieve replies activities with exclude_replies" do test "public timeline", %{users: %{u1: user}} do activities_ids = %{} - |> Map.put("type", ["Create", "Announce"]) - |> Map.put("local_only", false) - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("reply_filtering_user", user) + |> Map.put(:type, ["Create", "Announce"]) + |> Map.put(:local_only, false) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:reply_filtering_user, user) |> ActivityPub.fetch_public_activities() |> Enum.map(& &1.id) @@ -1573,12 +1428,12 @@ test "public timeline with reply_visibility `following`", %{ } do activities_ids = %{} - |> Map.put("type", ["Create", "Announce"]) - |> Map.put("local_only", false) - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("reply_visibility", "following") - |> Map.put("reply_filtering_user", user) + |> Map.put(:type, ["Create", "Announce"]) + |> Map.put(:local_only, false) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:reply_visibility, "following") + |> Map.put(:reply_filtering_user, user) |> ActivityPub.fetch_public_activities() |> Enum.map(& &1.id) @@ -1600,12 +1455,12 @@ test "public timeline with reply_visibility `self`", %{ } do activities_ids = %{} - |> Map.put("type", ["Create", "Announce"]) - |> Map.put("local_only", false) - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("reply_visibility", "self") - |> Map.put("reply_filtering_user", user) + |> Map.put(:type, ["Create", "Announce"]) + |> Map.put(:local_only, false) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:reply_visibility, "self") + |> Map.put(:reply_filtering_user, user) |> ActivityPub.fetch_public_activities() |> Enum.map(& &1.id) @@ -1624,11 +1479,11 @@ test "home timeline", %{ } do params = %{} - |> Map.put("type", ["Create", "Announce"]) - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("user", user) - |> Map.put("reply_filtering_user", user) + |> Map.put(:type, ["Create", "Announce"]) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:user, user) + |> Map.put(:reply_filtering_user, user) activities_ids = ActivityPub.fetch_activities([user.ap_id | User.following(user)], params) @@ -1662,12 +1517,12 @@ test "home timeline with reply_visibility `following`", %{ } do params = %{} - |> Map.put("type", ["Create", "Announce"]) - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("user", user) - |> Map.put("reply_visibility", "following") - |> Map.put("reply_filtering_user", user) + |> Map.put(:type, ["Create", "Announce"]) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:user, user) + |> Map.put(:reply_visibility, "following") + |> Map.put(:reply_filtering_user, user) activities_ids = ActivityPub.fetch_activities([user.ap_id | User.following(user)], params) @@ -1701,12 +1556,12 @@ test "home timeline with reply_visibility `self`", %{ } do params = %{} - |> Map.put("type", ["Create", "Announce"]) - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("user", user) - |> Map.put("reply_visibility", "self") - |> Map.put("reply_filtering_user", user) + |> Map.put(:type, ["Create", "Announce"]) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:user, user) + |> Map.put(:reply_visibility, "self") + |> Map.put(:reply_filtering_user, user) activities_ids = ActivityPub.fetch_activities([user.ap_id | User.following(user)], params) @@ -1727,6 +1582,40 @@ test "home timeline with reply_visibility `self`", %{ assert Enum.all?(visible_ids, &(&1 in activities_ids)) end + + test "filtering out announces where the user is the actor of the announced message" do + user = insert(:user) + other_user = insert(:user) + third_user = insert(:user) + User.follow(user, other_user) + + {:ok, post} = CommonAPI.post(user, %{status: "yo"}) + {:ok, other_post} = CommonAPI.post(third_user, %{status: "yo"}) + {:ok, _announce} = CommonAPI.repeat(post.id, other_user) + {:ok, _announce} = CommonAPI.repeat(post.id, third_user) + {:ok, announce} = CommonAPI.repeat(other_post.id, other_user) + + params = %{ + type: ["Announce"] + } + + results = + [user.ap_id | User.following(user)] + |> ActivityPub.fetch_activities(params) + + assert length(results) == 3 + + params = %{ + type: ["Announce"], + announce_filtering_user: user + } + + [result] = + [user.ap_id | User.following(user)] + |> ActivityPub.fetch_activities(params) + + assert result.id == announce.id + end end describe "replies filtering with private messages" do @@ -1735,11 +1624,11 @@ test "home timeline with reply_visibility `self`", %{ test "public timeline", %{users: %{u1: user}} do activities_ids = %{} - |> Map.put("type", ["Create", "Announce"]) - |> Map.put("local_only", false) - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("user", user) + |> Map.put(:type, ["Create", "Announce"]) + |> Map.put(:local_only, false) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:user, user) |> ActivityPub.fetch_public_activities() |> Enum.map(& &1.id) @@ -1749,13 +1638,13 @@ test "public timeline", %{users: %{u1: user}} do test "public timeline with default reply_visibility `following`", %{users: %{u1: user}} do activities_ids = %{} - |> Map.put("type", ["Create", "Announce"]) - |> Map.put("local_only", false) - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("reply_visibility", "following") - |> Map.put("reply_filtering_user", user) - |> Map.put("user", user) + |> Map.put(:type, ["Create", "Announce"]) + |> Map.put(:local_only, false) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:reply_visibility, "following") + |> Map.put(:reply_filtering_user, user) + |> Map.put(:user, user) |> ActivityPub.fetch_public_activities() |> Enum.map(& &1.id) @@ -1765,13 +1654,13 @@ test "public timeline with default reply_visibility `following`", %{users: %{u1: test "public timeline with default reply_visibility `self`", %{users: %{u1: user}} do activities_ids = %{} - |> Map.put("type", ["Create", "Announce"]) - |> Map.put("local_only", false) - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("reply_visibility", "self") - |> Map.put("reply_filtering_user", user) - |> Map.put("user", user) + |> Map.put(:type, ["Create", "Announce"]) + |> Map.put(:local_only, false) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:reply_visibility, "self") + |> Map.put(:reply_filtering_user, user) + |> Map.put(:user, user) |> ActivityPub.fetch_public_activities() |> Enum.map(& &1.id) @@ -1781,10 +1670,10 @@ test "public timeline with default reply_visibility `self`", %{users: %{u1: user test "home timeline", %{users: %{u1: user}} do params = %{} - |> Map.put("type", ["Create", "Announce"]) - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("user", user) + |> Map.put(:type, ["Create", "Announce"]) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:user, user) activities_ids = ActivityPub.fetch_activities([user.ap_id | User.following(user)], params) @@ -1796,12 +1685,12 @@ test "home timeline", %{users: %{u1: user}} do test "home timeline with default reply_visibility `following`", %{users: %{u1: user}} do params = %{} - |> Map.put("type", ["Create", "Announce"]) - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("user", user) - |> Map.put("reply_visibility", "following") - |> Map.put("reply_filtering_user", user) + |> Map.put(:type, ["Create", "Announce"]) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:user, user) + |> Map.put(:reply_visibility, "following") + |> Map.put(:reply_filtering_user, user) activities_ids = ActivityPub.fetch_activities([user.ap_id | User.following(user)], params) @@ -1820,12 +1709,12 @@ test "home timeline with default reply_visibility `self`", %{ } do params = %{} - |> Map.put("type", ["Create", "Announce"]) - |> Map.put("blocking_user", user) - |> Map.put("muting_user", user) - |> Map.put("user", user) - |> Map.put("reply_visibility", "self") - |> Map.put("reply_filtering_user", user) + |> Map.put(:type, ["Create", "Announce"]) + |> Map.put(:blocking_user, user) + |> Map.put(:muting_user, user) + |> Map.put(:user, user) + |> Map.put(:reply_visibility, "self") + |> Map.put(:reply_filtering_user, user) activities_ids = ActivityPub.fetch_activities([user.ap_id | User.following(user)], params) @@ -2070,4 +1959,20 @@ test "it just returns the input if the user has no following/follower addresses" end) =~ "Follower/Following counter update for #{user.ap_id} failed" end end + + describe "global activity expiration" do + setup do: clear_config([:mrf, :policies]) + + test "creates an activity expiration for local Create activities" do + Pleroma.Config.put( + [:mrf, :policies], + Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy + ) + + {:ok, %{id: id_create}} = ActivityBuilder.insert(%{"type" => "Create", "context" => "3hu"}) + {:ok, _follow} = ActivityBuilder.insert(%{"type" => "Follow", "context" => "3hu"}) + + assert [%{activity_id: ^id_create}] = Pleroma.ActivityExpiration |> Repo.all() + end + end end diff --git a/test/web/activity_pub/mrf/activity_expiration_policy_test.exs b/test/web/activity_pub/mrf/activity_expiration_policy_test.exs new file mode 100644 index 000000000..8babf49e7 --- /dev/null +++ b/test/web/activity_pub/mrf/activity_expiration_policy_test.exs @@ -0,0 +1,77 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicyTest do + use ExUnit.Case, async: true + alias Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy + + @id Pleroma.Web.Endpoint.url() <> "/activities/cofe" + + test "adds `expires_at` property" do + assert {:ok, %{"type" => "Create", "expires_at" => expires_at}} = + ActivityExpirationPolicy.filter(%{ + "id" => @id, + "type" => "Create", + "object" => %{"type" => "Note"} + }) + + assert Timex.diff(expires_at, NaiveDateTime.utc_now(), :days) == 364 + end + + test "keeps existing `expires_at` if it less than the config setting" do + expires_at = NaiveDateTime.utc_now() |> Timex.shift(days: 1) + + assert {:ok, %{"type" => "Create", "expires_at" => ^expires_at}} = + ActivityExpirationPolicy.filter(%{ + "id" => @id, + "type" => "Create", + "expires_at" => expires_at, + "object" => %{"type" => "Note"} + }) + end + + test "overwrites existing `expires_at` if it greater than the config setting" do + too_distant_future = NaiveDateTime.utc_now() |> Timex.shift(years: 2) + + assert {:ok, %{"type" => "Create", "expires_at" => expires_at}} = + ActivityExpirationPolicy.filter(%{ + "id" => @id, + "type" => "Create", + "expires_at" => too_distant_future, + "object" => %{"type" => "Note"} + }) + + assert Timex.diff(expires_at, NaiveDateTime.utc_now(), :days) == 364 + end + + test "ignores remote activities" do + assert {:ok, activity} = + ActivityExpirationPolicy.filter(%{ + "id" => "https://example.com/123", + "type" => "Create", + "object" => %{"type" => "Note"} + }) + + refute Map.has_key?(activity, "expires_at") + end + + test "ignores non-Create/Note activities" do + assert {:ok, activity} = + ActivityExpirationPolicy.filter(%{ + "id" => "https://example.com/123", + "type" => "Follow" + }) + + refute Map.has_key?(activity, "expires_at") + + assert {:ok, activity} = + ActivityExpirationPolicy.filter(%{ + "id" => "https://example.com/123", + "type" => "Create", + "object" => %{"type" => "Cofe"} + }) + + refute Map.has_key?(activity, "expires_at") + end +end diff --git a/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs b/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs index 1a13699be..6867c9853 100644 --- a/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs +++ b/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs @@ -33,7 +33,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do describe "with new user" do test "it allows posts without links" do - user = insert(:user) + user = insert(:user, local: false) assert user.note_count == 0 @@ -45,7 +45,7 @@ test "it allows posts without links" do end test "it disallows posts with links" do - user = insert(:user) + user = insert(:user, local: false) assert user.note_count == 0 @@ -55,6 +55,18 @@ test "it disallows posts with links" do {:reject, _} = AntiLinkSpamPolicy.filter(message) end + + test "it allows posts with links for local users" do + user = insert(:user) + + assert user.note_count == 0 + + message = + @linkful_message + |> Map.put("actor", user.ap_id) + + {:ok, _message} = AntiLinkSpamPolicy.filter(message) + end end describe "with old user" do diff --git a/test/web/activity_pub/mrf/hellthread_policy_test.exs b/test/web/activity_pub/mrf/hellthread_policy_test.exs index 95ef0b168..6e9daa7f9 100644 --- a/test/web/activity_pub/mrf/hellthread_policy_test.exs +++ b/test/web/activity_pub/mrf/hellthread_policy_test.exs @@ -8,6 +8,8 @@ defmodule Pleroma.Web.ActivityPub.MRF.HellthreadPolicyTest do import Pleroma.Web.ActivityPub.MRF.HellthreadPolicy + alias Pleroma.Web.CommonAPI + setup do user = insert(:user) @@ -20,7 +22,10 @@ defmodule Pleroma.Web.ActivityPub.MRF.HellthreadPolicyTest do "https://instance.tld/users/user1", "https://instance.tld/users/user2", "https://instance.tld/users/user3" - ] + ], + "object" => %{ + "type" => "Note" + } } [user: user, message: message] @@ -28,6 +33,17 @@ defmodule Pleroma.Web.ActivityPub.MRF.HellthreadPolicyTest do setup do: clear_config(:mrf_hellthread) + test "doesn't die on chat messages" do + Pleroma.Config.put([:mrf_hellthread], %{delist_threshold: 2, reject_threshold: 0}) + + user = insert(:user) + other_user = insert(:user) + + {:ok, activity} = CommonAPI.post_chat_message(user, other_user, "moin") + + assert {:ok, _} = filter(activity.data) + end + describe "reject" do test "rejects the message if the recipient count is above reject_threshold", %{ message: message diff --git a/test/web/activity_pub/mrf/mrf_test.exs b/test/web/activity_pub/mrf/mrf_test.exs index c941066f2..a63b25423 100644 --- a/test/web/activity_pub/mrf/mrf_test.exs +++ b/test/web/activity_pub/mrf/mrf_test.exs @@ -60,8 +60,6 @@ test "matches are case-insensitive" do end describe "describe/0" do - setup do: clear_config([:instance, :rewrite_policy]) - test "it works as expected with noop policy" do expected = %{ mrf_policies: ["NoOpPolicy"], @@ -72,7 +70,7 @@ test "it works as expected with noop policy" do end test "it works as expected with mock policy" do - Pleroma.Config.put([:instance, :rewrite_policy], [MRFModuleMock]) + clear_config([:mrf, :policies], [MRFModuleMock]) expected = %{ mrf_policies: ["MRFModuleMock"], diff --git a/test/web/activity_pub/mrf/steal_emoji_policy_test.exs b/test/web/activity_pub/mrf/steal_emoji_policy_test.exs new file mode 100644 index 000000000..3f8222736 --- /dev/null +++ b/test/web/activity_pub/mrf/steal_emoji_policy_test.exs @@ -0,0 +1,68 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.MRF.StealEmojiPolicyTest do + use Pleroma.DataCase + + alias Pleroma.Config + alias Pleroma.Web.ActivityPub.MRF.StealEmojiPolicy + + setup_all do + Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) + :ok + end + + setup do + emoji_path = Path.join(Config.get([:instance, :static_dir]), "emoji/stolen") + File.rm_rf!(emoji_path) + File.mkdir!(emoji_path) + + Pleroma.Emoji.reload() + + on_exit(fn -> + File.rm_rf!(emoji_path) + end) + + :ok + end + + test "does nothing by default" do + installed_emoji = Pleroma.Emoji.get_all() |> Enum.map(fn {k, _} -> k end) + refute "firedfox" in installed_emoji + + message = %{ + "type" => "Create", + "object" => %{ + "emoji" => [{"firedfox", "https://example.org/emoji/firedfox.png"}], + "actor" => "https://example.org/users/admin" + } + } + + assert {:ok, message} == StealEmojiPolicy.filter(message) + + installed_emoji = Pleroma.Emoji.get_all() |> Enum.map(fn {k, _} -> k end) + refute "firedfox" in installed_emoji + end + + test "Steals emoji on unknown shortcode from allowed remote host" do + installed_emoji = Pleroma.Emoji.get_all() |> Enum.map(fn {k, _} -> k end) + refute "firedfox" in installed_emoji + + message = %{ + "type" => "Create", + "object" => %{ + "emoji" => [{"firedfox", "https://example.org/emoji/firedfox.png"}], + "actor" => "https://example.org/users/admin" + } + } + + clear_config([:mrf_steal_emoji, :hosts], ["example.org"]) + clear_config([:mrf_steal_emoji, :size_limit], 284_468) + + assert {:ok, message} == StealEmojiPolicy.filter(message) + + installed_emoji = Pleroma.Emoji.get_all() |> Enum.map(fn {k, _} -> k end) + assert "firedfox" in installed_emoji + end +end diff --git a/test/web/activity_pub/mrf/user_allowlist_policy_test.exs b/test/web/activity_pub/mrf/user_allowlist_policy_test.exs index 724bae058..ba1b69658 100644 --- a/test/web/activity_pub/mrf/user_allowlist_policy_test.exs +++ b/test/web/activity_pub/mrf/user_allowlist_policy_test.exs @@ -7,7 +7,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.UserAllowListPolicyTest do alias Pleroma.Web.ActivityPub.MRF.UserAllowListPolicy - setup do: clear_config([:mrf_user_allowlist, :localhost]) + setup do: clear_config(:mrf_user_allowlist) test "pass filter if allow list is empty" do actor = insert(:user) @@ -17,14 +17,14 @@ test "pass filter if allow list is empty" do test "pass filter if allow list isn't empty and user in allow list" do actor = insert(:user) - Pleroma.Config.put([:mrf_user_allowlist, :localhost], [actor.ap_id, "test-ap-id"]) + Pleroma.Config.put([:mrf_user_allowlist], %{"localhost" => [actor.ap_id, "test-ap-id"]}) message = %{"actor" => actor.ap_id} assert UserAllowListPolicy.filter(message) == {:ok, message} end test "rejected if allow list isn't empty and user not in allow list" do actor = insert(:user) - Pleroma.Config.put([:mrf_user_allowlist, :localhost], ["test-ap-id"]) + Pleroma.Config.put([:mrf_user_allowlist], %{"localhost" => ["test-ap-id"]}) message = %{"actor" => actor.ap_id} assert UserAllowListPolicy.filter(message) == {:reject, nil} end diff --git a/test/web/activity_pub/object_validator_test.exs b/test/web/activity_pub/object_validator_test.exs index 96eff1c30..f38bf7e08 100644 --- a/test/web/activity_pub/object_validator_test.exs +++ b/test/web/activity_pub/object_validator_test.exs @@ -2,14 +2,264 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidatorTest do use Pleroma.DataCase alias Pleroma.Object + alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.Builder alias Pleroma.Web.ActivityPub.ObjectValidator + alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.CommonAPI import Pleroma.Factory + describe "attachments" do + test "works with honkerific attachments" do + attachment = %{ + "mediaType" => "", + "name" => "", + "summary" => "298p3RG7j27tfsZ9RQ.jpg", + "type" => "Document", + "url" => "https://honk.tedunangst.com/d/298p3RG7j27tfsZ9RQ.jpg" + } + + assert {:ok, attachment} = + AttachmentValidator.cast_and_validate(attachment) + |> Ecto.Changeset.apply_action(:insert) + + assert attachment.mediaType == "application/octet-stream" + end + + test "it turns mastodon attachments into our attachments" do + attachment = %{ + "url" => + "http://mastodon.example.org/system/media_attachments/files/000/000/002/original/334ce029e7bfb920.jpg", + "type" => "Document", + "name" => nil, + "mediaType" => "image/jpeg" + } + + {:ok, attachment} = + AttachmentValidator.cast_and_validate(attachment) + |> Ecto.Changeset.apply_action(:insert) + + assert [ + %{ + href: + "http://mastodon.example.org/system/media_attachments/files/000/000/002/original/334ce029e7bfb920.jpg", + type: "Link", + mediaType: "image/jpeg" + } + ] = attachment.url + + assert attachment.mediaType == "image/jpeg" + end + + test "it handles our own uploads" do + user = insert(:user) + + file = %Plug.Upload{ + content_type: "image/jpg", + path: Path.absname("test/fixtures/image.jpg"), + filename: "an_image.jpg" + } + + {:ok, attachment} = ActivityPub.upload(file, actor: user.ap_id) + + {:ok, attachment} = + attachment.data + |> AttachmentValidator.cast_and_validate() + |> Ecto.Changeset.apply_action(:insert) + + assert attachment.mediaType == "image/jpeg" + end + end + + describe "chat message create activities" do + test "it is invalid if the object already exists" do + user = insert(:user) + recipient = insert(:user) + {:ok, activity} = CommonAPI.post_chat_message(user, recipient, "hey") + object = Object.normalize(activity, false) + + {:ok, create_data, _} = Builder.create(user, object.data, [recipient.ap_id]) + + {:error, cng} = ObjectValidator.validate(create_data, []) + + assert {:object, {"The object to create already exists", []}} in cng.errors + end + + test "it is invalid if the object data has a different `to` or `actor` field" do + user = insert(:user) + recipient = insert(:user) + {:ok, object_data, _} = Builder.chat_message(recipient, user.ap_id, "Hey") + + {:ok, create_data, _} = Builder.create(user, object_data, [recipient.ap_id]) + + {:error, cng} = ObjectValidator.validate(create_data, []) + + assert {:to, {"Recipients don't match with object recipients", []}} in cng.errors + assert {:actor, {"Actor doesn't match with object actor", []}} in cng.errors + end + end + + describe "chat messages" do + setup do + clear_config([:instance, :remote_limit]) + user = insert(:user) + recipient = insert(:user, local: false) + + {:ok, valid_chat_message, _} = Builder.chat_message(user, recipient.ap_id, "hey :firefox:") + + %{user: user, recipient: recipient, valid_chat_message: valid_chat_message} + end + + test "let's through some basic html", %{user: user, recipient: recipient} do + {:ok, valid_chat_message, _} = + Builder.chat_message( + user, + recipient.ap_id, + "hey example " + ) + + assert {:ok, object, _meta} = ObjectValidator.validate(valid_chat_message, []) + + assert object["content"] == + "hey example alert('uguu')" + end + + test "validates for a basic object we build", %{valid_chat_message: valid_chat_message} do + assert {:ok, object, _meta} = ObjectValidator.validate(valid_chat_message, []) + + assert Map.put(valid_chat_message, "attachment", nil) == object + end + + test "validates for a basic object with an attachment", %{ + valid_chat_message: valid_chat_message, + user: user + } do + file = %Plug.Upload{ + content_type: "image/jpg", + path: Path.absname("test/fixtures/image.jpg"), + filename: "an_image.jpg" + } + + {:ok, attachment} = ActivityPub.upload(file, actor: user.ap_id) + + valid_chat_message = + valid_chat_message + |> Map.put("attachment", attachment.data) + + assert {:ok, object, _meta} = ObjectValidator.validate(valid_chat_message, []) + + assert object["attachment"] + end + + test "validates for a basic object with an attachment in an array", %{ + valid_chat_message: valid_chat_message, + user: user + } do + file = %Plug.Upload{ + content_type: "image/jpg", + path: Path.absname("test/fixtures/image.jpg"), + filename: "an_image.jpg" + } + + {:ok, attachment} = ActivityPub.upload(file, actor: user.ap_id) + + valid_chat_message = + valid_chat_message + |> Map.put("attachment", [attachment.data]) + + assert {:ok, object, _meta} = ObjectValidator.validate(valid_chat_message, []) + + assert object["attachment"] + end + + test "validates for a basic object with an attachment but without content", %{ + valid_chat_message: valid_chat_message, + user: user + } do + file = %Plug.Upload{ + content_type: "image/jpg", + path: Path.absname("test/fixtures/image.jpg"), + filename: "an_image.jpg" + } + + {:ok, attachment} = ActivityPub.upload(file, actor: user.ap_id) + + valid_chat_message = + valid_chat_message + |> Map.put("attachment", attachment.data) + |> Map.delete("content") + + assert {:ok, object, _meta} = ObjectValidator.validate(valid_chat_message, []) + + assert object["attachment"] + end + + test "does not validate if the message has no content", %{ + valid_chat_message: valid_chat_message + } do + contentless = + valid_chat_message + |> Map.delete("content") + + refute match?({:ok, _object, _meta}, ObjectValidator.validate(contentless, [])) + end + + test "does not validate if the message is longer than the remote_limit", %{ + valid_chat_message: valid_chat_message + } do + Pleroma.Config.put([:instance, :remote_limit], 2) + refute match?({:ok, _object, _meta}, ObjectValidator.validate(valid_chat_message, [])) + end + + test "does not validate if the recipient is blocking the actor", %{ + valid_chat_message: valid_chat_message, + user: user, + recipient: recipient + } do + Pleroma.User.block(recipient, user) + refute match?({:ok, _object, _meta}, ObjectValidator.validate(valid_chat_message, [])) + end + + test "does not validate if the actor or the recipient is not in our system", %{ + valid_chat_message: valid_chat_message + } do + chat_message = + valid_chat_message + |> Map.put("actor", "https://raymoo.com/raymoo") + + {:error, _} = ObjectValidator.validate(chat_message, []) + + chat_message = + valid_chat_message + |> Map.put("to", ["https://raymoo.com/raymoo"]) + + {:error, _} = ObjectValidator.validate(chat_message, []) + end + + test "does not validate for a message with multiple recipients", %{ + valid_chat_message: valid_chat_message, + user: user, + recipient: recipient + } do + chat_message = + valid_chat_message + |> Map.put("to", [user.ap_id, recipient.ap_id]) + + assert {:error, _} = ObjectValidator.validate(chat_message, []) + end + + test "does not validate if it doesn't concern local users" do + user = insert(:user, local: false) + recipient = insert(:user, local: false) + + {:ok, valid_chat_message, _} = Builder.chat_message(user, recipient.ap_id, "hey") + assert {:error, _} = ObjectValidator.validate(valid_chat_message, []) + end + end + describe "EmojiReacts" do setup do user = insert(:user) @@ -280,4 +530,155 @@ test "it works when actor or object are wrapped in maps", %{valid_like: valid_li assert {:object, valid_like["object"]} in validated.changes end end + + describe "announces" do + setup do + user = insert(:user) + announcer = insert(:user) + {:ok, post_activity} = CommonAPI.post(user, %{status: "uguu"}) + + object = Object.normalize(post_activity, false) + {:ok, valid_announce, []} = Builder.announce(announcer, object) + + %{ + valid_announce: valid_announce, + user: user, + post_activity: post_activity, + announcer: announcer + } + end + + test "returns ok for a valid announce", %{valid_announce: valid_announce} do + assert {:ok, _object, _meta} = ObjectValidator.validate(valid_announce, []) + end + + test "returns an error if the object can't be found", %{valid_announce: valid_announce} do + without_object = + valid_announce + |> Map.delete("object") + + {:error, cng} = ObjectValidator.validate(without_object, []) + + assert {:object, {"can't be blank", [validation: :required]}} in cng.errors + + nonexisting_object = + valid_announce + |> Map.put("object", "https://gensokyo.2hu/objects/99999999") + + {:error, cng} = ObjectValidator.validate(nonexisting_object, []) + + assert {:object, {"can't find object", []}} in cng.errors + end + + test "returns an error if we don't have the actor", %{valid_announce: valid_announce} do + nonexisting_actor = + valid_announce + |> Map.put("actor", "https://gensokyo.2hu/users/raymoo") + + {:error, cng} = ObjectValidator.validate(nonexisting_actor, []) + + assert {:actor, {"can't find user", []}} in cng.errors + end + + test "returns an error if the actor already announced the object", %{ + valid_announce: valid_announce, + announcer: announcer, + post_activity: post_activity + } do + _announce = CommonAPI.repeat(post_activity.id, announcer) + + {:error, cng} = ObjectValidator.validate(valid_announce, []) + + assert {:actor, {"already announced this object", []}} in cng.errors + assert {:object, {"already announced by this actor", []}} in cng.errors + end + + test "returns an error if the actor can't announce the object", %{ + announcer: announcer, + user: user + } do + {:ok, post_activity} = + CommonAPI.post(user, %{status: "a secret post", visibility: "private"}) + + object = Object.normalize(post_activity, false) + + # Another user can't announce it + {:ok, announce, []} = Builder.announce(announcer, object, public: false) + + {:error, cng} = ObjectValidator.validate(announce, []) + + assert {:actor, {"can not announce this object", []}} in cng.errors + + # The actor of the object can announce it + {:ok, announce, []} = Builder.announce(user, object, public: false) + + assert {:ok, _, _} = ObjectValidator.validate(announce, []) + + # The actor of the object can not announce it publicly + {:ok, announce, []} = Builder.announce(user, object, public: true) + + {:error, cng} = ObjectValidator.validate(announce, []) + + assert {:actor, {"can not announce this object publicly", []}} in cng.errors + end + end + + describe "updates" do + setup do + user = insert(:user) + + object = %{ + "id" => user.ap_id, + "name" => "A new name", + "summary" => "A new bio" + } + + {:ok, valid_update, []} = Builder.update(user, object) + + %{user: user, valid_update: valid_update} + end + + test "validates a basic object", %{valid_update: valid_update} do + assert {:ok, _update, []} = ObjectValidator.validate(valid_update, []) + end + + test "returns an error if the object can't be updated by the actor", %{ + valid_update: valid_update + } do + other_user = insert(:user) + + update = + valid_update + |> Map.put("actor", other_user.ap_id) + + assert {:error, _cng} = ObjectValidator.validate(update, []) + end + end + + describe "blocks" do + setup do + user = insert(:user, local: false) + blocked = insert(:user) + + {:ok, valid_block, []} = Builder.block(user, blocked) + + %{user: user, valid_block: valid_block} + end + + test "validates a basic object", %{ + valid_block: valid_block + } do + assert {:ok, _block, []} = ObjectValidator.validate(valid_block, []) + end + + test "returns an error if we don't know the blocked user", %{ + valid_block: valid_block + } do + block = + valid_block + |> Map.put("object", "https://gensokyo.2hu/users/raymoo") + + assert {:error, _cng} = ObjectValidator.validate(block, []) + end + end end diff --git a/test/web/activity_pub/object_validators/types/date_time_test.exs b/test/web/activity_pub/object_validators/types/date_time_test.exs index 3e17a9497..43be8e936 100644 --- a/test/web/activity_pub/object_validators/types/date_time_test.exs +++ b/test/web/activity_pub/object_validators/types/date_time_test.exs @@ -1,5 +1,5 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.Types.DateTimeTest do - alias Pleroma.Web.ActivityPub.ObjectValidators.Types.DateTime + alias Pleroma.EctoType.ActivityPub.ObjectValidators.DateTime use Pleroma.DataCase test "it validates an xsd:Datetime" do diff --git a/test/web/activity_pub/object_validators/types/object_id_test.exs b/test/web/activity_pub/object_validators/types/object_id_test.exs index 834213182..e0ab76379 100644 --- a/test/web/activity_pub/object_validators/types/object_id_test.exs +++ b/test/web/activity_pub/object_validators/types/object_id_test.exs @@ -1,5 +1,9 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Web.ObjectValidators.Types.ObjectIDTest do - alias Pleroma.Web.ActivityPub.ObjectValidators.Types.ObjectID + alias Pleroma.EctoType.ActivityPub.ObjectValidators.ObjectID use Pleroma.DataCase @uris [ diff --git a/test/web/activity_pub/object_validators/types/recipients_test.exs b/test/web/activity_pub/object_validators/types/recipients_test.exs index f278f039b..053916bdd 100644 --- a/test/web/activity_pub/object_validators/types/recipients_test.exs +++ b/test/web/activity_pub/object_validators/types/recipients_test.exs @@ -1,5 +1,5 @@ defmodule Pleroma.Web.ObjectValidators.Types.RecipientsTest do - alias Pleroma.Web.ActivityPub.ObjectValidators.Types.Recipients + alias Pleroma.EctoType.ActivityPub.ObjectValidators.Recipients use Pleroma.DataCase test "it asserts that all elements of the list are object ids" do diff --git a/test/web/activity_pub/object_validators/types/safe_text_test.exs b/test/web/activity_pub/object_validators/types/safe_text_test.exs new file mode 100644 index 000000000..9c08606f6 --- /dev/null +++ b/test/web/activity_pub/object_validators/types/safe_text_test.exs @@ -0,0 +1,30 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.ObjectValidators.Types.SafeTextTest do + use Pleroma.DataCase + + alias Pleroma.EctoType.ActivityPub.ObjectValidators.SafeText + + test "it lets normal text go through" do + text = "hey how are you" + assert {:ok, text} == SafeText.cast(text) + end + + test "it removes html tags from text" do + text = "hey look xss " + assert {:ok, "hey look xss alert('foo')"} == SafeText.cast(text) + end + + test "it keeps basic html tags" do + text = "hey look xss " + + assert {:ok, "hey look xss alert('foo')"} == + SafeText.cast(text) + end + + test "errors for non-text" do + assert :error == SafeText.cast(1) + end +end diff --git a/test/web/activity_pub/pipeline_test.exs b/test/web/activity_pub/pipeline_test.exs index f3c437498..8deb64501 100644 --- a/test/web/activity_pub/pipeline_test.exs +++ b/test/web/activity_pub/pipeline_test.exs @@ -9,6 +9,11 @@ defmodule Pleroma.Web.ActivityPub.PipelineTest do import Pleroma.Factory describe "common_pipeline/2" do + setup do + clear_config([:instance, :federating], true) + :ok + end + test "it goes through validation, filtering, persisting, side effects and federation for local activities" do activity = insert(:note_activity) meta = [local: true] @@ -28,7 +33,10 @@ test "it goes through validation, filtering, persisting, side effects and federa { Pleroma.Web.ActivityPub.SideEffects, [], - [handle: fn o, m -> {:ok, o, m} end] + [ + handle: fn o, m -> {:ok, o, m} end, + handle_after_transaction: fn m -> m end + ] }, { Pleroma.Web.Federator, @@ -66,7 +74,46 @@ test "it goes through validation, filtering, persisting, side effects without fe { Pleroma.Web.ActivityPub.SideEffects, [], - [handle: fn o, m -> {:ok, o, m} end] + [handle: fn o, m -> {:ok, o, m} end, handle_after_transaction: fn m -> m end] + }, + { + Pleroma.Web.Federator, + [], + [] + } + ]) do + assert {:ok, ^activity, ^meta} = + Pleroma.Web.ActivityPub.Pipeline.common_pipeline(activity, meta) + + assert_called(Pleroma.Web.ActivityPub.ObjectValidator.validate(activity, meta)) + assert_called(Pleroma.Web.ActivityPub.MRF.filter(activity)) + assert_called(Pleroma.Web.ActivityPub.ActivityPub.persist(activity, meta)) + assert_called(Pleroma.Web.ActivityPub.SideEffects.handle(activity, meta)) + end + end + + test "it goes through validation, filtering, persisting, side effects without federation for local activities if federation is deactivated" do + clear_config([:instance, :federating], false) + + activity = insert(:note_activity) + meta = [local: true] + + with_mocks([ + {Pleroma.Web.ActivityPub.ObjectValidator, [], [validate: fn o, m -> {:ok, o, m} end]}, + { + Pleroma.Web.ActivityPub.MRF, + [], + [filter: fn o -> {:ok, o} end] + }, + { + Pleroma.Web.ActivityPub.ActivityPub, + [], + [persist: fn o, m -> {:ok, o, m} end] + }, + { + Pleroma.Web.ActivityPub.SideEffects, + [], + [handle: fn o, m -> {:ok, o, m} end, handle_after_transaction: fn m -> m end] }, { Pleroma.Web.Federator, diff --git a/test/web/activity_pub/relay_test.exs b/test/web/activity_pub/relay_test.exs index 9e16e39c4..b3b573c9b 100644 --- a/test/web/activity_pub/relay_test.exs +++ b/test/web/activity_pub/relay_test.exs @@ -6,7 +6,6 @@ defmodule Pleroma.Web.ActivityPub.RelayTest do use Pleroma.DataCase alias Pleroma.Activity - alias Pleroma.Object alias Pleroma.User alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.Relay @@ -95,21 +94,21 @@ test "returns error when object is unknown" do end) assert capture_log(fn -> - assert Relay.publish(activity) == {:error, nil} - end) =~ "[error] error: nil" + assert Relay.publish(activity) == {:error, false} + end) =~ "[error] error: false" end test_with_mock "returns announce activity and publish to federate", Pleroma.Web.Federator, [:passthrough], [] do - Pleroma.Config.put([:instance, :federating], true) + clear_config([:instance, :federating], true) service_actor = Relay.get_actor() note = insert(:note_activity) - assert {:ok, %Activity{} = activity, %Object{} = obj} = Relay.publish(note) + assert {:ok, %Activity{} = activity} = Relay.publish(note) assert activity.data["type"] == "Announce" assert activity.data["actor"] == service_actor.ap_id - assert activity.data["object"] == obj.data["id"] + assert activity.data["to"] == [service_actor.follower_address] assert called(Pleroma.Web.Federator.publish(activity)) end @@ -117,13 +116,12 @@ test "returns error when object is unknown" do Pleroma.Web.Federator, [:passthrough], [] do - Pleroma.Config.put([:instance, :federating], false) + clear_config([:instance, :federating], false) service_actor = Relay.get_actor() note = insert(:note_activity) - assert {:ok, %Activity{} = activity, %Object{} = obj} = Relay.publish(note) + assert {:ok, %Activity{} = activity} = Relay.publish(note) assert activity.data["type"] == "Announce" assert activity.data["actor"] == service_actor.ap_id - assert activity.data["object"] == obj.data["id"] refute called(Pleroma.Web.Federator.publish(activity)) end end diff --git a/test/web/activity_pub/side_effects_test.exs b/test/web/activity_pub/side_effects_test.exs index 797f00d08..af27c34b4 100644 --- a/test/web/activity_pub/side_effects_test.exs +++ b/test/web/activity_pub/side_effects_test.exs @@ -7,6 +7,8 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do use Pleroma.DataCase alias Pleroma.Activity + alias Pleroma.Chat + alias Pleroma.Chat.MessageReference alias Pleroma.Notification alias Pleroma.Object alias Pleroma.Repo @@ -20,6 +22,114 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do import Pleroma.Factory import Mock + describe "handle_after_transaction" do + test "it streams out notifications and streams" do + author = insert(:user, local: true) + recipient = insert(:user, local: true) + + {:ok, chat_message_data, _meta} = Builder.chat_message(author, recipient.ap_id, "hey") + + {:ok, create_activity_data, _meta} = + Builder.create(author, chat_message_data["id"], [recipient.ap_id]) + + {:ok, create_activity, _meta} = ActivityPub.persist(create_activity_data, local: false) + + {:ok, _create_activity, meta} = + SideEffects.handle(create_activity, local: false, object_data: chat_message_data) + + assert [notification] = meta[:notifications] + + with_mocks([ + { + Pleroma.Web.Streamer, + [], + [ + stream: fn _, _ -> nil end + ] + }, + { + Pleroma.Web.Push, + [], + [ + send: fn _ -> nil end + ] + } + ]) do + SideEffects.handle_after_transaction(meta) + + assert called(Pleroma.Web.Streamer.stream(["user", "user:notification"], notification)) + assert called(Pleroma.Web.Streamer.stream(["user", "user:pleroma_chat"], :_)) + assert called(Pleroma.Web.Push.send(notification)) + end + end + end + + describe "blocking users" do + setup do + user = insert(:user) + blocked = insert(:user) + User.follow(blocked, user) + User.follow(user, blocked) + + {:ok, block_data, []} = Builder.block(user, blocked) + {:ok, block, _meta} = ActivityPub.persist(block_data, local: true) + + %{user: user, blocked: blocked, block: block} + end + + test "it unfollows and blocks", %{user: user, blocked: blocked, block: block} do + assert User.following?(user, blocked) + assert User.following?(blocked, user) + + {:ok, _, _} = SideEffects.handle(block) + + refute User.following?(user, blocked) + refute User.following?(blocked, user) + assert User.blocks?(user, blocked) + end + + test "it blocks but does not unfollow if the relevant setting is set", %{ + user: user, + blocked: blocked, + block: block + } do + clear_config([:activitypub, :unfollow_blocked], false) + assert User.following?(user, blocked) + assert User.following?(blocked, user) + + {:ok, _, _} = SideEffects.handle(block) + + refute User.following?(user, blocked) + assert User.following?(blocked, user) + assert User.blocks?(user, blocked) + end + end + + describe "update users" do + setup do + user = insert(:user) + {:ok, update_data, []} = Builder.update(user, %{"id" => user.ap_id, "name" => "new name!"}) + {:ok, update, _meta} = ActivityPub.persist(update_data, local: true) + + %{user: user, update_data: update_data, update: update} + end + + test "it updates the user", %{user: user, update: update} do + {:ok, _, _} = SideEffects.handle(update) + user = User.get_by_id(user.id) + assert user.name == "new name!" + end + + test "it uses a given changeset to update", %{user: user, update: update} do + changeset = Ecto.Changeset.change(user, %{default_scope: "direct"}) + + assert user.default_scope == "public" + {:ok, _, _} = SideEffects.handle(update, user_update_changeset: changeset) + user = User.get_by_id(user.id) + assert user.default_scope == "direct" + end + end + describe "delete objects" do setup do user = insert(:user) @@ -140,6 +250,31 @@ test "creates a notification", %{emoji_react: emoji_react, poster: poster} do end end + describe "delete users with confirmation pending" do + setup do + user = insert(:user, confirmation_pending: true) + {:ok, delete_user_data, _meta} = Builder.delete(user, user.ap_id) + {:ok, delete_user, _meta} = ActivityPub.persist(delete_user_data, local: true) + {:ok, delete: delete_user, user: user} + end + + test "when activation is not required", %{delete: delete, user: user} do + clear_config([:instance, :account_activation_required], false) + {:ok, _, _} = SideEffects.handle(delete) + ObanHelpers.perform_all() + + assert User.get_cached_by_id(user.id).deactivated + end + + test "when activation is required", %{delete: delete, user: user} do + clear_config([:instance, :account_activation_required], true) + {:ok, _, _} = SideEffects.handle(delete) + ObanHelpers.perform_all() + + refute User.get_cached_by_id(user.id) + end + end + describe "Undo objects" do setup do poster = insert(:user) @@ -147,9 +282,8 @@ test "creates a notification", %{emoji_react: emoji_react, poster: poster} do {:ok, post} = CommonAPI.post(poster, %{status: "hey"}) {:ok, like} = CommonAPI.favorite(user, post.id) {:ok, reaction} = CommonAPI.react_with_emoji(post.id, user, "👍") - {:ok, announce, _} = CommonAPI.repeat(post.id, user) - {:ok, block} = ActivityPub.block(user, poster) - User.block(user, poster) + {:ok, announce} = CommonAPI.repeat(post.id, user) + {:ok, block} = CommonAPI.block(user, poster) {:ok, undo_data, _meta} = Builder.undo(user, like) {:ok, like_undo, _meta} = ActivityPub.persist(undo_data, local: true) @@ -264,4 +398,202 @@ test "creates a notification", %{like: like, poster: poster} do assert Repo.get_by(Notification, user_id: poster.id, activity_id: like.id) end end + + describe "creation of ChatMessages" do + test "notifies the recipient" do + author = insert(:user, local: false) + recipient = insert(:user, local: true) + + {:ok, chat_message_data, _meta} = Builder.chat_message(author, recipient.ap_id, "hey") + + {:ok, create_activity_data, _meta} = + Builder.create(author, chat_message_data["id"], [recipient.ap_id]) + + {:ok, create_activity, _meta} = ActivityPub.persist(create_activity_data, local: false) + + {:ok, _create_activity, _meta} = + SideEffects.handle(create_activity, local: false, object_data: chat_message_data) + + assert Repo.get_by(Notification, user_id: recipient.id, activity_id: create_activity.id) + end + + test "it streams the created ChatMessage" do + author = insert(:user, local: true) + recipient = insert(:user, local: true) + + {:ok, chat_message_data, _meta} = Builder.chat_message(author, recipient.ap_id, "hey") + + {:ok, create_activity_data, _meta} = + Builder.create(author, chat_message_data["id"], [recipient.ap_id]) + + {:ok, create_activity, _meta} = ActivityPub.persist(create_activity_data, local: false) + + {:ok, _create_activity, meta} = + SideEffects.handle(create_activity, local: false, object_data: chat_message_data) + + assert [_, _] = meta[:streamables] + end + + test "it creates a Chat and MessageReferences for the local users and bumps the unread count, except for the author" do + author = insert(:user, local: true) + recipient = insert(:user, local: true) + + {:ok, chat_message_data, _meta} = Builder.chat_message(author, recipient.ap_id, "hey") + + {:ok, create_activity_data, _meta} = + Builder.create(author, chat_message_data["id"], [recipient.ap_id]) + + {:ok, create_activity, _meta} = ActivityPub.persist(create_activity_data, local: false) + + with_mocks([ + { + Pleroma.Web.Streamer, + [], + [ + stream: fn _, _ -> nil end + ] + }, + { + Pleroma.Web.Push, + [], + [ + send: fn _ -> nil end + ] + } + ]) do + {:ok, _create_activity, meta} = + SideEffects.handle(create_activity, local: false, object_data: chat_message_data) + + # The notification gets created + assert [notification] = meta[:notifications] + assert notification.activity_id == create_activity.id + + # But it is not sent out + refute called(Pleroma.Web.Streamer.stream(["user", "user:notification"], notification)) + refute called(Pleroma.Web.Push.send(notification)) + + # Same for the user chat stream + assert [{topics, _}, _] = meta[:streamables] + assert topics == ["user", "user:pleroma_chat"] + refute called(Pleroma.Web.Streamer.stream(["user", "user:pleroma_chat"], :_)) + + chat = Chat.get(author.id, recipient.ap_id) + + [cm_ref] = MessageReference.for_chat_query(chat) |> Repo.all() + + assert cm_ref.object.data["content"] == "hey" + assert cm_ref.unread == false + + chat = Chat.get(recipient.id, author.ap_id) + + [cm_ref] = MessageReference.for_chat_query(chat) |> Repo.all() + + assert cm_ref.object.data["content"] == "hey" + assert cm_ref.unread == true + end + end + + test "it creates a Chat for the local users and bumps the unread count" do + author = insert(:user, local: false) + recipient = insert(:user, local: true) + + {:ok, chat_message_data, _meta} = Builder.chat_message(author, recipient.ap_id, "hey") + + {:ok, create_activity_data, _meta} = + Builder.create(author, chat_message_data["id"], [recipient.ap_id]) + + {:ok, create_activity, _meta} = ActivityPub.persist(create_activity_data, local: false) + + {:ok, _create_activity, _meta} = + SideEffects.handle(create_activity, local: false, object_data: chat_message_data) + + # An object is created + assert Object.get_by_ap_id(chat_message_data["id"]) + + # The remote user won't get a chat + chat = Chat.get(author.id, recipient.ap_id) + refute chat + + # The local user will get a chat + chat = Chat.get(recipient.id, author.ap_id) + assert chat + + author = insert(:user, local: true) + recipient = insert(:user, local: true) + + {:ok, chat_message_data, _meta} = Builder.chat_message(author, recipient.ap_id, "hey") + + {:ok, create_activity_data, _meta} = + Builder.create(author, chat_message_data["id"], [recipient.ap_id]) + + {:ok, create_activity, _meta} = ActivityPub.persist(create_activity_data, local: false) + + {:ok, _create_activity, _meta} = + SideEffects.handle(create_activity, local: false, object_data: chat_message_data) + + # Both users are local and get the chat + chat = Chat.get(author.id, recipient.ap_id) + assert chat + + chat = Chat.get(recipient.id, author.ap_id) + assert chat + end + end + + describe "announce objects" do + setup do + poster = insert(:user) + user = insert(:user) + {:ok, post} = CommonAPI.post(poster, %{status: "hey"}) + {:ok, private_post} = CommonAPI.post(poster, %{status: "hey", visibility: "private"}) + + {:ok, announce_data, _meta} = Builder.announce(user, post.object, public: true) + + {:ok, private_announce_data, _meta} = + Builder.announce(user, private_post.object, public: false) + + {:ok, relay_announce_data, _meta} = + Builder.announce(Pleroma.Web.ActivityPub.Relay.get_actor(), post.object, public: true) + + {:ok, announce, _meta} = ActivityPub.persist(announce_data, local: true) + {:ok, private_announce, _meta} = ActivityPub.persist(private_announce_data, local: true) + {:ok, relay_announce, _meta} = ActivityPub.persist(relay_announce_data, local: true) + + %{ + announce: announce, + user: user, + poster: poster, + private_announce: private_announce, + relay_announce: relay_announce + } + end + + test "adds the announce to the original object", %{announce: announce, user: user} do + {:ok, announce, _} = SideEffects.handle(announce) + object = Object.get_by_ap_id(announce.data["object"]) + assert object.data["announcement_count"] == 1 + assert user.ap_id in object.data["announcements"] + end + + test "does not add the announce to the original object if the actor is a service actor", %{ + relay_announce: announce + } do + {:ok, announce, _} = SideEffects.handle(announce) + object = Object.get_by_ap_id(announce.data["object"]) + assert object.data["announcement_count"] == nil + end + + test "creates a notification", %{announce: announce, poster: poster} do + {:ok, announce, _} = SideEffects.handle(announce) + assert Repo.get_by(Notification, user_id: poster.id, activity_id: announce.id) + end + + test "it streams out the announce", %{announce: announce} do + with_mock Pleroma.Web.ActivityPub.ActivityPub, [:passthrough], stream_out: fn _ -> nil end do + {:ok, announce, _} = SideEffects.handle(announce) + + assert called(Pleroma.Web.ActivityPub.ActivityPub.stream_out(announce)) + end + end + end end diff --git a/test/web/activity_pub/transmogrifier/announce_handling_test.exs b/test/web/activity_pub/transmogrifier/announce_handling_test.exs new file mode 100644 index 000000000..e895636b5 --- /dev/null +++ b/test/web/activity_pub/transmogrifier/announce_handling_test.exs @@ -0,0 +1,172 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.Transmogrifier.AnnounceHandlingTest do + use Pleroma.DataCase + + alias Pleroma.Activity + alias Pleroma.Object + alias Pleroma.Web.ActivityPub.Transmogrifier + alias Pleroma.Web.CommonAPI + + import Pleroma.Factory + + test "it works for incoming honk announces" do + user = insert(:user, ap_id: "https://honktest/u/test", local: false) + other_user = insert(:user) + {:ok, post} = CommonAPI.post(other_user, %{status: "bonkeronk"}) + + announce = %{ + "@context" => "https://www.w3.org/ns/activitystreams", + "actor" => "https://honktest/u/test", + "id" => "https://honktest/u/test/bonk/1793M7B9MQ48847vdx", + "object" => post.data["object"], + "published" => "2019-06-25T19:33:58Z", + "to" => "https://www.w3.org/ns/activitystreams#Public", + "type" => "Announce" + } + + {:ok, %Activity{local: false}} = Transmogrifier.handle_incoming(announce) + + object = Object.get_by_ap_id(post.data["object"]) + + assert length(object.data["announcements"]) == 1 + assert user.ap_id in object.data["announcements"] + end + + test "it works for incoming announces with actor being inlined (kroeg)" do + data = File.read!("test/fixtures/kroeg-announce-with-inline-actor.json") |> Poison.decode!() + + _user = insert(:user, local: false, ap_id: data["actor"]["id"]) + other_user = insert(:user) + + {:ok, post} = CommonAPI.post(other_user, %{status: "kroegeroeg"}) + + data = + data + |> put_in(["object", "id"], post.data["object"]) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["actor"] == "https://puckipedia.com/" + end + + test "it works for incoming announces, fetching the announced object" do + data = + File.read!("test/fixtures/mastodon-announce.json") + |> Poison.decode!() + |> Map.put("object", "http://mastodon.example.org/users/admin/statuses/99541947525187367") + + Tesla.Mock.mock(fn + %{method: :get} -> + %Tesla.Env{status: 200, body: File.read!("test/fixtures/mastodon-note-object.json")} + end) + + _user = insert(:user, local: false, ap_id: data["actor"]) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["actor"] == "http://mastodon.example.org/users/admin" + assert data["type"] == "Announce" + + assert data["id"] == + "http://mastodon.example.org/users/admin/statuses/99542391527669785/activity" + + assert data["object"] == + "http://mastodon.example.org/users/admin/statuses/99541947525187367" + + assert(Activity.get_create_by_object_ap_id(data["object"])) + end + + @tag capture_log: true + test "it works for incoming announces with an existing activity" do + user = insert(:user) + {:ok, activity} = CommonAPI.post(user, %{status: "hey"}) + + data = + File.read!("test/fixtures/mastodon-announce.json") + |> Poison.decode!() + |> Map.put("object", activity.data["object"]) + + _user = insert(:user, local: false, ap_id: data["actor"]) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["actor"] == "http://mastodon.example.org/users/admin" + assert data["type"] == "Announce" + + assert data["id"] == + "http://mastodon.example.org/users/admin/statuses/99542391527669785/activity" + + assert data["object"] == activity.data["object"] + + assert Activity.get_create_by_object_ap_id(data["object"]).id == activity.id + end + + # Ignore inlined activities for now + @tag skip: true + test "it works for incoming announces with an inlined activity" do + data = + File.read!("test/fixtures/mastodon-announce-private.json") + |> Poison.decode!() + + _user = + insert(:user, + local: false, + ap_id: data["actor"], + follower_address: data["actor"] <> "/followers" + ) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["actor"] == "http://mastodon.example.org/users/admin" + assert data["type"] == "Announce" + + assert data["id"] == + "http://mastodon.example.org/users/admin/statuses/99542391527669785/activity" + + object = Object.normalize(data["object"]) + + assert object.data["id"] == "http://mastodon.example.org/@admin/99541947525187368" + assert object.data["content"] == "this is a private toot" + end + + @tag capture_log: true + test "it rejects incoming announces with an inlined activity from another origin" do + Tesla.Mock.mock(fn + %{method: :get} -> %Tesla.Env{status: 404, body: ""} + end) + + data = + File.read!("test/fixtures/bogus-mastodon-announce.json") + |> Poison.decode!() + + _user = insert(:user, local: false, ap_id: data["actor"]) + + assert {:error, e} = Transmogrifier.handle_incoming(data) + end + + test "it does not clobber the addressing on announce activities" do + user = insert(:user) + {:ok, activity} = CommonAPI.post(user, %{status: "hey"}) + + data = + File.read!("test/fixtures/mastodon-announce.json") + |> Poison.decode!() + |> Map.put("object", Object.normalize(activity).data["id"]) + |> Map.put("to", ["http://mastodon.example.org/users/admin/followers"]) + |> Map.put("cc", []) + + _user = + insert(:user, + local: false, + ap_id: data["actor"], + follower_address: "http://mastodon.example.org/users/admin/followers" + ) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["to"] == ["http://mastodon.example.org/users/admin/followers"] + end +end diff --git a/test/web/activity_pub/transmogrifier/block_handling_test.exs b/test/web/activity_pub/transmogrifier/block_handling_test.exs new file mode 100644 index 000000000..71f1a0ed5 --- /dev/null +++ b/test/web/activity_pub/transmogrifier/block_handling_test.exs @@ -0,0 +1,63 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.Transmogrifier.BlockHandlingTest do + use Pleroma.DataCase + + alias Pleroma.Activity + alias Pleroma.User + alias Pleroma.Web.ActivityPub.Transmogrifier + + import Pleroma.Factory + + test "it works for incoming blocks" do + user = insert(:user) + + data = + File.read!("test/fixtures/mastodon-block-activity.json") + |> Poison.decode!() + |> Map.put("object", user.ap_id) + + blocker = insert(:user, ap_id: data["actor"]) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["type"] == "Block" + assert data["object"] == user.ap_id + assert data["actor"] == "http://mastodon.example.org/users/admin" + + assert User.blocks?(blocker, user) + end + + test "incoming blocks successfully tear down any follow relationship" do + blocker = insert(:user) + blocked = insert(:user) + + data = + File.read!("test/fixtures/mastodon-block-activity.json") + |> Poison.decode!() + |> Map.put("object", blocked.ap_id) + |> Map.put("actor", blocker.ap_id) + + {:ok, blocker} = User.follow(blocker, blocked) + {:ok, blocked} = User.follow(blocked, blocker) + + assert User.following?(blocker, blocked) + assert User.following?(blocked, blocker) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + + assert data["type"] == "Block" + assert data["object"] == blocked.ap_id + assert data["actor"] == blocker.ap_id + + blocker = User.get_cached_by_ap_id(data["actor"]) + blocked = User.get_cached_by_ap_id(data["object"]) + + assert User.blocks?(blocker, blocked) + + refute User.following?(blocker, blocked) + refute User.following?(blocked, blocker) + end +end diff --git a/test/web/activity_pub/transmogrifier/chat_message_test.exs b/test/web/activity_pub/transmogrifier/chat_message_test.exs new file mode 100644 index 000000000..d6736dc3e --- /dev/null +++ b/test/web/activity_pub/transmogrifier/chat_message_test.exs @@ -0,0 +1,153 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.Transmogrifier.ChatMessageTest do + use Pleroma.DataCase + + import Pleroma.Factory + + alias Pleroma.Activity + alias Pleroma.Chat + alias Pleroma.Object + alias Pleroma.Web.ActivityPub.Transmogrifier + + describe "handle_incoming" do + test "handles chonks with attachment" do + data = %{ + "@context" => "https://www.w3.org/ns/activitystreams", + "actor" => "https://honk.tedunangst.com/u/tedu", + "id" => "https://honk.tedunangst.com/u/tedu/honk/x6gt8X8PcyGkQcXxzg1T", + "object" => %{ + "attachment" => [ + %{ + "mediaType" => "image/jpeg", + "name" => "298p3RG7j27tfsZ9RQ.jpg", + "summary" => "298p3RG7j27tfsZ9RQ.jpg", + "type" => "Document", + "url" => "https://honk.tedunangst.com/d/298p3RG7j27tfsZ9RQ.jpg" + } + ], + "attributedTo" => "https://honk.tedunangst.com/u/tedu", + "content" => "", + "id" => "https://honk.tedunangst.com/u/tedu/chonk/26L4wl5yCbn4dr4y1b", + "published" => "2020-05-18T01:13:03Z", + "to" => [ + "https://dontbulling.me/users/lain" + ], + "type" => "ChatMessage" + }, + "published" => "2020-05-18T01:13:03Z", + "to" => [ + "https://dontbulling.me/users/lain" + ], + "type" => "Create" + } + + _user = insert(:user, ap_id: data["actor"]) + _user = insert(:user, ap_id: hd(data["to"])) + + assert {:ok, _activity} = Transmogrifier.handle_incoming(data) + end + + test "it rejects messages that don't contain content" do + data = + File.read!("test/fixtures/create-chat-message.json") + |> Poison.decode!() + + object = + data["object"] + |> Map.delete("content") + + data = + data + |> Map.put("object", object) + + _author = + insert(:user, ap_id: data["actor"], local: false, last_refreshed_at: DateTime.utc_now()) + + _recipient = + insert(:user, + ap_id: List.first(data["to"]), + local: true, + last_refreshed_at: DateTime.utc_now() + ) + + {:error, _} = Transmogrifier.handle_incoming(data) + end + + test "it rejects messages that don't concern local users" do + data = + File.read!("test/fixtures/create-chat-message.json") + |> Poison.decode!() + + _author = + insert(:user, ap_id: data["actor"], local: false, last_refreshed_at: DateTime.utc_now()) + + _recipient = + insert(:user, + ap_id: List.first(data["to"]), + local: false, + last_refreshed_at: DateTime.utc_now() + ) + + {:error, _} = Transmogrifier.handle_incoming(data) + end + + test "it rejects messages where the `to` field of activity and object don't match" do + data = + File.read!("test/fixtures/create-chat-message.json") + |> Poison.decode!() + + author = insert(:user, ap_id: data["actor"]) + _recipient = insert(:user, ap_id: List.first(data["to"])) + + data = + data + |> Map.put("to", author.ap_id) + + assert match?({:error, _}, Transmogrifier.handle_incoming(data)) + refute Object.get_by_ap_id(data["object"]["id"]) + end + + test "it fetches the actor if they aren't in our system" do + Tesla.Mock.mock(fn env -> apply(HttpRequestMock, :request, [env]) end) + + data = + File.read!("test/fixtures/create-chat-message.json") + |> Poison.decode!() + |> Map.put("actor", "http://mastodon.example.org/users/admin") + |> put_in(["object", "actor"], "http://mastodon.example.org/users/admin") + + _recipient = insert(:user, ap_id: List.first(data["to"]), local: true) + + {:ok, %Activity{} = _activity} = Transmogrifier.handle_incoming(data) + end + + test "it inserts it and creates a chat" do + data = + File.read!("test/fixtures/create-chat-message.json") + |> Poison.decode!() + + author = + insert(:user, ap_id: data["actor"], local: false, last_refreshed_at: DateTime.utc_now()) + + recipient = insert(:user, ap_id: List.first(data["to"]), local: true) + + {:ok, %Activity{} = activity} = Transmogrifier.handle_incoming(data) + assert activity.local == false + + assert activity.actor == author.ap_id + assert activity.recipients == [recipient.ap_id, author.ap_id] + + %Object{} = object = Object.get_by_ap_id(activity.data["object"]) + + assert object + assert object.data["content"] == "You expected a cute girl? Too bad. alert('XSS')" + assert match?(%{"firefox" => _}, object.data["emoji"]) + + refute Chat.get(author.id, recipient.ap_id) + assert Chat.get(recipient.id, author.ap_id) + end + end +end diff --git a/test/web/activity_pub/transmogrifier/follow_handling_test.exs b/test/web/activity_pub/transmogrifier/follow_handling_test.exs index 967389fae..06c39eed6 100644 --- a/test/web/activity_pub/transmogrifier/follow_handling_test.exs +++ b/test/web/activity_pub/transmogrifier/follow_handling_test.exs @@ -5,6 +5,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.FollowHandlingTest do use Pleroma.DataCase alias Pleroma.Activity + alias Pleroma.Notification alias Pleroma.Repo alias Pleroma.User alias Pleroma.Web.ActivityPub.Transmogrifier @@ -12,6 +13,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.FollowHandlingTest do import Pleroma.Factory import Ecto.Query + import Mock setup_all do Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) @@ -57,9 +59,12 @@ test "it works for incoming follow requests" do activity = Repo.get(Activity, activity.id) assert activity.data["state"] == "accept" assert User.following?(User.get_cached_by_ap_id(data["actor"]), user) + + [notification] = Notification.for_user(user) + assert notification.type == "follow" end - test "with locked accounts, it does not create a follow or an accept" do + test "with locked accounts, it does create a Follow, but not an Accept" do user = insert(:user, locked: true) data = @@ -81,6 +86,9 @@ test "with locked accounts, it does not create a follow or an accept" do |> Repo.all() assert Enum.empty?(accepts) + + [notification] = Notification.for_user(user) + assert notification.type == "follow_request" end test "it works for follow requests when you are already followed, creating a new accept activity" do @@ -144,6 +152,23 @@ test "it rejects incoming follow requests from blocked users when deny_follow_bl assert activity.data["state"] == "reject" end + test "it rejects incoming follow requests if the following errors for some reason" do + user = insert(:user) + + data = + File.read!("test/fixtures/mastodon-follow-activity.json") + |> Poison.decode!() + |> Map.put("object", user.ap_id) + + with_mock Pleroma.User, [:passthrough], follow: fn _, _ -> {:error, :testing} end do + {:ok, %Activity{data: %{"id" => id}}} = Transmogrifier.handle_incoming(data) + + %Activity{} = activity = Activity.get_by_ap_id(id) + + assert activity.data["state"] == "reject" + end + end + test "it works for incoming follow requests from hubzilla" do user = insert(:user) diff --git a/test/web/activity_pub/transmogrifier/user_update_handling_test.exs b/test/web/activity_pub/transmogrifier/user_update_handling_test.exs new file mode 100644 index 000000000..64636656c --- /dev/null +++ b/test/web/activity_pub/transmogrifier/user_update_handling_test.exs @@ -0,0 +1,159 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.Transmogrifier.UserUpdateHandlingTest do + use Pleroma.DataCase + + alias Pleroma.Activity + alias Pleroma.User + alias Pleroma.Web.ActivityPub.Transmogrifier + + import Pleroma.Factory + + test "it works for incoming update activities" do + user = insert(:user, local: false) + + update_data = File.read!("test/fixtures/mastodon-update.json") |> Poison.decode!() + + object = + update_data["object"] + |> Map.put("actor", user.ap_id) + |> Map.put("id", user.ap_id) + + update_data = + update_data + |> Map.put("actor", user.ap_id) + |> Map.put("object", object) + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(update_data) + + assert data["id"] == update_data["id"] + + user = User.get_cached_by_ap_id(data["actor"]) + assert user.name == "gargle" + + assert user.avatar["url"] == [ + %{ + "href" => + "https://cd.niu.moe/accounts/avatars/000/033/323/original/fd7f8ae0b3ffedc9.jpeg" + } + ] + + assert user.banner["url"] == [ + %{ + "href" => + "https://cd.niu.moe/accounts/headers/000/033/323/original/850b3448fa5fd477.png" + } + ] + + assert user.bio == "

Some bio

" + end + + test "it works with alsoKnownAs" do + %{ap_id: actor} = insert(:user, local: false) + + assert User.get_cached_by_ap_id(actor).also_known_as == [] + + {:ok, _activity} = + "test/fixtures/mastodon-update.json" + |> File.read!() + |> Poison.decode!() + |> Map.put("actor", actor) + |> Map.update!("object", fn object -> + object + |> Map.put("actor", actor) + |> Map.put("id", actor) + |> Map.put("alsoKnownAs", [ + "http://mastodon.example.org/users/foo", + "http://example.org/users/bar" + ]) + end) + |> Transmogrifier.handle_incoming() + + assert User.get_cached_by_ap_id(actor).also_known_as == [ + "http://mastodon.example.org/users/foo", + "http://example.org/users/bar" + ] + end + + test "it works with custom profile fields" do + user = insert(:user, local: false) + + assert user.fields == [] + + update_data = File.read!("test/fixtures/mastodon-update.json") |> Poison.decode!() + + object = + update_data["object"] + |> Map.put("actor", user.ap_id) + |> Map.put("id", user.ap_id) + + update_data = + update_data + |> Map.put("actor", user.ap_id) + |> Map.put("object", object) + + {:ok, _update_activity} = Transmogrifier.handle_incoming(update_data) + + user = User.get_cached_by_ap_id(user.ap_id) + + assert user.fields == [ + %{"name" => "foo", "value" => "updated"}, + %{"name" => "foo1", "value" => "updated"} + ] + + Pleroma.Config.put([:instance, :max_remote_account_fields], 2) + + update_data = + update_data + |> put_in(["object", "attachment"], [ + %{"name" => "foo", "type" => "PropertyValue", "value" => "bar"}, + %{"name" => "foo11", "type" => "PropertyValue", "value" => "bar11"}, + %{"name" => "foo22", "type" => "PropertyValue", "value" => "bar22"} + ]) + |> Map.put("id", update_data["id"] <> ".") + + {:ok, _} = Transmogrifier.handle_incoming(update_data) + + user = User.get_cached_by_ap_id(user.ap_id) + + assert user.fields == [ + %{"name" => "foo", "value" => "updated"}, + %{"name" => "foo1", "value" => "updated"} + ] + + update_data = + update_data + |> put_in(["object", "attachment"], []) + |> Map.put("id", update_data["id"] <> ".") + + {:ok, _} = Transmogrifier.handle_incoming(update_data) + + user = User.get_cached_by_ap_id(user.ap_id) + + assert user.fields == [] + end + + test "it works for incoming update activities which lock the account" do + user = insert(:user, local: false) + + update_data = File.read!("test/fixtures/mastodon-update.json") |> Poison.decode!() + + object = + update_data["object"] + |> Map.put("actor", user.ap_id) + |> Map.put("id", user.ap_id) + |> Map.put("manuallyApprovesFollowers", true) + + update_data = + update_data + |> Map.put("actor", user.ap_id) + |> Map.put("object", object) + + {:ok, %Activity{local: false}} = Transmogrifier.handle_incoming(update_data) + + user = User.get_cached_by_ap_id(user.ap_id) + assert user.locked == true + end +end diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 0a54e3bb9..6a53fd3f0 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -28,6 +28,63 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do setup do: clear_config([:instance, :max_remote_account_fields]) describe "handle_incoming" do + test "it works for incoming notices with tag not being an array (kroeg)" do + data = File.read!("test/fixtures/kroeg-array-less-emoji.json") |> Poison.decode!() + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + object = Object.normalize(data["object"]) + + assert object.data["emoji"] == %{ + "icon_e_smile" => "https://puckipedia.com/forum/images/smilies/icon_e_smile.png" + } + + data = File.read!("test/fixtures/kroeg-array-less-hashtag.json") |> Poison.decode!() + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + object = Object.normalize(data["object"]) + + assert "test" in object.data["tag"] + end + + test "it works for incoming notices with url not being a string (prismo)" do + data = File.read!("test/fixtures/prismo-url-map.json") |> Poison.decode!() + + {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + object = Object.normalize(data["object"]) + + assert object.data["url"] == "https://prismo.news/posts/83" + end + + test "it cleans up incoming notices which are not really DMs" do + user = insert(:user) + other_user = insert(:user) + + to = [user.ap_id, other_user.ap_id] + + data = + File.read!("test/fixtures/mastodon-post-activity.json") + |> Poison.decode!() + |> Map.put("to", to) + |> Map.put("cc", []) + + object = + data["object"] + |> Map.put("to", to) + |> Map.put("cc", []) + + data = Map.put(data, "object", object) + + {:ok, %Activity{data: data, local: false} = activity} = Transmogrifier.handle_incoming(data) + + assert data["to"] == [] + assert data["cc"] == to + + object_data = Object.normalize(activity).data + + assert object_data["to"] == [] + assert object_data["cc"] == to + end + test "it ignores an incoming notice if we already have it" do activity = insert(:note_activity) @@ -260,172 +317,6 @@ test "it works for incoming notices with to/cc not being an array (kroeg)" do "

henlo from my Psion netBook

message sent from my Psion netBook

" end - test "it works for incoming honk announces" do - _user = insert(:user, ap_id: "https://honktest/u/test", local: false) - other_user = insert(:user) - {:ok, post} = CommonAPI.post(other_user, %{status: "bonkeronk"}) - - announce = %{ - "@context" => "https://www.w3.org/ns/activitystreams", - "actor" => "https://honktest/u/test", - "id" => "https://honktest/u/test/bonk/1793M7B9MQ48847vdx", - "object" => post.data["object"], - "published" => "2019-06-25T19:33:58Z", - "to" => "https://www.w3.org/ns/activitystreams#Public", - "type" => "Announce" - } - - {:ok, %Activity{local: false}} = Transmogrifier.handle_incoming(announce) - end - - test "it works for incoming announces with actor being inlined (kroeg)" do - data = File.read!("test/fixtures/kroeg-announce-with-inline-actor.json") |> Poison.decode!() - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - - assert data["actor"] == "https://puckipedia.com/" - end - - test "it works for incoming notices with tag not being an array (kroeg)" do - data = File.read!("test/fixtures/kroeg-array-less-emoji.json") |> Poison.decode!() - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - object = Object.normalize(data["object"]) - - assert object.data["emoji"] == %{ - "icon_e_smile" => "https://puckipedia.com/forum/images/smilies/icon_e_smile.png" - } - - data = File.read!("test/fixtures/kroeg-array-less-hashtag.json") |> Poison.decode!() - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - object = Object.normalize(data["object"]) - - assert "test" in object.data["tag"] - end - - test "it works for incoming notices with url not being a string (prismo)" do - data = File.read!("test/fixtures/prismo-url-map.json") |> Poison.decode!() - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - object = Object.normalize(data["object"]) - - assert object.data["url"] == "https://prismo.news/posts/83" - end - - test "it cleans up incoming notices which are not really DMs" do - user = insert(:user) - other_user = insert(:user) - - to = [user.ap_id, other_user.ap_id] - - data = - File.read!("test/fixtures/mastodon-post-activity.json") - |> Poison.decode!() - |> Map.put("to", to) - |> Map.put("cc", []) - - object = - data["object"] - |> Map.put("to", to) - |> Map.put("cc", []) - - data = Map.put(data, "object", object) - - {:ok, %Activity{data: data, local: false} = activity} = Transmogrifier.handle_incoming(data) - - assert data["to"] == [] - assert data["cc"] == to - - object_data = Object.normalize(activity).data - - assert object_data["to"] == [] - assert object_data["cc"] == to - end - - test "it works for incoming announces" do - data = File.read!("test/fixtures/mastodon-announce.json") |> Poison.decode!() - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - - assert data["actor"] == "http://mastodon.example.org/users/admin" - assert data["type"] == "Announce" - - assert data["id"] == - "http://mastodon.example.org/users/admin/statuses/99542391527669785/activity" - - assert data["object"] == - "http://mastodon.example.org/users/admin/statuses/99541947525187367" - - assert Activity.get_create_by_object_ap_id(data["object"]) - end - - test "it works for incoming announces with an existing activity" do - user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{status: "hey"}) - - data = - File.read!("test/fixtures/mastodon-announce.json") - |> Poison.decode!() - |> Map.put("object", activity.data["object"]) - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - - assert data["actor"] == "http://mastodon.example.org/users/admin" - assert data["type"] == "Announce" - - assert data["id"] == - "http://mastodon.example.org/users/admin/statuses/99542391527669785/activity" - - assert data["object"] == activity.data["object"] - - assert Activity.get_create_by_object_ap_id(data["object"]).id == activity.id - end - - test "it works for incoming announces with an inlined activity" do - data = - File.read!("test/fixtures/mastodon-announce-private.json") - |> Poison.decode!() - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - - assert data["actor"] == "http://mastodon.example.org/users/admin" - assert data["type"] == "Announce" - - assert data["id"] == - "http://mastodon.example.org/users/admin/statuses/99542391527669785/activity" - - object = Object.normalize(data["object"]) - - assert object.data["id"] == "http://mastodon.example.org/@admin/99541947525187368" - assert object.data["content"] == "this is a private toot" - end - - @tag capture_log: true - test "it rejects incoming announces with an inlined activity from another origin" do - data = - File.read!("test/fixtures/bogus-mastodon-announce.json") - |> Poison.decode!() - - assert :error = Transmogrifier.handle_incoming(data) - end - - test "it does not clobber the addressing on announce activities" do - user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{status: "hey"}) - - data = - File.read!("test/fixtures/mastodon-announce.json") - |> Poison.decode!() - |> Map.put("object", Object.normalize(activity).data["id"]) - |> Map.put("to", ["http://mastodon.example.org/users/admin/followers"]) - |> Map.put("cc", []) - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - - assert data["to"] == ["http://mastodon.example.org/users/admin/followers"] - end - test "it ensures that as:Public activities make it to their followers collection" do user = insert(:user) @@ -510,162 +401,6 @@ test "it strips internal reactions" do refute Map.has_key?(object_data, "reaction_count") end - test "it works for incoming update activities" do - data = File.read!("test/fixtures/mastodon-post-activity.json") |> Poison.decode!() - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - update_data = File.read!("test/fixtures/mastodon-update.json") |> Poison.decode!() - - object = - update_data["object"] - |> Map.put("actor", data["actor"]) - |> Map.put("id", data["actor"]) - - update_data = - update_data - |> Map.put("actor", data["actor"]) - |> Map.put("object", object) - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(update_data) - - assert data["id"] == update_data["id"] - - user = User.get_cached_by_ap_id(data["actor"]) - assert user.name == "gargle" - - assert user.avatar["url"] == [ - %{ - "href" => - "https://cd.niu.moe/accounts/avatars/000/033/323/original/fd7f8ae0b3ffedc9.jpeg" - } - ] - - assert user.banner["url"] == [ - %{ - "href" => - "https://cd.niu.moe/accounts/headers/000/033/323/original/850b3448fa5fd477.png" - } - ] - - assert user.bio == "

Some bio

" - end - - test "it works with alsoKnownAs" do - {:ok, %Activity{data: %{"actor" => actor}}} = - "test/fixtures/mastodon-post-activity.json" - |> File.read!() - |> Poison.decode!() - |> Transmogrifier.handle_incoming() - - assert User.get_cached_by_ap_id(actor).also_known_as == ["http://example.org/users/foo"] - - {:ok, _activity} = - "test/fixtures/mastodon-update.json" - |> File.read!() - |> Poison.decode!() - |> Map.put("actor", actor) - |> Map.update!("object", fn object -> - object - |> Map.put("actor", actor) - |> Map.put("id", actor) - |> Map.put("alsoKnownAs", [ - "http://mastodon.example.org/users/foo", - "http://example.org/users/bar" - ]) - end) - |> Transmogrifier.handle_incoming() - - assert User.get_cached_by_ap_id(actor).also_known_as == [ - "http://mastodon.example.org/users/foo", - "http://example.org/users/bar" - ] - end - - test "it works with custom profile fields" do - {:ok, activity} = - "test/fixtures/mastodon-post-activity.json" - |> File.read!() - |> Poison.decode!() - |> Transmogrifier.handle_incoming() - - user = User.get_cached_by_ap_id(activity.actor) - - assert user.fields == [ - %{"name" => "foo", "value" => "bar"}, - %{"name" => "foo1", "value" => "bar1"} - ] - - update_data = File.read!("test/fixtures/mastodon-update.json") |> Poison.decode!() - - object = - update_data["object"] - |> Map.put("actor", user.ap_id) - |> Map.put("id", user.ap_id) - - update_data = - update_data - |> Map.put("actor", user.ap_id) - |> Map.put("object", object) - - {:ok, _update_activity} = Transmogrifier.handle_incoming(update_data) - - user = User.get_cached_by_ap_id(user.ap_id) - - assert user.fields == [ - %{"name" => "foo", "value" => "updated"}, - %{"name" => "foo1", "value" => "updated"} - ] - - Pleroma.Config.put([:instance, :max_remote_account_fields], 2) - - update_data = - put_in(update_data, ["object", "attachment"], [ - %{"name" => "foo", "type" => "PropertyValue", "value" => "bar"}, - %{"name" => "foo11", "type" => "PropertyValue", "value" => "bar11"}, - %{"name" => "foo22", "type" => "PropertyValue", "value" => "bar22"} - ]) - - {:ok, _} = Transmogrifier.handle_incoming(update_data) - - user = User.get_cached_by_ap_id(user.ap_id) - - assert user.fields == [ - %{"name" => "foo", "value" => "updated"}, - %{"name" => "foo1", "value" => "updated"} - ] - - update_data = put_in(update_data, ["object", "attachment"], []) - - {:ok, _} = Transmogrifier.handle_incoming(update_data) - - user = User.get_cached_by_ap_id(user.ap_id) - - assert user.fields == [] - end - - test "it works for incoming update activities which lock the account" do - data = File.read!("test/fixtures/mastodon-post-activity.json") |> Poison.decode!() - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - update_data = File.read!("test/fixtures/mastodon-update.json") |> Poison.decode!() - - object = - update_data["object"] - |> Map.put("actor", data["actor"]) - |> Map.put("id", data["actor"]) - |> Map.put("manuallyApprovesFollowers", true) - - update_data = - update_data - |> Map.put("actor", data["actor"]) - |> Map.put("object", object) - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(update_data) - - user = User.get_cached_by_ap_id(data["actor"]) - assert user.locked == true - end - test "it works for incomming unfollows with an existing follow" do user = insert(:user) @@ -710,56 +445,6 @@ test "it works for incoming follows to locked account" do assert [^pending_follower] = User.get_follow_requests(user) end - test "it works for incoming blocks" do - user = insert(:user) - - data = - File.read!("test/fixtures/mastodon-block-activity.json") - |> Poison.decode!() - |> Map.put("object", user.ap_id) - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - - assert data["type"] == "Block" - assert data["object"] == user.ap_id - assert data["actor"] == "http://mastodon.example.org/users/admin" - - blocker = User.get_cached_by_ap_id(data["actor"]) - - assert User.blocks?(blocker, user) - end - - test "incoming blocks successfully tear down any follow relationship" do - blocker = insert(:user) - blocked = insert(:user) - - data = - File.read!("test/fixtures/mastodon-block-activity.json") - |> Poison.decode!() - |> Map.put("object", blocked.ap_id) - |> Map.put("actor", blocker.ap_id) - - {:ok, blocker} = User.follow(blocker, blocked) - {:ok, blocked} = User.follow(blocked, blocker) - - assert User.following?(blocker, blocked) - assert User.following?(blocked, blocker) - - {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) - - assert data["type"] == "Block" - assert data["object"] == blocked.ap_id - assert data["actor"] == blocker.ap_id - - blocker = User.get_cached_by_ap_id(data["actor"]) - blocked = User.get_cached_by_ap_id(data["object"]) - - assert User.blocks?(blocker, blocked) - - refute User.following?(blocker, blocked) - refute User.following?(blocked, blocker) - end - test "it works for incoming accepts which were pre-accepted" do follower = insert(:user) followed = insert(:user) @@ -1188,7 +873,7 @@ test "it inlines private announced objects" do {:ok, activity} = CommonAPI.post(user, %{status: "hey", visibility: "private"}) - {:ok, announce_activity, _} = CommonAPI.repeat(activity.id, user) + {:ok, announce_activity} = CommonAPI.repeat(activity.id, user) {:ok, modified} = Transmogrifier.prepare_outgoing(announce_activity.data) @@ -1203,23 +888,28 @@ test "it turns mentions into tags" do {:ok, activity} = CommonAPI.post(user, %{status: "hey, @#{other_user.nickname}, how are ya? #2hu"}) - {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) - object = modified["object"] + with_mock Pleroma.Notification, + get_notified_from_activity: fn _, _ -> [] end do + {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) - expected_mention = %{ - "href" => other_user.ap_id, - "name" => "@#{other_user.nickname}", - "type" => "Mention" - } + object = modified["object"] - expected_tag = %{ - "href" => Pleroma.Web.Endpoint.url() <> "/tags/2hu", - "type" => "Hashtag", - "name" => "#2hu" - } + expected_mention = %{ + "href" => other_user.ap_id, + "name" => "@#{other_user.nickname}", + "type" => "Mention" + } - assert Enum.member?(object["tag"], expected_tag) - assert Enum.member?(object["tag"], expected_mention) + expected_tag = %{ + "href" => Pleroma.Web.Endpoint.url() <> "/tags/2hu", + "type" => "Hashtag", + "name" => "#2hu" + } + + refute called(Pleroma.Notification.get_notified_from_activity(:_, :_)) + assert Enum.member?(object["tag"], expected_tag) + assert Enum.member?(object["tag"], expected_mention) + end end test "it adds the sensitive property" do @@ -1438,7 +1128,7 @@ test "it rejects activities which reference objects with bogus origins" do } assert capture_log(fn -> - :error = Transmogrifier.handle_incoming(data) + {:error, _} = Transmogrifier.handle_incoming(data) end) =~ "Object containment failed" end @@ -1453,7 +1143,7 @@ test "it rejects activities which reference objects that have an incorrect attri } assert capture_log(fn -> - :error = Transmogrifier.handle_incoming(data) + {:error, _} = Transmogrifier.handle_incoming(data) end) =~ "Object containment failed" end @@ -1468,7 +1158,7 @@ test "it rejects activities which reference objects that have an incorrect attri } assert capture_log(fn -> - :error = Transmogrifier.handle_incoming(data) + {:error, _} = Transmogrifier.handle_incoming(data) end) =~ "Object containment failed" end end @@ -1675,9 +1365,6 @@ test "returns modified object when allowed incoming reply", %{data: data} do assert modified_object["inReplyToAtomUri"] == "https://shitposter.club/notice/2827873" - assert modified_object["conversation"] == - "tag:shitposter.club,2017-05-05:objectType=thread:nonce=3c16e9c2681f6d26" - assert modified_object["context"] == "tag:shitposter.club,2017-05-05:objectType=thread:nonce=3c16e9c2681f6d26" end diff --git a/test/web/activity_pub/utils_test.exs b/test/web/activity_pub/utils_test.exs index 9e0a0f1c4..2f9ecb5a3 100644 --- a/test/web/activity_pub/utils_test.exs +++ b/test/web/activity_pub/utils_test.exs @@ -27,16 +27,6 @@ test "fetches the latest Follow activity" do end end - describe "fetch the latest Block" do - test "fetches the latest Block activity" do - blocker = insert(:user) - blocked = insert(:user) - {:ok, activity} = ActivityPub.block(blocker, blocked) - - assert activity == Utils.fetch_latest_block(blocker, blocked) - end - end - describe "determine_explicit_mentions()" do test "works with an object that has mentions" do object = %{ @@ -334,7 +324,7 @@ test "fetches existing announce" do assert object = Object.normalize(note_activity) actor = insert(:user) - {:ok, announce, _object} = ActivityPub.announce(actor, object) + {:ok, announce} = CommonAPI.repeat(note_activity.id, actor) assert Utils.get_existing_announce(actor.ap_id, object) == announce end end @@ -344,9 +334,9 @@ test "fetches last block activities" do user1 = insert(:user) user2 = insert(:user) - assert {:ok, %Activity{} = _} = ActivityPub.block(user1, user2) - assert {:ok, %Activity{} = _} = ActivityPub.block(user1, user2) - assert {:ok, %Activity{} = activity} = ActivityPub.block(user1, user2) + assert {:ok, %Activity{} = _} = CommonAPI.block(user1, user2) + assert {:ok, %Activity{} = _} = CommonAPI.block(user1, user2) + assert {:ok, %Activity{} = activity} = CommonAPI.block(user1, user2) assert Utils.fetch_latest_block(user1, user2) == activity end diff --git a/test/web/activity_pub/views/object_view_test.exs b/test/web/activity_pub/views/object_view_test.exs index 43f0617f0..f0389845d 100644 --- a/test/web/activity_pub/views/object_view_test.exs +++ b/test/web/activity_pub/views/object_view_test.exs @@ -73,7 +73,7 @@ test "renders an announce activity" do object = Object.normalize(note) user = insert(:user) - {:ok, announce_activity, _} = CommonAPI.repeat(note.id, user) + {:ok, announce_activity} = CommonAPI.repeat(note.id, user) result = ObjectView.render("object.json", %{object: announce_activity}) diff --git a/test/web/activity_pub/views/user_view_test.exs b/test/web/activity_pub/views/user_view_test.exs index 20b0f223c..bec15a996 100644 --- a/test/web/activity_pub/views/user_view_test.exs +++ b/test/web/activity_pub/views/user_view_test.exs @@ -158,35 +158,4 @@ test "sets correct totalItems when follows are hidden but the follow counter is assert %{"totalItems" => 1} = UserView.render("following.json", %{user: user}) end end - - test "activity collection page aginates correctly" do - user = insert(:user) - - posts = - for i <- 0..25 do - {:ok, activity} = CommonAPI.post(user, %{status: "post #{i}"}) - activity - end - - # outbox sorts chronologically, newest first, with ten per page - posts = Enum.reverse(posts) - - %{"next" => next_url} = - UserView.render("activity_collection_page.json", %{ - iri: "#{user.ap_id}/outbox", - activities: Enum.take(posts, 10) - }) - - next_id = Enum.at(posts, 9).id - assert next_url =~ next_id - - %{"next" => next_url} = - UserView.render("activity_collection_page.json", %{ - iri: "#{user.ap_id}/outbox", - activities: Enum.take(Enum.drop(posts, 10), 10) - }) - - next_id = Enum.at(posts, 19).id - assert next_url =~ next_id - end end diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs deleted file mode 100644 index 370d876d0..000000000 --- a/test/web/admin_api/admin_api_controller_test.exs +++ /dev/null @@ -1,3864 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do - use Pleroma.Web.ConnCase - use Oban.Testing, repo: Pleroma.Repo - - import ExUnit.CaptureLog - import Mock - import Pleroma.Factory - - alias Pleroma.Activity - alias Pleroma.Config - alias Pleroma.ConfigDB - alias Pleroma.HTML - alias Pleroma.MFA - alias Pleroma.ModerationLog - alias Pleroma.Repo - alias Pleroma.ReportNote - alias Pleroma.Tests.ObanHelpers - alias Pleroma.User - alias Pleroma.UserInviteToken - alias Pleroma.Web - alias Pleroma.Web.ActivityPub.Relay - alias Pleroma.Web.CommonAPI - alias Pleroma.Web.MediaProxy - - setup_all do - Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) - - :ok - end - - setup do - admin = insert(:user, is_admin: true) - token = insert(:oauth_admin_token, user: admin) - - conn = - build_conn() - |> assign(:user, admin) - |> assign(:token, token) - - {:ok, %{admin: admin, token: token, conn: conn}} - end - - describe "with [:auth, :enforce_oauth_admin_scope_usage]," do - setup do: clear_config([:auth, :enforce_oauth_admin_scope_usage], true) - - test "GET /api/pleroma/admin/users/:nickname requires admin:read:accounts or broader scope", - %{admin: admin} do - user = insert(:user) - url = "/api/pleroma/admin/users/#{user.nickname}" - - good_token1 = insert(:oauth_token, user: admin, scopes: ["admin"]) - good_token2 = insert(:oauth_token, user: admin, scopes: ["admin:read"]) - good_token3 = insert(:oauth_token, user: admin, scopes: ["admin:read:accounts"]) - - bad_token1 = insert(:oauth_token, user: admin, scopes: ["read:accounts"]) - bad_token2 = insert(:oauth_token, user: admin, scopes: ["admin:read:accounts:partial"]) - bad_token3 = nil - - for good_token <- [good_token1, good_token2, good_token3] do - conn = - build_conn() - |> assign(:user, admin) - |> assign(:token, good_token) - |> get(url) - - assert json_response(conn, 200) - end - - for good_token <- [good_token1, good_token2, good_token3] do - conn = - build_conn() - |> assign(:user, nil) - |> assign(:token, good_token) - |> get(url) - - assert json_response(conn, :forbidden) - end - - for bad_token <- [bad_token1, bad_token2, bad_token3] do - conn = - build_conn() - |> assign(:user, admin) - |> assign(:token, bad_token) - |> get(url) - - assert json_response(conn, :forbidden) - end - end - end - - describe "unless [:auth, :enforce_oauth_admin_scope_usage]," do - setup do: clear_config([:auth, :enforce_oauth_admin_scope_usage], false) - - test "GET /api/pleroma/admin/users/:nickname requires " <> - "read:accounts or admin:read:accounts or broader scope", - %{admin: admin} do - user = insert(:user) - url = "/api/pleroma/admin/users/#{user.nickname}" - - good_token1 = insert(:oauth_token, user: admin, scopes: ["admin"]) - good_token2 = insert(:oauth_token, user: admin, scopes: ["admin:read"]) - good_token3 = insert(:oauth_token, user: admin, scopes: ["admin:read:accounts"]) - good_token4 = insert(:oauth_token, user: admin, scopes: ["read:accounts"]) - good_token5 = insert(:oauth_token, user: admin, scopes: ["read"]) - - good_tokens = [good_token1, good_token2, good_token3, good_token4, good_token5] - - bad_token1 = insert(:oauth_token, user: admin, scopes: ["read:accounts:partial"]) - bad_token2 = insert(:oauth_token, user: admin, scopes: ["admin:read:accounts:partial"]) - bad_token3 = nil - - for good_token <- good_tokens do - conn = - build_conn() - |> assign(:user, admin) - |> assign(:token, good_token) - |> get(url) - - assert json_response(conn, 200) - end - - for good_token <- good_tokens do - conn = - build_conn() - |> assign(:user, nil) - |> assign(:token, good_token) - |> get(url) - - assert json_response(conn, :forbidden) - end - - for bad_token <- [bad_token1, bad_token2, bad_token3] do - conn = - build_conn() - |> assign(:user, admin) - |> assign(:token, bad_token) - |> get(url) - - assert json_response(conn, :forbidden) - end - end - end - - describe "DELETE /api/pleroma/admin/users" do - test "single user", %{admin: admin, conn: conn} do - user = insert(:user) - - with_mock Pleroma.Web.Federator, - publish: fn _ -> nil end do - conn = - conn - |> put_req_header("accept", "application/json") - |> delete("/api/pleroma/admin/users?nickname=#{user.nickname}") - - ObanHelpers.perform_all() - - assert User.get_by_nickname(user.nickname).deactivated - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} deleted users: @#{user.nickname}" - - assert json_response(conn, 200) == [user.nickname] - - assert called(Pleroma.Web.Federator.publish(:_)) - end - end - - test "multiple users", %{admin: admin, conn: conn} do - user_one = insert(:user) - user_two = insert(:user) - - conn = - conn - |> put_req_header("accept", "application/json") - |> delete("/api/pleroma/admin/users", %{ - nicknames: [user_one.nickname, user_two.nickname] - }) - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} deleted users: @#{user_one.nickname}, @#{user_two.nickname}" - - response = json_response(conn, 200) - assert response -- [user_one.nickname, user_two.nickname] == [] - end - end - - describe "/api/pleroma/admin/users" do - test "Create", %{conn: conn} do - conn = - conn - |> put_req_header("accept", "application/json") - |> post("/api/pleroma/admin/users", %{ - "users" => [ - %{ - "nickname" => "lain", - "email" => "lain@example.org", - "password" => "test" - }, - %{ - "nickname" => "lain2", - "email" => "lain2@example.org", - "password" => "test" - } - ] - }) - - response = json_response(conn, 200) |> Enum.map(&Map.get(&1, "type")) - assert response == ["success", "success"] - - log_entry = Repo.one(ModerationLog) - - assert ["lain", "lain2"] -- Enum.map(log_entry.data["subjects"], & &1["nickname"]) == [] - end - - test "Cannot create user with existing email", %{conn: conn} do - user = insert(:user) - - conn = - conn - |> put_req_header("accept", "application/json") - |> post("/api/pleroma/admin/users", %{ - "users" => [ - %{ - "nickname" => "lain", - "email" => user.email, - "password" => "test" - } - ] - }) - - assert json_response(conn, 409) == [ - %{ - "code" => 409, - "data" => %{ - "email" => user.email, - "nickname" => "lain" - }, - "error" => "email has already been taken", - "type" => "error" - } - ] - end - - test "Cannot create user with existing nickname", %{conn: conn} do - user = insert(:user) - - conn = - conn - |> put_req_header("accept", "application/json") - |> post("/api/pleroma/admin/users", %{ - "users" => [ - %{ - "nickname" => user.nickname, - "email" => "someuser@plerama.social", - "password" => "test" - } - ] - }) - - assert json_response(conn, 409) == [ - %{ - "code" => 409, - "data" => %{ - "email" => "someuser@plerama.social", - "nickname" => user.nickname - }, - "error" => "nickname has already been taken", - "type" => "error" - } - ] - end - - test "Multiple user creation works in transaction", %{conn: conn} do - user = insert(:user) - - conn = - conn - |> put_req_header("accept", "application/json") - |> post("/api/pleroma/admin/users", %{ - "users" => [ - %{ - "nickname" => "newuser", - "email" => "newuser@pleroma.social", - "password" => "test" - }, - %{ - "nickname" => "lain", - "email" => user.email, - "password" => "test" - } - ] - }) - - assert json_response(conn, 409) == [ - %{ - "code" => 409, - "data" => %{ - "email" => user.email, - "nickname" => "lain" - }, - "error" => "email has already been taken", - "type" => "error" - }, - %{ - "code" => 409, - "data" => %{ - "email" => "newuser@pleroma.social", - "nickname" => "newuser" - }, - "error" => "", - "type" => "error" - } - ] - - assert User.get_by_nickname("newuser") === nil - end - end - - describe "/api/pleroma/admin/users/:nickname" do - test "Show", %{conn: conn} do - user = insert(:user) - - conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}") - - expected = %{ - "deactivated" => false, - "id" => to_string(user.id), - "local" => true, - "nickname" => user.nickname, - "roles" => %{"admin" => false, "moderator" => false}, - "tags" => [], - "avatar" => User.avatar_url(user) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(user.name || user.nickname), - "confirmation_pending" => false - } - - assert expected == json_response(conn, 200) - end - - test "when the user doesn't exist", %{conn: conn} do - user = build(:user) - - conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}") - - assert "Not found" == json_response(conn, 404) - end - end - - describe "/api/pleroma/admin/users/follow" do - test "allows to force-follow another user", %{admin: admin, conn: conn} do - user = insert(:user) - follower = insert(:user) - - conn - |> put_req_header("accept", "application/json") - |> post("/api/pleroma/admin/users/follow", %{ - "follower" => follower.nickname, - "followed" => user.nickname - }) - - user = User.get_cached_by_id(user.id) - follower = User.get_cached_by_id(follower.id) - - assert User.following?(follower, user) - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} made @#{follower.nickname} follow @#{user.nickname}" - end - end - - describe "/api/pleroma/admin/users/unfollow" do - test "allows to force-unfollow another user", %{admin: admin, conn: conn} do - user = insert(:user) - follower = insert(:user) - - User.follow(follower, user) - - conn - |> put_req_header("accept", "application/json") - |> post("/api/pleroma/admin/users/unfollow", %{ - "follower" => follower.nickname, - "followed" => user.nickname - }) - - user = User.get_cached_by_id(user.id) - follower = User.get_cached_by_id(follower.id) - - refute User.following?(follower, user) - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} made @#{follower.nickname} unfollow @#{user.nickname}" - end - end - - describe "PUT /api/pleroma/admin/users/tag" do - setup %{conn: conn} do - user1 = insert(:user, %{tags: ["x"]}) - user2 = insert(:user, %{tags: ["y"]}) - user3 = insert(:user, %{tags: ["unchanged"]}) - - conn = - conn - |> put_req_header("accept", "application/json") - |> put( - "/api/pleroma/admin/users/tag?nicknames[]=#{user1.nickname}&nicknames[]=" <> - "#{user2.nickname}&tags[]=foo&tags[]=bar" - ) - - %{conn: conn, user1: user1, user2: user2, user3: user3} - end - - test "it appends specified tags to users with specified nicknames", %{ - conn: conn, - admin: admin, - user1: user1, - user2: user2 - } do - assert json_response(conn, :no_content) - assert User.get_cached_by_id(user1.id).tags == ["x", "foo", "bar"] - assert User.get_cached_by_id(user2.id).tags == ["y", "foo", "bar"] - - log_entry = Repo.one(ModerationLog) - - users = - [user1.nickname, user2.nickname] - |> Enum.map(&"@#{&1}") - |> Enum.join(", ") - - tags = ["foo", "bar"] |> Enum.join(", ") - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} added tags: #{tags} to users: #{users}" - end - - test "it does not modify tags of not specified users", %{conn: conn, user3: user3} do - assert json_response(conn, :no_content) - assert User.get_cached_by_id(user3.id).tags == ["unchanged"] - end - end - - describe "DELETE /api/pleroma/admin/users/tag" do - setup %{conn: conn} do - user1 = insert(:user, %{tags: ["x"]}) - user2 = insert(:user, %{tags: ["y", "z"]}) - user3 = insert(:user, %{tags: ["unchanged"]}) - - conn = - conn - |> put_req_header("accept", "application/json") - |> delete( - "/api/pleroma/admin/users/tag?nicknames[]=#{user1.nickname}&nicknames[]=" <> - "#{user2.nickname}&tags[]=x&tags[]=z" - ) - - %{conn: conn, user1: user1, user2: user2, user3: user3} - end - - test "it removes specified tags from users with specified nicknames", %{ - conn: conn, - admin: admin, - user1: user1, - user2: user2 - } do - assert json_response(conn, :no_content) - assert User.get_cached_by_id(user1.id).tags == [] - assert User.get_cached_by_id(user2.id).tags == ["y"] - - log_entry = Repo.one(ModerationLog) - - users = - [user1.nickname, user2.nickname] - |> Enum.map(&"@#{&1}") - |> Enum.join(", ") - - tags = ["x", "z"] |> Enum.join(", ") - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} removed tags: #{tags} from users: #{users}" - end - - test "it does not modify tags of not specified users", %{conn: conn, user3: user3} do - assert json_response(conn, :no_content) - assert User.get_cached_by_id(user3.id).tags == ["unchanged"] - end - end - - describe "/api/pleroma/admin/users/:nickname/permission_group" do - test "GET is giving user_info", %{admin: admin, conn: conn} do - conn = - conn - |> put_req_header("accept", "application/json") - |> get("/api/pleroma/admin/users/#{admin.nickname}/permission_group/") - - assert json_response(conn, 200) == %{ - "is_admin" => true, - "is_moderator" => false - } - end - - test "/:right POST, can add to a permission group", %{admin: admin, conn: conn} do - user = insert(:user) - - conn = - conn - |> put_req_header("accept", "application/json") - |> post("/api/pleroma/admin/users/#{user.nickname}/permission_group/admin") - - assert json_response(conn, 200) == %{ - "is_admin" => true - } - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} made @#{user.nickname} admin" - end - - test "/:right POST, can add to a permission group (multiple)", %{admin: admin, conn: conn} do - user_one = insert(:user) - user_two = insert(:user) - - conn = - conn - |> put_req_header("accept", "application/json") - |> post("/api/pleroma/admin/users/permission_group/admin", %{ - nicknames: [user_one.nickname, user_two.nickname] - }) - - assert json_response(conn, 200) == %{"is_admin" => true} - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} made @#{user_one.nickname}, @#{user_two.nickname} admin" - end - - test "/:right DELETE, can remove from a permission group", %{admin: admin, conn: conn} do - user = insert(:user, is_admin: true) - - conn = - conn - |> put_req_header("accept", "application/json") - |> delete("/api/pleroma/admin/users/#{user.nickname}/permission_group/admin") - - assert json_response(conn, 200) == %{"is_admin" => false} - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} revoked admin role from @#{user.nickname}" - end - - test "/:right DELETE, can remove from a permission group (multiple)", %{ - admin: admin, - conn: conn - } do - user_one = insert(:user, is_admin: true) - user_two = insert(:user, is_admin: true) - - conn = - conn - |> put_req_header("accept", "application/json") - |> delete("/api/pleroma/admin/users/permission_group/admin", %{ - nicknames: [user_one.nickname, user_two.nickname] - }) - - assert json_response(conn, 200) == %{"is_admin" => false} - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} revoked admin role from @#{user_one.nickname}, @#{ - user_two.nickname - }" - end - end - - describe "POST /api/pleroma/admin/email_invite, with valid config" do - setup do: clear_config([:instance, :registrations_open], false) - setup do: clear_config([:instance, :invites_enabled], true) - - test "sends invitation and returns 204", %{admin: admin, conn: conn} do - recipient_email = "foo@bar.com" - recipient_name = "J. D." - - conn = - post( - conn, - "/api/pleroma/admin/users/email_invite?email=#{recipient_email}&name=#{recipient_name}" - ) - - assert json_response(conn, :no_content) - - token_record = List.last(Repo.all(Pleroma.UserInviteToken)) - assert token_record - refute token_record.used - - notify_email = Config.get([:instance, :notify_email]) - instance_name = Config.get([:instance, :name]) - - email = - Pleroma.Emails.UserEmail.user_invitation_email( - admin, - token_record, - recipient_email, - recipient_name - ) - - Swoosh.TestAssertions.assert_email_sent( - from: {instance_name, notify_email}, - to: {recipient_name, recipient_email}, - html_body: email.html_body - ) - end - - test "it returns 403 if requested by a non-admin" do - non_admin_user = insert(:user) - token = insert(:oauth_token, user: non_admin_user) - - conn = - build_conn() - |> assign(:user, non_admin_user) - |> assign(:token, token) - |> post("/api/pleroma/admin/users/email_invite?email=foo@bar.com&name=JD") - - assert json_response(conn, :forbidden) - end - - test "email with +", %{conn: conn, admin: admin} do - recipient_email = "foo+bar@baz.com" - - conn - |> put_req_header("content-type", "application/json;charset=utf-8") - |> post("/api/pleroma/admin/users/email_invite", %{email: recipient_email}) - |> json_response(:no_content) - - token_record = - Pleroma.UserInviteToken - |> Repo.all() - |> List.last() - - assert token_record - refute token_record.used - - notify_email = Config.get([:instance, :notify_email]) - instance_name = Config.get([:instance, :name]) - - email = - Pleroma.Emails.UserEmail.user_invitation_email( - admin, - token_record, - recipient_email - ) - - Swoosh.TestAssertions.assert_email_sent( - from: {instance_name, notify_email}, - to: recipient_email, - html_body: email.html_body - ) - end - end - - describe "POST /api/pleroma/admin/users/email_invite, with invalid config" do - setup do: clear_config([:instance, :registrations_open]) - setup do: clear_config([:instance, :invites_enabled]) - - test "it returns 500 if `invites_enabled` is not enabled", %{conn: conn} do - Config.put([:instance, :registrations_open], false) - Config.put([:instance, :invites_enabled], false) - - conn = post(conn, "/api/pleroma/admin/users/email_invite?email=foo@bar.com&name=JD") - - assert json_response(conn, :bad_request) == - "To send invites you need to set the `invites_enabled` option to true." - end - - test "it returns 500 if `registrations_open` is enabled", %{conn: conn} do - Config.put([:instance, :registrations_open], true) - Config.put([:instance, :invites_enabled], true) - - conn = post(conn, "/api/pleroma/admin/users/email_invite?email=foo@bar.com&name=JD") - - assert json_response(conn, :bad_request) == - "To send invites you need to set the `registrations_open` option to false." - end - end - - test "/api/pleroma/admin/users/:nickname/password_reset", %{conn: conn} do - user = insert(:user) - - conn = - conn - |> put_req_header("accept", "application/json") - |> get("/api/pleroma/admin/users/#{user.nickname}/password_reset") - - resp = json_response(conn, 200) - - assert Regex.match?(~r/(http:\/\/|https:\/\/)/, resp["link"]) - end - - describe "GET /api/pleroma/admin/users" do - test "renders users array for the first page", %{conn: conn, admin: admin} do - user = insert(:user, local: false, tags: ["foo", "bar"]) - conn = get(conn, "/api/pleroma/admin/users?page=1") - - users = - [ - %{ - "deactivated" => admin.deactivated, - "id" => admin.id, - "nickname" => admin.nickname, - "roles" => %{"admin" => true, "moderator" => false}, - "local" => true, - "tags" => [], - "avatar" => User.avatar_url(admin) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(admin.name || admin.nickname), - "confirmation_pending" => false - }, - %{ - "deactivated" => user.deactivated, - "id" => user.id, - "nickname" => user.nickname, - "roles" => %{"admin" => false, "moderator" => false}, - "local" => false, - "tags" => ["foo", "bar"], - "avatar" => User.avatar_url(user) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(user.name || user.nickname), - "confirmation_pending" => false - } - ] - |> Enum.sort_by(& &1["nickname"]) - - assert json_response(conn, 200) == %{ - "count" => 2, - "page_size" => 50, - "users" => users - } - end - - test "pagination works correctly with service users", %{conn: conn} do - service1 = insert(:user, ap_id: Web.base_url() <> "/relay") - service2 = insert(:user, ap_id: Web.base_url() <> "/internal/fetch") - insert_list(25, :user) - - assert %{"count" => 26, "page_size" => 10, "users" => users1} = - conn - |> get("/api/pleroma/admin/users?page=1&filters=", %{page_size: "10"}) - |> json_response(200) - - assert Enum.count(users1) == 10 - assert service1 not in [users1] - assert service2 not in [users1] - - assert %{"count" => 26, "page_size" => 10, "users" => users2} = - conn - |> get("/api/pleroma/admin/users?page=2&filters=", %{page_size: "10"}) - |> json_response(200) - - assert Enum.count(users2) == 10 - assert service1 not in [users2] - assert service2 not in [users2] - - assert %{"count" => 26, "page_size" => 10, "users" => users3} = - conn - |> get("/api/pleroma/admin/users?page=3&filters=", %{page_size: "10"}) - |> json_response(200) - - assert Enum.count(users3) == 6 - assert service1 not in [users3] - assert service2 not in [users3] - end - - test "renders empty array for the second page", %{conn: conn} do - insert(:user) - - conn = get(conn, "/api/pleroma/admin/users?page=2") - - assert json_response(conn, 200) == %{ - "count" => 2, - "page_size" => 50, - "users" => [] - } - end - - test "regular search", %{conn: conn} do - user = insert(:user, nickname: "bob") - - conn = get(conn, "/api/pleroma/admin/users?query=bo") - - assert json_response(conn, 200) == %{ - "count" => 1, - "page_size" => 50, - "users" => [ - %{ - "deactivated" => user.deactivated, - "id" => user.id, - "nickname" => user.nickname, - "roles" => %{"admin" => false, "moderator" => false}, - "local" => true, - "tags" => [], - "avatar" => User.avatar_url(user) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(user.name || user.nickname), - "confirmation_pending" => false - } - ] - } - end - - test "search by domain", %{conn: conn} do - user = insert(:user, nickname: "nickname@domain.com") - insert(:user) - - conn = get(conn, "/api/pleroma/admin/users?query=domain.com") - - assert json_response(conn, 200) == %{ - "count" => 1, - "page_size" => 50, - "users" => [ - %{ - "deactivated" => user.deactivated, - "id" => user.id, - "nickname" => user.nickname, - "roles" => %{"admin" => false, "moderator" => false}, - "local" => true, - "tags" => [], - "avatar" => User.avatar_url(user) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(user.name || user.nickname), - "confirmation_pending" => false - } - ] - } - end - - test "search by full nickname", %{conn: conn} do - user = insert(:user, nickname: "nickname@domain.com") - insert(:user) - - conn = get(conn, "/api/pleroma/admin/users?query=nickname@domain.com") - - assert json_response(conn, 200) == %{ - "count" => 1, - "page_size" => 50, - "users" => [ - %{ - "deactivated" => user.deactivated, - "id" => user.id, - "nickname" => user.nickname, - "roles" => %{"admin" => false, "moderator" => false}, - "local" => true, - "tags" => [], - "avatar" => User.avatar_url(user) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(user.name || user.nickname), - "confirmation_pending" => false - } - ] - } - end - - test "search by display name", %{conn: conn} do - user = insert(:user, name: "Display name") - insert(:user) - - conn = get(conn, "/api/pleroma/admin/users?name=display") - - assert json_response(conn, 200) == %{ - "count" => 1, - "page_size" => 50, - "users" => [ - %{ - "deactivated" => user.deactivated, - "id" => user.id, - "nickname" => user.nickname, - "roles" => %{"admin" => false, "moderator" => false}, - "local" => true, - "tags" => [], - "avatar" => User.avatar_url(user) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(user.name || user.nickname), - "confirmation_pending" => false - } - ] - } - end - - test "search by email", %{conn: conn} do - user = insert(:user, email: "email@example.com") - insert(:user) - - conn = get(conn, "/api/pleroma/admin/users?email=email@example.com") - - assert json_response(conn, 200) == %{ - "count" => 1, - "page_size" => 50, - "users" => [ - %{ - "deactivated" => user.deactivated, - "id" => user.id, - "nickname" => user.nickname, - "roles" => %{"admin" => false, "moderator" => false}, - "local" => true, - "tags" => [], - "avatar" => User.avatar_url(user) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(user.name || user.nickname), - "confirmation_pending" => false - } - ] - } - end - - test "regular search with page size", %{conn: conn} do - user = insert(:user, nickname: "aalice") - user2 = insert(:user, nickname: "alice") - - conn1 = get(conn, "/api/pleroma/admin/users?query=a&page_size=1&page=1") - - assert json_response(conn1, 200) == %{ - "count" => 2, - "page_size" => 1, - "users" => [ - %{ - "deactivated" => user.deactivated, - "id" => user.id, - "nickname" => user.nickname, - "roles" => %{"admin" => false, "moderator" => false}, - "local" => true, - "tags" => [], - "avatar" => User.avatar_url(user) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(user.name || user.nickname), - "confirmation_pending" => false - } - ] - } - - conn2 = get(conn, "/api/pleroma/admin/users?query=a&page_size=1&page=2") - - assert json_response(conn2, 200) == %{ - "count" => 2, - "page_size" => 1, - "users" => [ - %{ - "deactivated" => user2.deactivated, - "id" => user2.id, - "nickname" => user2.nickname, - "roles" => %{"admin" => false, "moderator" => false}, - "local" => true, - "tags" => [], - "avatar" => User.avatar_url(user2) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(user2.name || user2.nickname), - "confirmation_pending" => false - } - ] - } - end - - test "only local users" do - admin = insert(:user, is_admin: true, nickname: "john") - token = insert(:oauth_admin_token, user: admin) - user = insert(:user, nickname: "bob") - - insert(:user, nickname: "bobb", local: false) - - conn = - build_conn() - |> assign(:user, admin) - |> assign(:token, token) - |> get("/api/pleroma/admin/users?query=bo&filters=local") - - assert json_response(conn, 200) == %{ - "count" => 1, - "page_size" => 50, - "users" => [ - %{ - "deactivated" => user.deactivated, - "id" => user.id, - "nickname" => user.nickname, - "roles" => %{"admin" => false, "moderator" => false}, - "local" => true, - "tags" => [], - "avatar" => User.avatar_url(user) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(user.name || user.nickname), - "confirmation_pending" => false - } - ] - } - end - - test "only local users with no query", %{conn: conn, admin: old_admin} do - admin = insert(:user, is_admin: true, nickname: "john") - user = insert(:user, nickname: "bob") - - insert(:user, nickname: "bobb", local: false) - - conn = get(conn, "/api/pleroma/admin/users?filters=local") - - users = - [ - %{ - "deactivated" => user.deactivated, - "id" => user.id, - "nickname" => user.nickname, - "roles" => %{"admin" => false, "moderator" => false}, - "local" => true, - "tags" => [], - "avatar" => User.avatar_url(user) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(user.name || user.nickname), - "confirmation_pending" => false - }, - %{ - "deactivated" => admin.deactivated, - "id" => admin.id, - "nickname" => admin.nickname, - "roles" => %{"admin" => true, "moderator" => false}, - "local" => true, - "tags" => [], - "avatar" => User.avatar_url(admin) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(admin.name || admin.nickname), - "confirmation_pending" => false - }, - %{ - "deactivated" => false, - "id" => old_admin.id, - "local" => true, - "nickname" => old_admin.nickname, - "roles" => %{"admin" => true, "moderator" => false}, - "tags" => [], - "avatar" => User.avatar_url(old_admin) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(old_admin.name || old_admin.nickname), - "confirmation_pending" => false - } - ] - |> Enum.sort_by(& &1["nickname"]) - - assert json_response(conn, 200) == %{ - "count" => 3, - "page_size" => 50, - "users" => users - } - end - - test "load only admins", %{conn: conn, admin: admin} do - second_admin = insert(:user, is_admin: true) - insert(:user) - insert(:user) - - conn = get(conn, "/api/pleroma/admin/users?filters=is_admin") - - users = - [ - %{ - "deactivated" => false, - "id" => admin.id, - "nickname" => admin.nickname, - "roles" => %{"admin" => true, "moderator" => false}, - "local" => admin.local, - "tags" => [], - "avatar" => User.avatar_url(admin) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(admin.name || admin.nickname), - "confirmation_pending" => false - }, - %{ - "deactivated" => false, - "id" => second_admin.id, - "nickname" => second_admin.nickname, - "roles" => %{"admin" => true, "moderator" => false}, - "local" => second_admin.local, - "tags" => [], - "avatar" => User.avatar_url(second_admin) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(second_admin.name || second_admin.nickname), - "confirmation_pending" => false - } - ] - |> Enum.sort_by(& &1["nickname"]) - - assert json_response(conn, 200) == %{ - "count" => 2, - "page_size" => 50, - "users" => users - } - end - - test "load only moderators", %{conn: conn} do - moderator = insert(:user, is_moderator: true) - insert(:user) - insert(:user) - - conn = get(conn, "/api/pleroma/admin/users?filters=is_moderator") - - assert json_response(conn, 200) == %{ - "count" => 1, - "page_size" => 50, - "users" => [ - %{ - "deactivated" => false, - "id" => moderator.id, - "nickname" => moderator.nickname, - "roles" => %{"admin" => false, "moderator" => true}, - "local" => moderator.local, - "tags" => [], - "avatar" => User.avatar_url(moderator) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(moderator.name || moderator.nickname), - "confirmation_pending" => false - } - ] - } - end - - test "load users with tags list", %{conn: conn} do - user1 = insert(:user, tags: ["first"]) - user2 = insert(:user, tags: ["second"]) - insert(:user) - insert(:user) - - conn = get(conn, "/api/pleroma/admin/users?tags[]=first&tags[]=second") - - users = - [ - %{ - "deactivated" => false, - "id" => user1.id, - "nickname" => user1.nickname, - "roles" => %{"admin" => false, "moderator" => false}, - "local" => user1.local, - "tags" => ["first"], - "avatar" => User.avatar_url(user1) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(user1.name || user1.nickname), - "confirmation_pending" => false - }, - %{ - "deactivated" => false, - "id" => user2.id, - "nickname" => user2.nickname, - "roles" => %{"admin" => false, "moderator" => false}, - "local" => user2.local, - "tags" => ["second"], - "avatar" => User.avatar_url(user2) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(user2.name || user2.nickname), - "confirmation_pending" => false - } - ] - |> Enum.sort_by(& &1["nickname"]) - - assert json_response(conn, 200) == %{ - "count" => 2, - "page_size" => 50, - "users" => users - } - end - - test "it works with multiple filters" do - admin = insert(:user, nickname: "john", is_admin: true) - token = insert(:oauth_admin_token, user: admin) - user = insert(:user, nickname: "bob", local: false, deactivated: true) - - insert(:user, nickname: "ken", local: true, deactivated: true) - insert(:user, nickname: "bobb", local: false, deactivated: false) - - conn = - build_conn() - |> assign(:user, admin) - |> assign(:token, token) - |> get("/api/pleroma/admin/users?filters=deactivated,external") - - assert json_response(conn, 200) == %{ - "count" => 1, - "page_size" => 50, - "users" => [ - %{ - "deactivated" => user.deactivated, - "id" => user.id, - "nickname" => user.nickname, - "roles" => %{"admin" => false, "moderator" => false}, - "local" => user.local, - "tags" => [], - "avatar" => User.avatar_url(user) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(user.name || user.nickname), - "confirmation_pending" => false - } - ] - } - end - - test "it omits relay user", %{admin: admin, conn: conn} do - assert %User{} = Relay.get_actor() - - conn = get(conn, "/api/pleroma/admin/users") - - assert json_response(conn, 200) == %{ - "count" => 1, - "page_size" => 50, - "users" => [ - %{ - "deactivated" => admin.deactivated, - "id" => admin.id, - "nickname" => admin.nickname, - "roles" => %{"admin" => true, "moderator" => false}, - "local" => true, - "tags" => [], - "avatar" => User.avatar_url(admin) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(admin.name || admin.nickname), - "confirmation_pending" => false - } - ] - } - end - end - - test "PATCH /api/pleroma/admin/users/activate", %{admin: admin, conn: conn} do - user_one = insert(:user, deactivated: true) - user_two = insert(:user, deactivated: true) - - conn = - patch( - conn, - "/api/pleroma/admin/users/activate", - %{nicknames: [user_one.nickname, user_two.nickname]} - ) - - response = json_response(conn, 200) - assert Enum.map(response["users"], & &1["deactivated"]) == [false, false] - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} activated users: @#{user_one.nickname}, @#{user_two.nickname}" - end - - test "PATCH /api/pleroma/admin/users/deactivate", %{admin: admin, conn: conn} do - user_one = insert(:user, deactivated: false) - user_two = insert(:user, deactivated: false) - - conn = - patch( - conn, - "/api/pleroma/admin/users/deactivate", - %{nicknames: [user_one.nickname, user_two.nickname]} - ) - - response = json_response(conn, 200) - assert Enum.map(response["users"], & &1["deactivated"]) == [true, true] - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} deactivated users: @#{user_one.nickname}, @#{user_two.nickname}" - end - - test "PATCH /api/pleroma/admin/users/:nickname/toggle_activation", %{admin: admin, conn: conn} do - user = insert(:user) - - conn = patch(conn, "/api/pleroma/admin/users/#{user.nickname}/toggle_activation") - - assert json_response(conn, 200) == - %{ - "deactivated" => !user.deactivated, - "id" => user.id, - "nickname" => user.nickname, - "roles" => %{"admin" => false, "moderator" => false}, - "local" => true, - "tags" => [], - "avatar" => User.avatar_url(user) |> MediaProxy.url(), - "display_name" => HTML.strip_tags(user.name || user.nickname), - "confirmation_pending" => false - } - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} deactivated users: @#{user.nickname}" - end - - describe "PUT disable_mfa" do - test "returns 200 and disable 2fa", %{conn: conn} do - user = - insert(:user, - multi_factor_authentication_settings: %MFA.Settings{ - enabled: true, - totp: %MFA.Settings.TOTP{secret: "otp_secret", confirmed: true} - } - ) - - response = - conn - |> put("/api/pleroma/admin/users/disable_mfa", %{nickname: user.nickname}) - |> json_response(200) - - assert response == user.nickname - mfa_settings = refresh_record(user).multi_factor_authentication_settings - - refute mfa_settings.enabled - refute mfa_settings.totp.confirmed - end - - test "returns 404 if user not found", %{conn: conn} do - response = - conn - |> put("/api/pleroma/admin/users/disable_mfa", %{nickname: "nickname"}) - |> json_response(404) - - assert response == "Not found" - end - end - - describe "POST /api/pleroma/admin/users/invite_token" do - test "without options", %{conn: conn} do - conn = post(conn, "/api/pleroma/admin/users/invite_token") - - invite_json = json_response(conn, 200) - invite = UserInviteToken.find_by_token!(invite_json["token"]) - refute invite.used - refute invite.expires_at - refute invite.max_use - assert invite.invite_type == "one_time" - end - - test "with expires_at", %{conn: conn} do - conn = - post(conn, "/api/pleroma/admin/users/invite_token", %{ - "expires_at" => Date.to_string(Date.utc_today()) - }) - - invite_json = json_response(conn, 200) - invite = UserInviteToken.find_by_token!(invite_json["token"]) - - refute invite.used - assert invite.expires_at == Date.utc_today() - refute invite.max_use - assert invite.invite_type == "date_limited" - end - - test "with max_use", %{conn: conn} do - conn = post(conn, "/api/pleroma/admin/users/invite_token", %{"max_use" => 150}) - - invite_json = json_response(conn, 200) - invite = UserInviteToken.find_by_token!(invite_json["token"]) - refute invite.used - refute invite.expires_at - assert invite.max_use == 150 - assert invite.invite_type == "reusable" - end - - test "with max use and expires_at", %{conn: conn} do - conn = - post(conn, "/api/pleroma/admin/users/invite_token", %{ - "max_use" => 150, - "expires_at" => Date.to_string(Date.utc_today()) - }) - - invite_json = json_response(conn, 200) - invite = UserInviteToken.find_by_token!(invite_json["token"]) - refute invite.used - assert invite.expires_at == Date.utc_today() - assert invite.max_use == 150 - assert invite.invite_type == "reusable_date_limited" - end - end - - describe "GET /api/pleroma/admin/users/invites" do - test "no invites", %{conn: conn} do - conn = get(conn, "/api/pleroma/admin/users/invites") - - assert json_response(conn, 200) == %{"invites" => []} - end - - test "with invite", %{conn: conn} do - {:ok, invite} = UserInviteToken.create_invite() - - conn = get(conn, "/api/pleroma/admin/users/invites") - - assert json_response(conn, 200) == %{ - "invites" => [ - %{ - "expires_at" => nil, - "id" => invite.id, - "invite_type" => "one_time", - "max_use" => nil, - "token" => invite.token, - "used" => false, - "uses" => 0 - } - ] - } - end - end - - describe "POST /api/pleroma/admin/users/revoke_invite" do - test "with token", %{conn: conn} do - {:ok, invite} = UserInviteToken.create_invite() - - conn = post(conn, "/api/pleroma/admin/users/revoke_invite", %{"token" => invite.token}) - - assert json_response(conn, 200) == %{ - "expires_at" => nil, - "id" => invite.id, - "invite_type" => "one_time", - "max_use" => nil, - "token" => invite.token, - "used" => true, - "uses" => 0 - } - end - - test "with invalid token", %{conn: conn} do - conn = post(conn, "/api/pleroma/admin/users/revoke_invite", %{"token" => "foo"}) - - assert json_response(conn, :not_found) == "Not found" - end - end - - describe "GET /api/pleroma/admin/reports/:id" do - test "returns report by its id", %{conn: conn} do - [reporter, target_user] = insert_pair(:user) - activity = insert(:note_activity, user: target_user) - - {:ok, %{id: report_id}} = - CommonAPI.report(reporter, %{ - account_id: target_user.id, - comment: "I feel offended", - status_ids: [activity.id] - }) - - response = - conn - |> get("/api/pleroma/admin/reports/#{report_id}") - |> json_response(:ok) - - assert response["id"] == report_id - end - - test "returns 404 when report id is invalid", %{conn: conn} do - conn = get(conn, "/api/pleroma/admin/reports/test") - - assert json_response(conn, :not_found) == "Not found" - end - end - - describe "PATCH /api/pleroma/admin/reports" do - setup do - [reporter, target_user] = insert_pair(:user) - activity = insert(:note_activity, user: target_user) - - {:ok, %{id: report_id}} = - CommonAPI.report(reporter, %{ - account_id: target_user.id, - comment: "I feel offended", - status_ids: [activity.id] - }) - - {:ok, %{id: second_report_id}} = - CommonAPI.report(reporter, %{ - account_id: target_user.id, - comment: "I feel very offended", - status_ids: [activity.id] - }) - - %{ - id: report_id, - second_report_id: second_report_id - } - end - - test "requires admin:write:reports scope", %{conn: conn, id: id, admin: admin} do - read_token = insert(:oauth_token, user: admin, scopes: ["admin:read"]) - write_token = insert(:oauth_token, user: admin, scopes: ["admin:write:reports"]) - - response = - conn - |> assign(:token, read_token) - |> patch("/api/pleroma/admin/reports", %{ - "reports" => [%{"state" => "resolved", "id" => id}] - }) - |> json_response(403) - - assert response == %{ - "error" => "Insufficient permissions: admin:write:reports." - } - - conn - |> assign(:token, write_token) - |> patch("/api/pleroma/admin/reports", %{ - "reports" => [%{"state" => "resolved", "id" => id}] - }) - |> json_response(:no_content) - end - - test "mark report as resolved", %{conn: conn, id: id, admin: admin} do - conn - |> patch("/api/pleroma/admin/reports", %{ - "reports" => [ - %{"state" => "resolved", "id" => id} - ] - }) - |> json_response(:no_content) - - activity = Activity.get_by_id(id) - assert activity.data["state"] == "resolved" - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} updated report ##{id} with 'resolved' state" - end - - test "closes report", %{conn: conn, id: id, admin: admin} do - conn - |> patch("/api/pleroma/admin/reports", %{ - "reports" => [ - %{"state" => "closed", "id" => id} - ] - }) - |> json_response(:no_content) - - activity = Activity.get_by_id(id) - assert activity.data["state"] == "closed" - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} updated report ##{id} with 'closed' state" - end - - test "returns 400 when state is unknown", %{conn: conn, id: id} do - conn = - conn - |> patch("/api/pleroma/admin/reports", %{ - "reports" => [ - %{"state" => "test", "id" => id} - ] - }) - - assert hd(json_response(conn, :bad_request))["error"] == "Unsupported state" - end - - test "returns 404 when report is not exist", %{conn: conn} do - conn = - conn - |> patch("/api/pleroma/admin/reports", %{ - "reports" => [ - %{"state" => "closed", "id" => "test"} - ] - }) - - assert hd(json_response(conn, :bad_request))["error"] == "not_found" - end - - test "updates state of multiple reports", %{ - conn: conn, - id: id, - admin: admin, - second_report_id: second_report_id - } do - conn - |> patch("/api/pleroma/admin/reports", %{ - "reports" => [ - %{"state" => "resolved", "id" => id}, - %{"state" => "closed", "id" => second_report_id} - ] - }) - |> json_response(:no_content) - - activity = Activity.get_by_id(id) - second_activity = Activity.get_by_id(second_report_id) - assert activity.data["state"] == "resolved" - assert second_activity.data["state"] == "closed" - - [first_log_entry, second_log_entry] = Repo.all(ModerationLog) - - assert ModerationLog.get_log_entry_message(first_log_entry) == - "@#{admin.nickname} updated report ##{id} with 'resolved' state" - - assert ModerationLog.get_log_entry_message(second_log_entry) == - "@#{admin.nickname} updated report ##{second_report_id} with 'closed' state" - end - end - - describe "GET /api/pleroma/admin/reports" do - test "returns empty response when no reports created", %{conn: conn} do - response = - conn - |> get("/api/pleroma/admin/reports") - |> json_response(:ok) - - assert Enum.empty?(response["reports"]) - assert response["total"] == 0 - end - - test "returns reports", %{conn: conn} do - [reporter, target_user] = insert_pair(:user) - activity = insert(:note_activity, user: target_user) - - {:ok, %{id: report_id}} = - CommonAPI.report(reporter, %{ - account_id: target_user.id, - comment: "I feel offended", - status_ids: [activity.id] - }) - - response = - conn - |> get("/api/pleroma/admin/reports") - |> json_response(:ok) - - [report] = response["reports"] - - assert length(response["reports"]) == 1 - assert report["id"] == report_id - - assert response["total"] == 1 - end - - test "returns reports with specified state", %{conn: conn} do - [reporter, target_user] = insert_pair(:user) - activity = insert(:note_activity, user: target_user) - - {:ok, %{id: first_report_id}} = - CommonAPI.report(reporter, %{ - account_id: target_user.id, - comment: "I feel offended", - status_ids: [activity.id] - }) - - {:ok, %{id: second_report_id}} = - CommonAPI.report(reporter, %{ - account_id: target_user.id, - comment: "I don't like this user" - }) - - CommonAPI.update_report_state(second_report_id, "closed") - - response = - conn - |> get("/api/pleroma/admin/reports", %{ - "state" => "open" - }) - |> json_response(:ok) - - [open_report] = response["reports"] - - assert length(response["reports"]) == 1 - assert open_report["id"] == first_report_id - - assert response["total"] == 1 - - response = - conn - |> get("/api/pleroma/admin/reports", %{ - "state" => "closed" - }) - |> json_response(:ok) - - [closed_report] = response["reports"] - - assert length(response["reports"]) == 1 - assert closed_report["id"] == second_report_id - - assert response["total"] == 1 - - response = - conn - |> get("/api/pleroma/admin/reports", %{ - "state" => "resolved" - }) - |> json_response(:ok) - - assert Enum.empty?(response["reports"]) - assert response["total"] == 0 - end - - test "returns 403 when requested by a non-admin" do - user = insert(:user) - token = insert(:oauth_token, user: user) - - conn = - build_conn() - |> assign(:user, user) - |> assign(:token, token) - |> get("/api/pleroma/admin/reports") - - assert json_response(conn, :forbidden) == - %{"error" => "User is not an admin or OAuth admin scope is not granted."} - end - - test "returns 403 when requested by anonymous" do - conn = get(build_conn(), "/api/pleroma/admin/reports") - - assert json_response(conn, :forbidden) == %{"error" => "Invalid credentials."} - end - end - - describe "GET /api/pleroma/admin/statuses/:id" do - test "not found", %{conn: conn} do - assert conn - |> get("/api/pleroma/admin/statuses/not_found") - |> json_response(:not_found) - end - - test "shows activity", %{conn: conn} do - activity = insert(:note_activity) - - response = - conn - |> get("/api/pleroma/admin/statuses/#{activity.id}") - |> json_response(200) - - assert response["id"] == activity.id - end - end - - describe "PUT /api/pleroma/admin/statuses/:id" do - setup do - activity = insert(:note_activity) - - %{id: activity.id} - end - - test "toggle sensitive flag", %{conn: conn, id: id, admin: admin} do - response = - conn - |> put("/api/pleroma/admin/statuses/#{id}", %{"sensitive" => "true"}) - |> json_response(:ok) - - assert response["sensitive"] - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} updated status ##{id}, set sensitive: 'true'" - - response = - conn - |> put("/api/pleroma/admin/statuses/#{id}", %{"sensitive" => "false"}) - |> json_response(:ok) - - refute response["sensitive"] - end - - test "change visibility flag", %{conn: conn, id: id, admin: admin} do - response = - conn - |> put("/api/pleroma/admin/statuses/#{id}", %{visibility: "public"}) - |> json_response(:ok) - - assert response["visibility"] == "public" - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} updated status ##{id}, set visibility: 'public'" - - response = - conn - |> put("/api/pleroma/admin/statuses/#{id}", %{visibility: "private"}) - |> json_response(:ok) - - assert response["visibility"] == "private" - - response = - conn - |> put("/api/pleroma/admin/statuses/#{id}", %{visibility: "unlisted"}) - |> json_response(:ok) - - assert response["visibility"] == "unlisted" - end - - test "returns 400 when visibility is unknown", %{conn: conn, id: id} do - conn = put(conn, "/api/pleroma/admin/statuses/#{id}", %{visibility: "test"}) - - assert json_response(conn, :bad_request) == "Unsupported visibility" - end - end - - describe "DELETE /api/pleroma/admin/statuses/:id" do - setup do - activity = insert(:note_activity) - - %{id: activity.id} - end - - test "deletes status", %{conn: conn, id: id, admin: admin} do - conn - |> delete("/api/pleroma/admin/statuses/#{id}") - |> json_response(:ok) - - refute Activity.get_by_id(id) - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} deleted status ##{id}" - end - - test "returns 404 when the status does not exist", %{conn: conn} do - conn = delete(conn, "/api/pleroma/admin/statuses/test") - - assert json_response(conn, :not_found) == "Not found" - end - end - - describe "GET /api/pleroma/admin/config" do - setup do: clear_config(:configurable_from_database, true) - - test "when configuration from database is off", %{conn: conn} do - Config.put(:configurable_from_database, false) - conn = get(conn, "/api/pleroma/admin/config") - - assert json_response(conn, 400) == - "To use this endpoint you need to enable configuration from database." - end - - test "with settings only in db", %{conn: conn} do - config1 = insert(:config) - config2 = insert(:config) - - conn = get(conn, "/api/pleroma/admin/config", %{"only_db" => true}) - - %{ - "configs" => [ - %{ - "group" => ":pleroma", - "key" => key1, - "value" => _ - }, - %{ - "group" => ":pleroma", - "key" => key2, - "value" => _ - } - ] - } = json_response(conn, 200) - - assert key1 == config1.key - assert key2 == config2.key - end - - test "db is added to settings that are in db", %{conn: conn} do - _config = insert(:config, key: ":instance", value: ConfigDB.to_binary(name: "Some name")) - - %{"configs" => configs} = - conn - |> get("/api/pleroma/admin/config") - |> json_response(200) - - [instance_config] = - Enum.filter(configs, fn %{"group" => group, "key" => key} -> - group == ":pleroma" and key == ":instance" - end) - - assert instance_config["db"] == [":name"] - end - - test "merged default setting with db settings", %{conn: conn} do - config1 = insert(:config) - config2 = insert(:config) - - config3 = - insert(:config, - value: ConfigDB.to_binary(k1: :v1, k2: :v2) - ) - - %{"configs" => configs} = - conn - |> get("/api/pleroma/admin/config") - |> json_response(200) - - assert length(configs) > 3 - - received_configs = - Enum.filter(configs, fn %{"group" => group, "key" => key} -> - group == ":pleroma" and key in [config1.key, config2.key, config3.key] - end) - - assert length(received_configs) == 3 - - db_keys = - config3.value - |> ConfigDB.from_binary() - |> Keyword.keys() - |> ConfigDB.convert() - - Enum.each(received_configs, fn %{"value" => value, "db" => db} -> - assert db in [[config1.key], [config2.key], db_keys] - - assert value in [ - ConfigDB.from_binary_with_convert(config1.value), - ConfigDB.from_binary_with_convert(config2.value), - ConfigDB.from_binary_with_convert(config3.value) - ] - end) - end - - test "subkeys with full update right merge", %{conn: conn} do - config1 = - insert(:config, - key: ":emoji", - value: ConfigDB.to_binary(groups: [a: 1, b: 2], key: [a: 1]) - ) - - config2 = - insert(:config, - key: ":assets", - value: ConfigDB.to_binary(mascots: [a: 1, b: 2], key: [a: 1]) - ) - - %{"configs" => configs} = - conn - |> get("/api/pleroma/admin/config") - |> json_response(200) - - vals = - Enum.filter(configs, fn %{"group" => group, "key" => key} -> - group == ":pleroma" and key in [config1.key, config2.key] - end) - - emoji = Enum.find(vals, fn %{"key" => key} -> key == ":emoji" end) - assets = Enum.find(vals, fn %{"key" => key} -> key == ":assets" end) - - emoji_val = ConfigDB.transform_with_out_binary(emoji["value"]) - assets_val = ConfigDB.transform_with_out_binary(assets["value"]) - - assert emoji_val[:groups] == [a: 1, b: 2] - assert assets_val[:mascots] == [a: 1, b: 2] - end - end - - test "POST /api/pleroma/admin/config error", %{conn: conn} do - conn = post(conn, "/api/pleroma/admin/config", %{"configs" => []}) - - assert json_response(conn, 400) == - "To use this endpoint you need to enable configuration from database." - end - - describe "POST /api/pleroma/admin/config" do - setup do - http = Application.get_env(:pleroma, :http) - - on_exit(fn -> - Application.delete_env(:pleroma, :key1) - Application.delete_env(:pleroma, :key2) - Application.delete_env(:pleroma, :key3) - Application.delete_env(:pleroma, :key4) - Application.delete_env(:pleroma, :keyaa1) - Application.delete_env(:pleroma, :keyaa2) - Application.delete_env(:pleroma, Pleroma.Web.Endpoint.NotReal) - Application.delete_env(:pleroma, Pleroma.Captcha.NotReal) - Application.put_env(:pleroma, :http, http) - Application.put_env(:tesla, :adapter, Tesla.Mock) - Restarter.Pleroma.refresh() - end) - end - - setup do: clear_config(:configurable_from_database, true) - - @tag capture_log: true - test "create new config setting in db", %{conn: conn} do - ueberauth = Application.get_env(:ueberauth, Ueberauth) - on_exit(fn -> Application.put_env(:ueberauth, Ueberauth, ueberauth) end) - - conn = - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{group: ":pleroma", key: ":key1", value: "value1"}, - %{ - group: ":ueberauth", - key: "Ueberauth", - value: [%{"tuple" => [":consumer_secret", "aaaa"]}] - }, - %{ - group: ":pleroma", - key: ":key2", - value: %{ - ":nested_1" => "nested_value1", - ":nested_2" => [ - %{":nested_22" => "nested_value222"}, - %{":nested_33" => %{":nested_44" => "nested_444"}} - ] - } - }, - %{ - group: ":pleroma", - key: ":key3", - value: [ - %{"nested_3" => ":nested_3", "nested_33" => "nested_33"}, - %{"nested_4" => true} - ] - }, - %{ - group: ":pleroma", - key: ":key4", - value: %{":nested_5" => ":upload", "endpoint" => "https://example.com"} - }, - %{ - group: ":idna", - key: ":key5", - value: %{"tuple" => ["string", "Pleroma.Captcha.NotReal", []]} - } - ] - }) - - assert json_response(conn, 200) == %{ - "configs" => [ - %{ - "group" => ":pleroma", - "key" => ":key1", - "value" => "value1", - "db" => [":key1"] - }, - %{ - "group" => ":ueberauth", - "key" => "Ueberauth", - "value" => [%{"tuple" => [":consumer_secret", "aaaa"]}], - "db" => [":consumer_secret"] - }, - %{ - "group" => ":pleroma", - "key" => ":key2", - "value" => %{ - ":nested_1" => "nested_value1", - ":nested_2" => [ - %{":nested_22" => "nested_value222"}, - %{":nested_33" => %{":nested_44" => "nested_444"}} - ] - }, - "db" => [":key2"] - }, - %{ - "group" => ":pleroma", - "key" => ":key3", - "value" => [ - %{"nested_3" => ":nested_3", "nested_33" => "nested_33"}, - %{"nested_4" => true} - ], - "db" => [":key3"] - }, - %{ - "group" => ":pleroma", - "key" => ":key4", - "value" => %{"endpoint" => "https://example.com", ":nested_5" => ":upload"}, - "db" => [":key4"] - }, - %{ - "group" => ":idna", - "key" => ":key5", - "value" => %{"tuple" => ["string", "Pleroma.Captcha.NotReal", []]}, - "db" => [":key5"] - } - ] - } - - assert Application.get_env(:pleroma, :key1) == "value1" - - assert Application.get_env(:pleroma, :key2) == %{ - nested_1: "nested_value1", - nested_2: [ - %{nested_22: "nested_value222"}, - %{nested_33: %{nested_44: "nested_444"}} - ] - } - - assert Application.get_env(:pleroma, :key3) == [ - %{"nested_3" => :nested_3, "nested_33" => "nested_33"}, - %{"nested_4" => true} - ] - - assert Application.get_env(:pleroma, :key4) == %{ - "endpoint" => "https://example.com", - nested_5: :upload - } - - assert Application.get_env(:idna, :key5) == {"string", Pleroma.Captcha.NotReal, []} - end - - test "save configs setting without explicit key", %{conn: conn} do - level = Application.get_env(:quack, :level) - meta = Application.get_env(:quack, :meta) - webhook_url = Application.get_env(:quack, :webhook_url) - - on_exit(fn -> - Application.put_env(:quack, :level, level) - Application.put_env(:quack, :meta, meta) - Application.put_env(:quack, :webhook_url, webhook_url) - end) - - conn = - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{ - group: ":quack", - key: ":level", - value: ":info" - }, - %{ - group: ":quack", - key: ":meta", - value: [":none"] - }, - %{ - group: ":quack", - key: ":webhook_url", - value: "https://hooks.slack.com/services/KEY" - } - ] - }) - - assert json_response(conn, 200) == %{ - "configs" => [ - %{ - "group" => ":quack", - "key" => ":level", - "value" => ":info", - "db" => [":level"] - }, - %{ - "group" => ":quack", - "key" => ":meta", - "value" => [":none"], - "db" => [":meta"] - }, - %{ - "group" => ":quack", - "key" => ":webhook_url", - "value" => "https://hooks.slack.com/services/KEY", - "db" => [":webhook_url"] - } - ] - } - - assert Application.get_env(:quack, :level) == :info - assert Application.get_env(:quack, :meta) == [:none] - assert Application.get_env(:quack, :webhook_url) == "https://hooks.slack.com/services/KEY" - end - - test "saving config with partial update", %{conn: conn} do - config = insert(:config, key: ":key1", value: :erlang.term_to_binary(key1: 1, key2: 2)) - - conn = - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{group: config.group, key: config.key, value: [%{"tuple" => [":key3", 3]}]} - ] - }) - - assert json_response(conn, 200) == %{ - "configs" => [ - %{ - "group" => ":pleroma", - "key" => ":key1", - "value" => [ - %{"tuple" => [":key1", 1]}, - %{"tuple" => [":key2", 2]}, - %{"tuple" => [":key3", 3]} - ], - "db" => [":key1", ":key2", ":key3"] - } - ] - } - end - - test "saving config which need pleroma reboot", %{conn: conn} do - chat = Config.get(:chat) - on_exit(fn -> Config.put(:chat, chat) end) - - assert post( - conn, - "/api/pleroma/admin/config", - %{ - configs: [ - %{group: ":pleroma", key: ":chat", value: [%{"tuple" => [":enabled", true]}]} - ] - } - ) - |> json_response(200) == %{ - "configs" => [ - %{ - "db" => [":enabled"], - "group" => ":pleroma", - "key" => ":chat", - "value" => [%{"tuple" => [":enabled", true]}] - } - ], - "need_reboot" => true - } - - configs = - conn - |> get("/api/pleroma/admin/config") - |> json_response(200) - - assert configs["need_reboot"] - - capture_log(fn -> - assert conn |> get("/api/pleroma/admin/restart") |> json_response(200) == %{} - end) =~ "pleroma restarted" - - configs = - conn - |> get("/api/pleroma/admin/config") - |> json_response(200) - - assert configs["need_reboot"] == false - end - - test "update setting which need reboot, don't change reboot flag until reboot", %{conn: conn} do - chat = Config.get(:chat) - on_exit(fn -> Config.put(:chat, chat) end) - - assert post( - conn, - "/api/pleroma/admin/config", - %{ - configs: [ - %{group: ":pleroma", key: ":chat", value: [%{"tuple" => [":enabled", true]}]} - ] - } - ) - |> json_response(200) == %{ - "configs" => [ - %{ - "db" => [":enabled"], - "group" => ":pleroma", - "key" => ":chat", - "value" => [%{"tuple" => [":enabled", true]}] - } - ], - "need_reboot" => true - } - - assert post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{group: ":pleroma", key: ":key1", value: [%{"tuple" => [":key3", 3]}]} - ] - }) - |> json_response(200) == %{ - "configs" => [ - %{ - "group" => ":pleroma", - "key" => ":key1", - "value" => [ - %{"tuple" => [":key3", 3]} - ], - "db" => [":key3"] - } - ], - "need_reboot" => true - } - - capture_log(fn -> - assert conn |> get("/api/pleroma/admin/restart") |> json_response(200) == %{} - end) =~ "pleroma restarted" - - configs = - conn - |> get("/api/pleroma/admin/config") - |> json_response(200) - - assert configs["need_reboot"] == false - end - - test "saving config with nested merge", %{conn: conn} do - config = - insert(:config, key: ":key1", value: :erlang.term_to_binary(key1: 1, key2: [k1: 1, k2: 2])) - - conn = - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{ - group: config.group, - key: config.key, - value: [ - %{"tuple" => [":key3", 3]}, - %{ - "tuple" => [ - ":key2", - [ - %{"tuple" => [":k2", 1]}, - %{"tuple" => [":k3", 3]} - ] - ] - } - ] - } - ] - }) - - assert json_response(conn, 200) == %{ - "configs" => [ - %{ - "group" => ":pleroma", - "key" => ":key1", - "value" => [ - %{"tuple" => [":key1", 1]}, - %{"tuple" => [":key3", 3]}, - %{ - "tuple" => [ - ":key2", - [ - %{"tuple" => [":k1", 1]}, - %{"tuple" => [":k2", 1]}, - %{"tuple" => [":k3", 3]} - ] - ] - } - ], - "db" => [":key1", ":key3", ":key2"] - } - ] - } - end - - test "saving special atoms", %{conn: conn} do - conn = - post(conn, "/api/pleroma/admin/config", %{ - "configs" => [ - %{ - "group" => ":pleroma", - "key" => ":key1", - "value" => [ - %{ - "tuple" => [ - ":ssl_options", - [%{"tuple" => [":versions", [":tlsv1", ":tlsv1.1", ":tlsv1.2"]]}] - ] - } - ] - } - ] - }) - - assert json_response(conn, 200) == %{ - "configs" => [ - %{ - "group" => ":pleroma", - "key" => ":key1", - "value" => [ - %{ - "tuple" => [ - ":ssl_options", - [%{"tuple" => [":versions", [":tlsv1", ":tlsv1.1", ":tlsv1.2"]]}] - ] - } - ], - "db" => [":ssl_options"] - } - ] - } - - assert Application.get_env(:pleroma, :key1) == [ - ssl_options: [versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"]] - ] - end - - test "saving full setting if value is in full_key_update list", %{conn: conn} do - backends = Application.get_env(:logger, :backends) - on_exit(fn -> Application.put_env(:logger, :backends, backends) end) - - config = - insert(:config, - group: ":logger", - key: ":backends", - value: :erlang.term_to_binary([]) - ) - - Pleroma.Config.TransferTask.load_and_update_env([], false) - - assert Application.get_env(:logger, :backends) == [] - - conn = - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{ - group: config.group, - key: config.key, - value: [":console"] - } - ] - }) - - assert json_response(conn, 200) == %{ - "configs" => [ - %{ - "group" => ":logger", - "key" => ":backends", - "value" => [ - ":console" - ], - "db" => [":backends"] - } - ] - } - - assert Application.get_env(:logger, :backends) == [ - :console - ] - end - - test "saving full setting if value is not keyword", %{conn: conn} do - config = - insert(:config, - group: ":tesla", - key: ":adapter", - value: :erlang.term_to_binary(Tesla.Adapter.Hackey) - ) - - conn = - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{group: config.group, key: config.key, value: "Tesla.Adapter.Httpc"} - ] - }) - - assert json_response(conn, 200) == %{ - "configs" => [ - %{ - "group" => ":tesla", - "key" => ":adapter", - "value" => "Tesla.Adapter.Httpc", - "db" => [":adapter"] - } - ] - } - end - - test "update config setting & delete with fallback to default value", %{ - conn: conn, - admin: admin, - token: token - } do - ueberauth = Application.get_env(:ueberauth, Ueberauth) - config1 = insert(:config, key: ":keyaa1") - config2 = insert(:config, key: ":keyaa2") - - config3 = - insert(:config, - group: ":ueberauth", - key: "Ueberauth" - ) - - conn = - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{group: config1.group, key: config1.key, value: "another_value"}, - %{group: config2.group, key: config2.key, value: "another_value"} - ] - }) - - assert json_response(conn, 200) == %{ - "configs" => [ - %{ - "group" => ":pleroma", - "key" => config1.key, - "value" => "another_value", - "db" => [":keyaa1"] - }, - %{ - "group" => ":pleroma", - "key" => config2.key, - "value" => "another_value", - "db" => [":keyaa2"] - } - ] - } - - assert Application.get_env(:pleroma, :keyaa1) == "another_value" - assert Application.get_env(:pleroma, :keyaa2) == "another_value" - assert Application.get_env(:ueberauth, Ueberauth) == ConfigDB.from_binary(config3.value) - - conn = - build_conn() - |> assign(:user, admin) - |> assign(:token, token) - |> post("/api/pleroma/admin/config", %{ - configs: [ - %{group: config2.group, key: config2.key, delete: true}, - %{ - group: ":ueberauth", - key: "Ueberauth", - delete: true - } - ] - }) - - assert json_response(conn, 200) == %{ - "configs" => [] - } - - assert Application.get_env(:ueberauth, Ueberauth) == ueberauth - refute Keyword.has_key?(Application.get_all_env(:pleroma), :keyaa2) - end - - test "common config example", %{conn: conn} do - conn = - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{ - "group" => ":pleroma", - "key" => "Pleroma.Captcha.NotReal", - "value" => [ - %{"tuple" => [":enabled", false]}, - %{"tuple" => [":method", "Pleroma.Captcha.Kocaptcha"]}, - %{"tuple" => [":seconds_valid", 60]}, - %{"tuple" => [":path", ""]}, - %{"tuple" => [":key1", nil]}, - %{"tuple" => [":partial_chain", "&:hackney_connect.partial_chain/1"]}, - %{"tuple" => [":regex1", "~r/https:\/\/example.com/"]}, - %{"tuple" => [":regex2", "~r/https:\/\/example.com/u"]}, - %{"tuple" => [":regex3", "~r/https:\/\/example.com/i"]}, - %{"tuple" => [":regex4", "~r/https:\/\/example.com/s"]}, - %{"tuple" => [":name", "Pleroma"]} - ] - } - ] - }) - - assert Config.get([Pleroma.Captcha.NotReal, :name]) == "Pleroma" - - assert json_response(conn, 200) == %{ - "configs" => [ - %{ - "group" => ":pleroma", - "key" => "Pleroma.Captcha.NotReal", - "value" => [ - %{"tuple" => [":enabled", false]}, - %{"tuple" => [":method", "Pleroma.Captcha.Kocaptcha"]}, - %{"tuple" => [":seconds_valid", 60]}, - %{"tuple" => [":path", ""]}, - %{"tuple" => [":key1", nil]}, - %{"tuple" => [":partial_chain", "&:hackney_connect.partial_chain/1"]}, - %{"tuple" => [":regex1", "~r/https:\\/\\/example.com/"]}, - %{"tuple" => [":regex2", "~r/https:\\/\\/example.com/u"]}, - %{"tuple" => [":regex3", "~r/https:\\/\\/example.com/i"]}, - %{"tuple" => [":regex4", "~r/https:\\/\\/example.com/s"]}, - %{"tuple" => [":name", "Pleroma"]} - ], - "db" => [ - ":enabled", - ":method", - ":seconds_valid", - ":path", - ":key1", - ":partial_chain", - ":regex1", - ":regex2", - ":regex3", - ":regex4", - ":name" - ] - } - ] - } - end - - test "tuples with more than two values", %{conn: conn} do - conn = - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{ - "group" => ":pleroma", - "key" => "Pleroma.Web.Endpoint.NotReal", - "value" => [ - %{ - "tuple" => [ - ":http", - [ - %{ - "tuple" => [ - ":key2", - [ - %{ - "tuple" => [ - ":_", - [ - %{ - "tuple" => [ - "/api/v1/streaming", - "Pleroma.Web.MastodonAPI.WebsocketHandler", - [] - ] - }, - %{ - "tuple" => [ - "/websocket", - "Phoenix.Endpoint.CowboyWebSocket", - %{ - "tuple" => [ - "Phoenix.Transports.WebSocket", - %{ - "tuple" => [ - "Pleroma.Web.Endpoint", - "Pleroma.Web.UserSocket", - [] - ] - } - ] - } - ] - }, - %{ - "tuple" => [ - ":_", - "Phoenix.Endpoint.Cowboy2Handler", - %{"tuple" => ["Pleroma.Web.Endpoint", []]} - ] - } - ] - ] - } - ] - ] - } - ] - ] - } - ] - } - ] - }) - - assert json_response(conn, 200) == %{ - "configs" => [ - %{ - "group" => ":pleroma", - "key" => "Pleroma.Web.Endpoint.NotReal", - "value" => [ - %{ - "tuple" => [ - ":http", - [ - %{ - "tuple" => [ - ":key2", - [ - %{ - "tuple" => [ - ":_", - [ - %{ - "tuple" => [ - "/api/v1/streaming", - "Pleroma.Web.MastodonAPI.WebsocketHandler", - [] - ] - }, - %{ - "tuple" => [ - "/websocket", - "Phoenix.Endpoint.CowboyWebSocket", - %{ - "tuple" => [ - "Phoenix.Transports.WebSocket", - %{ - "tuple" => [ - "Pleroma.Web.Endpoint", - "Pleroma.Web.UserSocket", - [] - ] - } - ] - } - ] - }, - %{ - "tuple" => [ - ":_", - "Phoenix.Endpoint.Cowboy2Handler", - %{"tuple" => ["Pleroma.Web.Endpoint", []]} - ] - } - ] - ] - } - ] - ] - } - ] - ] - } - ], - "db" => [":http"] - } - ] - } - end - - test "settings with nesting map", %{conn: conn} do - conn = - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{ - "group" => ":pleroma", - "key" => ":key1", - "value" => [ - %{"tuple" => [":key2", "some_val"]}, - %{ - "tuple" => [ - ":key3", - %{ - ":max_options" => 20, - ":max_option_chars" => 200, - ":min_expiration" => 0, - ":max_expiration" => 31_536_000, - "nested" => %{ - ":max_options" => 20, - ":max_option_chars" => 200, - ":min_expiration" => 0, - ":max_expiration" => 31_536_000 - } - } - ] - } - ] - } - ] - }) - - assert json_response(conn, 200) == - %{ - "configs" => [ - %{ - "group" => ":pleroma", - "key" => ":key1", - "value" => [ - %{"tuple" => [":key2", "some_val"]}, - %{ - "tuple" => [ - ":key3", - %{ - ":max_expiration" => 31_536_000, - ":max_option_chars" => 200, - ":max_options" => 20, - ":min_expiration" => 0, - "nested" => %{ - ":max_expiration" => 31_536_000, - ":max_option_chars" => 200, - ":max_options" => 20, - ":min_expiration" => 0 - } - } - ] - } - ], - "db" => [":key2", ":key3"] - } - ] - } - end - - test "value as map", %{conn: conn} do - conn = - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{ - "group" => ":pleroma", - "key" => ":key1", - "value" => %{"key" => "some_val"} - } - ] - }) - - assert json_response(conn, 200) == - %{ - "configs" => [ - %{ - "group" => ":pleroma", - "key" => ":key1", - "value" => %{"key" => "some_val"}, - "db" => [":key1"] - } - ] - } - end - - test "queues key as atom", %{conn: conn} do - conn = - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{ - "group" => ":oban", - "key" => ":queues", - "value" => [ - %{"tuple" => [":federator_incoming", 50]}, - %{"tuple" => [":federator_outgoing", 50]}, - %{"tuple" => [":web_push", 50]}, - %{"tuple" => [":mailer", 10]}, - %{"tuple" => [":transmogrifier", 20]}, - %{"tuple" => [":scheduled_activities", 10]}, - %{"tuple" => [":background", 5]} - ] - } - ] - }) - - assert json_response(conn, 200) == %{ - "configs" => [ - %{ - "group" => ":oban", - "key" => ":queues", - "value" => [ - %{"tuple" => [":federator_incoming", 50]}, - %{"tuple" => [":federator_outgoing", 50]}, - %{"tuple" => [":web_push", 50]}, - %{"tuple" => [":mailer", 10]}, - %{"tuple" => [":transmogrifier", 20]}, - %{"tuple" => [":scheduled_activities", 10]}, - %{"tuple" => [":background", 5]} - ], - "db" => [ - ":federator_incoming", - ":federator_outgoing", - ":web_push", - ":mailer", - ":transmogrifier", - ":scheduled_activities", - ":background" - ] - } - ] - } - end - - test "delete part of settings by atom subkeys", %{conn: conn} do - config = - insert(:config, - key: ":keyaa1", - value: :erlang.term_to_binary(subkey1: "val1", subkey2: "val2", subkey3: "val3") - ) - - conn = - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{ - group: config.group, - key: config.key, - subkeys: [":subkey1", ":subkey3"], - delete: true - } - ] - }) - - assert json_response(conn, 200) == %{ - "configs" => [ - %{ - "group" => ":pleroma", - "key" => ":keyaa1", - "value" => [%{"tuple" => [":subkey2", "val2"]}], - "db" => [":subkey2"] - } - ] - } - end - - test "proxy tuple localhost", %{conn: conn} do - conn = - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{ - group: ":pleroma", - key: ":http", - value: [ - %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "localhost", 1234]}]} - ] - } - ] - }) - - assert %{ - "configs" => [ - %{ - "group" => ":pleroma", - "key" => ":http", - "value" => value, - "db" => db - } - ] - } = json_response(conn, 200) - - assert %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "localhost", 1234]}]} in value - assert ":proxy_url" in db - end - - test "proxy tuple domain", %{conn: conn} do - conn = - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{ - group: ":pleroma", - key: ":http", - value: [ - %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "domain.com", 1234]}]} - ] - } - ] - }) - - assert %{ - "configs" => [ - %{ - "group" => ":pleroma", - "key" => ":http", - "value" => value, - "db" => db - } - ] - } = json_response(conn, 200) - - assert %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "domain.com", 1234]}]} in value - assert ":proxy_url" in db - end - - test "proxy tuple ip", %{conn: conn} do - conn = - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{ - group: ":pleroma", - key: ":http", - value: [ - %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "127.0.0.1", 1234]}]} - ] - } - ] - }) - - assert %{ - "configs" => [ - %{ - "group" => ":pleroma", - "key" => ":http", - "value" => value, - "db" => db - } - ] - } = json_response(conn, 200) - - assert %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "127.0.0.1", 1234]}]} in value - assert ":proxy_url" in db - end - - test "doesn't set keys not in the whitelist", %{conn: conn} do - clear_config(:database_config_whitelist, [ - {:pleroma, :key1}, - {:pleroma, :key2}, - {:pleroma, Pleroma.Captcha.NotReal}, - {:not_real} - ]) - - post(conn, "/api/pleroma/admin/config", %{ - configs: [ - %{group: ":pleroma", key: ":key1", value: "value1"}, - %{group: ":pleroma", key: ":key2", value: "value2"}, - %{group: ":pleroma", key: ":key3", value: "value3"}, - %{group: ":pleroma", key: "Pleroma.Web.Endpoint.NotReal", value: "value4"}, - %{group: ":pleroma", key: "Pleroma.Captcha.NotReal", value: "value5"}, - %{group: ":not_real", key: ":anything", value: "value6"} - ] - }) - - assert Application.get_env(:pleroma, :key1) == "value1" - assert Application.get_env(:pleroma, :key2) == "value2" - assert Application.get_env(:pleroma, :key3) == nil - assert Application.get_env(:pleroma, Pleroma.Web.Endpoint.NotReal) == nil - assert Application.get_env(:pleroma, Pleroma.Captcha.NotReal) == "value5" - assert Application.get_env(:not_real, :anything) == "value6" - end - end - - describe "GET /api/pleroma/admin/restart" do - setup do: clear_config(:configurable_from_database, true) - - test "pleroma restarts", %{conn: conn} do - capture_log(fn -> - assert conn |> get("/api/pleroma/admin/restart") |> json_response(200) == %{} - end) =~ "pleroma restarted" - - refute Restarter.Pleroma.need_reboot?() - end - end - - test "need_reboot flag", %{conn: conn} do - assert conn - |> get("/api/pleroma/admin/need_reboot") - |> json_response(200) == %{"need_reboot" => false} - - Restarter.Pleroma.need_reboot() - - assert conn - |> get("/api/pleroma/admin/need_reboot") - |> json_response(200) == %{"need_reboot" => true} - - on_exit(fn -> Restarter.Pleroma.refresh() end) - end - - describe "GET /api/pleroma/admin/statuses" do - test "returns all public and unlisted statuses", %{conn: conn, admin: admin} do - blocked = insert(:user) - user = insert(:user) - User.block(admin, blocked) - - {:ok, _} = CommonAPI.post(user, %{status: "@#{admin.nickname}", visibility: "direct"}) - - {:ok, _} = CommonAPI.post(user, %{status: ".", visibility: "unlisted"}) - {:ok, _} = CommonAPI.post(user, %{status: ".", visibility: "private"}) - {:ok, _} = CommonAPI.post(user, %{status: ".", visibility: "public"}) - {:ok, _} = CommonAPI.post(blocked, %{status: ".", visibility: "public"}) - - response = - conn - |> get("/api/pleroma/admin/statuses") - |> json_response(200) - - refute "private" in Enum.map(response, & &1["visibility"]) - assert length(response) == 3 - end - - test "returns only local statuses with local_only on", %{conn: conn} do - user = insert(:user) - remote_user = insert(:user, local: false, nickname: "archaeme@archae.me") - insert(:note_activity, user: user, local: true) - insert(:note_activity, user: remote_user, local: false) - - response = - conn - |> get("/api/pleroma/admin/statuses?local_only=true") - |> json_response(200) - - assert length(response) == 1 - end - - test "returns private and direct statuses with godmode on", %{conn: conn, admin: admin} do - user = insert(:user) - - {:ok, _} = CommonAPI.post(user, %{status: "@#{admin.nickname}", visibility: "direct"}) - - {:ok, _} = CommonAPI.post(user, %{status: ".", visibility: "private"}) - {:ok, _} = CommonAPI.post(user, %{status: ".", visibility: "public"}) - conn = get(conn, "/api/pleroma/admin/statuses?godmode=true") - assert json_response(conn, 200) |> length() == 3 - end - end - - describe "GET /api/pleroma/admin/users/:nickname/statuses" do - setup do - user = insert(:user) - - date1 = (DateTime.to_unix(DateTime.utc_now()) + 2000) |> DateTime.from_unix!() - date2 = (DateTime.to_unix(DateTime.utc_now()) + 1000) |> DateTime.from_unix!() - date3 = (DateTime.to_unix(DateTime.utc_now()) + 3000) |> DateTime.from_unix!() - - insert(:note_activity, user: user, published: date1) - insert(:note_activity, user: user, published: date2) - insert(:note_activity, user: user, published: date3) - - %{user: user} - end - - test "renders user's statuses", %{conn: conn, user: user} do - conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}/statuses") - - assert json_response(conn, 200) |> length() == 3 - end - - test "renders user's statuses with a limit", %{conn: conn, user: user} do - conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}/statuses?page_size=2") - - assert json_response(conn, 200) |> length() == 2 - end - - test "doesn't return private statuses by default", %{conn: conn, user: user} do - {:ok, _private_status} = CommonAPI.post(user, %{status: "private", visibility: "private"}) - - {:ok, _public_status} = CommonAPI.post(user, %{status: "public", visibility: "public"}) - - conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}/statuses") - - assert json_response(conn, 200) |> length() == 4 - end - - test "returns private statuses with godmode on", %{conn: conn, user: user} do - {:ok, _private_status} = CommonAPI.post(user, %{status: "private", visibility: "private"}) - - {:ok, _public_status} = CommonAPI.post(user, %{status: "public", visibility: "public"}) - - conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}/statuses?godmode=true") - - assert json_response(conn, 200) |> length() == 5 - end - - test "excludes reblogs by default", %{conn: conn, user: user} do - other_user = insert(:user) - {:ok, activity} = CommonAPI.post(user, %{status: "."}) - {:ok, %Activity{}, _} = CommonAPI.repeat(activity.id, other_user) - - conn_res = get(conn, "/api/pleroma/admin/users/#{other_user.nickname}/statuses") - assert json_response(conn_res, 200) |> length() == 0 - - conn_res = - get(conn, "/api/pleroma/admin/users/#{other_user.nickname}/statuses?with_reblogs=true") - - assert json_response(conn_res, 200) |> length() == 1 - end - end - - describe "GET /api/pleroma/admin/moderation_log" do - setup do - moderator = insert(:user, is_moderator: true) - - %{moderator: moderator} - end - - test "returns the log", %{conn: conn, admin: admin} do - Repo.insert(%ModerationLog{ - data: %{ - actor: %{ - "id" => admin.id, - "nickname" => admin.nickname, - "type" => "user" - }, - action: "relay_follow", - target: "https://example.org/relay" - }, - inserted_at: NaiveDateTime.truncate(~N[2017-08-15 15:47:06.597036], :second) - }) - - Repo.insert(%ModerationLog{ - data: %{ - actor: %{ - "id" => admin.id, - "nickname" => admin.nickname, - "type" => "user" - }, - action: "relay_unfollow", - target: "https://example.org/relay" - }, - inserted_at: NaiveDateTime.truncate(~N[2017-08-16 15:47:06.597036], :second) - }) - - conn = get(conn, "/api/pleroma/admin/moderation_log") - - response = json_response(conn, 200) - [first_entry, second_entry] = response["items"] - - assert response["total"] == 2 - assert first_entry["data"]["action"] == "relay_unfollow" - - assert first_entry["message"] == - "@#{admin.nickname} unfollowed relay: https://example.org/relay" - - assert second_entry["data"]["action"] == "relay_follow" - - assert second_entry["message"] == - "@#{admin.nickname} followed relay: https://example.org/relay" - end - - test "returns the log with pagination", %{conn: conn, admin: admin} do - Repo.insert(%ModerationLog{ - data: %{ - actor: %{ - "id" => admin.id, - "nickname" => admin.nickname, - "type" => "user" - }, - action: "relay_follow", - target: "https://example.org/relay" - }, - inserted_at: NaiveDateTime.truncate(~N[2017-08-15 15:47:06.597036], :second) - }) - - Repo.insert(%ModerationLog{ - data: %{ - actor: %{ - "id" => admin.id, - "nickname" => admin.nickname, - "type" => "user" - }, - action: "relay_unfollow", - target: "https://example.org/relay" - }, - inserted_at: NaiveDateTime.truncate(~N[2017-08-16 15:47:06.597036], :second) - }) - - conn1 = get(conn, "/api/pleroma/admin/moderation_log?page_size=1&page=1") - - response1 = json_response(conn1, 200) - [first_entry] = response1["items"] - - assert response1["total"] == 2 - assert response1["items"] |> length() == 1 - assert first_entry["data"]["action"] == "relay_unfollow" - - assert first_entry["message"] == - "@#{admin.nickname} unfollowed relay: https://example.org/relay" - - conn2 = get(conn, "/api/pleroma/admin/moderation_log?page_size=1&page=2") - - response2 = json_response(conn2, 200) - [second_entry] = response2["items"] - - assert response2["total"] == 2 - assert response2["items"] |> length() == 1 - assert second_entry["data"]["action"] == "relay_follow" - - assert second_entry["message"] == - "@#{admin.nickname} followed relay: https://example.org/relay" - end - - test "filters log by date", %{conn: conn, admin: admin} do - first_date = "2017-08-15T15:47:06Z" - second_date = "2017-08-20T15:47:06Z" - - Repo.insert(%ModerationLog{ - data: %{ - actor: %{ - "id" => admin.id, - "nickname" => admin.nickname, - "type" => "user" - }, - action: "relay_follow", - target: "https://example.org/relay" - }, - inserted_at: NaiveDateTime.from_iso8601!(first_date) - }) - - Repo.insert(%ModerationLog{ - data: %{ - actor: %{ - "id" => admin.id, - "nickname" => admin.nickname, - "type" => "user" - }, - action: "relay_unfollow", - target: "https://example.org/relay" - }, - inserted_at: NaiveDateTime.from_iso8601!(second_date) - }) - - conn1 = - get( - conn, - "/api/pleroma/admin/moderation_log?start_date=#{second_date}" - ) - - response1 = json_response(conn1, 200) - [first_entry] = response1["items"] - - assert response1["total"] == 1 - assert first_entry["data"]["action"] == "relay_unfollow" - - assert first_entry["message"] == - "@#{admin.nickname} unfollowed relay: https://example.org/relay" - end - - test "returns log filtered by user", %{conn: conn, admin: admin, moderator: moderator} do - Repo.insert(%ModerationLog{ - data: %{ - actor: %{ - "id" => admin.id, - "nickname" => admin.nickname, - "type" => "user" - }, - action: "relay_follow", - target: "https://example.org/relay" - } - }) - - Repo.insert(%ModerationLog{ - data: %{ - actor: %{ - "id" => moderator.id, - "nickname" => moderator.nickname, - "type" => "user" - }, - action: "relay_unfollow", - target: "https://example.org/relay" - } - }) - - conn1 = get(conn, "/api/pleroma/admin/moderation_log?user_id=#{moderator.id}") - - response1 = json_response(conn1, 200) - [first_entry] = response1["items"] - - assert response1["total"] == 1 - assert get_in(first_entry, ["data", "actor", "id"]) == moderator.id - end - - test "returns log filtered by search", %{conn: conn, moderator: moderator} do - ModerationLog.insert_log(%{ - actor: moderator, - action: "relay_follow", - target: "https://example.org/relay" - }) - - ModerationLog.insert_log(%{ - actor: moderator, - action: "relay_unfollow", - target: "https://example.org/relay" - }) - - conn1 = get(conn, "/api/pleroma/admin/moderation_log?search=unfo") - - response1 = json_response(conn1, 200) - [first_entry] = response1["items"] - - assert response1["total"] == 1 - - assert get_in(first_entry, ["data", "message"]) == - "@#{moderator.nickname} unfollowed relay: https://example.org/relay" - end - end - - describe "GET /users/:nickname/credentials" do - test "gets the user credentials", %{conn: conn} do - user = insert(:user) - conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}/credentials") - - response = assert json_response(conn, 200) - assert response["email"] == user.email - end - - test "returns 403 if requested by a non-admin" do - user = insert(:user) - - conn = - build_conn() - |> assign(:user, user) - |> get("/api/pleroma/admin/users/#{user.nickname}/credentials") - - assert json_response(conn, :forbidden) - end - end - - describe "PATCH /users/:nickname/credentials" do - test "changes password and email", %{conn: conn, admin: admin} do - user = insert(:user) - assert user.password_reset_pending == false - - conn = - patch(conn, "/api/pleroma/admin/users/#{user.nickname}/credentials", %{ - "password" => "new_password", - "email" => "new_email@example.com", - "name" => "new_name" - }) - - assert json_response(conn, 200) == %{"status" => "success"} - - ObanHelpers.perform_all() - - updated_user = User.get_by_id(user.id) - - assert updated_user.email == "new_email@example.com" - assert updated_user.name == "new_name" - assert updated_user.password_hash != user.password_hash - assert updated_user.password_reset_pending == true - - [log_entry2, log_entry1] = ModerationLog |> Repo.all() |> Enum.sort() - - assert ModerationLog.get_log_entry_message(log_entry1) == - "@#{admin.nickname} updated users: @#{user.nickname}" - - assert ModerationLog.get_log_entry_message(log_entry2) == - "@#{admin.nickname} forced password reset for users: @#{user.nickname}" - end - - test "returns 403 if requested by a non-admin" do - user = insert(:user) - - conn = - build_conn() - |> assign(:user, user) - |> patch("/api/pleroma/admin/users/#{user.nickname}/credentials", %{ - "password" => "new_password", - "email" => "new_email@example.com", - "name" => "new_name" - }) - - assert json_response(conn, :forbidden) - end - end - - describe "PATCH /users/:nickname/force_password_reset" do - test "sets password_reset_pending to true", %{conn: conn} do - user = insert(:user) - assert user.password_reset_pending == false - - conn = - patch(conn, "/api/pleroma/admin/users/force_password_reset", %{nicknames: [user.nickname]}) - - assert json_response(conn, 204) == "" - - ObanHelpers.perform_all() - - assert User.get_by_id(user.id).password_reset_pending == true - end - end - - describe "relays" do - test "POST /relay", %{conn: conn, admin: admin} do - conn = - post(conn, "/api/pleroma/admin/relay", %{ - relay_url: "http://mastodon.example.org/users/admin" - }) - - assert json_response(conn, 200) == "http://mastodon.example.org/users/admin" - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} followed relay: http://mastodon.example.org/users/admin" - end - - test "GET /relay", %{conn: conn} do - relay_user = Pleroma.Web.ActivityPub.Relay.get_actor() - - ["http://mastodon.example.org/users/admin", "https://mstdn.io/users/mayuutann"] - |> Enum.each(fn ap_id -> - {:ok, user} = User.get_or_fetch_by_ap_id(ap_id) - User.follow(relay_user, user) - end) - - conn = get(conn, "/api/pleroma/admin/relay") - - assert json_response(conn, 200)["relays"] -- ["mastodon.example.org", "mstdn.io"] == [] - end - - test "DELETE /relay", %{conn: conn, admin: admin} do - post(conn, "/api/pleroma/admin/relay", %{ - relay_url: "http://mastodon.example.org/users/admin" - }) - - conn = - delete(conn, "/api/pleroma/admin/relay", %{ - relay_url: "http://mastodon.example.org/users/admin" - }) - - assert json_response(conn, 200) == "http://mastodon.example.org/users/admin" - - [log_entry_one, log_entry_two] = Repo.all(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry_one) == - "@#{admin.nickname} followed relay: http://mastodon.example.org/users/admin" - - assert ModerationLog.get_log_entry_message(log_entry_two) == - "@#{admin.nickname} unfollowed relay: http://mastodon.example.org/users/admin" - end - end - - describe "instances" do - test "GET /instances/:instance/statuses", %{conn: conn} do - user = insert(:user, local: false, nickname: "archaeme@archae.me") - user2 = insert(:user, local: false, nickname: "test@test.com") - insert_pair(:note_activity, user: user) - activity = insert(:note_activity, user: user2) - - ret_conn = get(conn, "/api/pleroma/admin/instances/archae.me/statuses") - - response = json_response(ret_conn, 200) - - assert length(response) == 2 - - ret_conn = get(conn, "/api/pleroma/admin/instances/test.com/statuses") - - response = json_response(ret_conn, 200) - - assert length(response) == 1 - - ret_conn = get(conn, "/api/pleroma/admin/instances/nonexistent.com/statuses") - - response = json_response(ret_conn, 200) - - assert Enum.empty?(response) - - CommonAPI.repeat(activity.id, user) - - ret_conn = get(conn, "/api/pleroma/admin/instances/archae.me/statuses") - response = json_response(ret_conn, 200) - assert length(response) == 2 - - ret_conn = get(conn, "/api/pleroma/admin/instances/archae.me/statuses?with_reblogs=true") - response = json_response(ret_conn, 200) - assert length(response) == 3 - end - end - - describe "PATCH /confirm_email" do - test "it confirms emails of two users", %{conn: conn, admin: admin} do - [first_user, second_user] = insert_pair(:user, confirmation_pending: true) - - assert first_user.confirmation_pending == true - assert second_user.confirmation_pending == true - - ret_conn = - patch(conn, "/api/pleroma/admin/users/confirm_email", %{ - nicknames: [ - first_user.nickname, - second_user.nickname - ] - }) - - assert ret_conn.status == 200 - - assert first_user.confirmation_pending == true - assert second_user.confirmation_pending == true - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} confirmed email for users: @#{first_user.nickname}, @#{ - second_user.nickname - }" - end - end - - describe "PATCH /resend_confirmation_email" do - test "it resend emails for two users", %{conn: conn, admin: admin} do - [first_user, second_user] = insert_pair(:user, confirmation_pending: true) - - ret_conn = - patch(conn, "/api/pleroma/admin/users/resend_confirmation_email", %{ - nicknames: [ - first_user.nickname, - second_user.nickname - ] - }) - - assert ret_conn.status == 200 - - log_entry = Repo.one(ModerationLog) - - assert ModerationLog.get_log_entry_message(log_entry) == - "@#{admin.nickname} re-sent confirmation email for users: @#{first_user.nickname}, @#{ - second_user.nickname - }" - end - end - - describe "POST /reports/:id/notes" do - setup %{conn: conn, admin: admin} do - [reporter, target_user] = insert_pair(:user) - activity = insert(:note_activity, user: target_user) - - {:ok, %{id: report_id}} = - CommonAPI.report(reporter, %{ - account_id: target_user.id, - comment: "I feel offended", - status_ids: [activity.id] - }) - - post(conn, "/api/pleroma/admin/reports/#{report_id}/notes", %{ - content: "this is disgusting!" - }) - - post(conn, "/api/pleroma/admin/reports/#{report_id}/notes", %{ - content: "this is disgusting2!" - }) - - %{ - admin_id: admin.id, - report_id: report_id - } - end - - test "it creates report note", %{admin_id: admin_id, report_id: report_id} do - [note, _] = Repo.all(ReportNote) - - assert %{ - activity_id: ^report_id, - content: "this is disgusting!", - user_id: ^admin_id - } = note - end - - test "it returns reports with notes", %{conn: conn, admin: admin} do - conn = get(conn, "/api/pleroma/admin/reports") - - response = json_response(conn, 200) - notes = hd(response["reports"])["notes"] - [note, _] = notes - - assert note["user"]["nickname"] == admin.nickname - assert note["content"] == "this is disgusting!" - assert note["created_at"] - assert response["total"] == 1 - end - - test "it deletes the note", %{conn: conn, report_id: report_id} do - assert ReportNote |> Repo.all() |> length() == 2 - - [note, _] = Repo.all(ReportNote) - - delete(conn, "/api/pleroma/admin/reports/#{report_id}/notes/#{note.id}") - - assert ReportNote |> Repo.all() |> length() == 1 - end - end - - describe "GET /api/pleroma/admin/config/descriptions" do - test "structure", %{conn: conn} do - admin = insert(:user, is_admin: true) - - conn = - assign(conn, :user, admin) - |> get("/api/pleroma/admin/config/descriptions") - - assert [child | _others] = json_response(conn, 200) - - assert child["children"] - assert child["key"] - assert String.starts_with?(child["group"], ":") - assert child["description"] - end - - test "filters by database configuration whitelist", %{conn: conn} do - clear_config(:database_config_whitelist, [ - {:pleroma, :instance}, - {:pleroma, :activitypub}, - {:pleroma, Pleroma.Upload}, - {:esshd} - ]) - - admin = insert(:user, is_admin: true) - - conn = - assign(conn, :user, admin) - |> get("/api/pleroma/admin/config/descriptions") - - children = json_response(conn, 200) - - assert length(children) == 4 - - assert Enum.count(children, fn c -> c["group"] == ":pleroma" end) == 3 - - instance = Enum.find(children, fn c -> c["key"] == ":instance" end) - assert instance["children"] - - activitypub = Enum.find(children, fn c -> c["key"] == ":activitypub" end) - assert activitypub["children"] - - web_endpoint = Enum.find(children, fn c -> c["key"] == "Pleroma.Upload" end) - assert web_endpoint["children"] - - esshd = Enum.find(children, fn c -> c["group"] == ":esshd" end) - assert esshd["children"] - end - end - - describe "/api/pleroma/admin/stats" do - test "status visibility count", %{conn: conn} do - admin = insert(:user, is_admin: true) - user = insert(:user) - CommonAPI.post(user, %{visibility: "public", status: "hey"}) - CommonAPI.post(user, %{visibility: "unlisted", status: "hey"}) - CommonAPI.post(user, %{visibility: "unlisted", status: "hey"}) - - response = - conn - |> assign(:user, admin) - |> get("/api/pleroma/admin/stats") - |> json_response(200) - - assert %{"direct" => 0, "private" => 0, "public" => 1, "unlisted" => 2} = - response["status_visibility"] - end - end - - describe "POST /api/pleroma/admin/oauth_app" do - test "errors", %{conn: conn} do - response = conn |> post("/api/pleroma/admin/oauth_app", %{}) |> json_response(200) - - assert response == %{"name" => "can't be blank", "redirect_uris" => "can't be blank"} - end - - test "success", %{conn: conn} do - base_url = Web.base_url() - app_name = "Trusted app" - - response = - conn - |> post("/api/pleroma/admin/oauth_app", %{ - name: app_name, - redirect_uris: base_url - }) - |> json_response(200) - - assert %{ - "client_id" => _, - "client_secret" => _, - "name" => ^app_name, - "redirect_uri" => ^base_url, - "trusted" => false - } = response - end - - test "with trusted", %{conn: conn} do - base_url = Web.base_url() - app_name = "Trusted app" - - response = - conn - |> post("/api/pleroma/admin/oauth_app", %{ - name: app_name, - redirect_uris: base_url, - trusted: true - }) - |> json_response(200) - - assert %{ - "client_id" => _, - "client_secret" => _, - "name" => ^app_name, - "redirect_uri" => ^base_url, - "trusted" => true - } = response - end - end - - describe "GET /api/pleroma/admin/oauth_app" do - setup do - app = insert(:oauth_app) - {:ok, app: app} - end - - test "list", %{conn: conn} do - response = - conn - |> get("/api/pleroma/admin/oauth_app") - |> json_response(200) - - assert %{"apps" => apps, "count" => count, "page_size" => _} = response - - assert length(apps) == count - end - - test "with page size", %{conn: conn} do - insert(:oauth_app) - page_size = 1 - - response = - conn - |> get("/api/pleroma/admin/oauth_app", %{page_size: to_string(page_size)}) - |> json_response(200) - - assert %{"apps" => apps, "count" => _, "page_size" => ^page_size} = response - - assert length(apps) == page_size - end - - test "search by client name", %{conn: conn, app: app} do - response = - conn - |> get("/api/pleroma/admin/oauth_app", %{name: app.client_name}) - |> json_response(200) - - assert %{"apps" => [returned], "count" => _, "page_size" => _} = response - - assert returned["client_id"] == app.client_id - assert returned["name"] == app.client_name - end - - test "search by client id", %{conn: conn, app: app} do - response = - conn - |> get("/api/pleroma/admin/oauth_app", %{client_id: app.client_id}) - |> json_response(200) - - assert %{"apps" => [returned], "count" => _, "page_size" => _} = response - - assert returned["client_id"] == app.client_id - assert returned["name"] == app.client_name - end - - test "only trusted", %{conn: conn} do - app = insert(:oauth_app, trusted: true) - - response = - conn - |> get("/api/pleroma/admin/oauth_app", %{trusted: true}) - |> json_response(200) - - assert %{"apps" => [returned], "count" => _, "page_size" => _} = response - - assert returned["client_id"] == app.client_id - assert returned["name"] == app.client_name - end - end - - describe "DELETE /api/pleroma/admin/oauth_app/:id" do - test "with id", %{conn: conn} do - app = insert(:oauth_app) - - response = - conn - |> delete("/api/pleroma/admin/oauth_app/" <> to_string(app.id)) - |> json_response(:no_content) - - assert response == "" - end - - test "with non existance id", %{conn: conn} do - response = - conn - |> delete("/api/pleroma/admin/oauth_app/0") - |> json_response(:bad_request) - - assert response == "" - end - end - - describe "PATCH /api/pleroma/admin/oauth_app/:id" do - test "with id", %{conn: conn} do - app = insert(:oauth_app) - - name = "another name" - url = "https://example.com" - scopes = ["admin"] - id = app.id - website = "http://website.com" - - response = - conn - |> patch("/api/pleroma/admin/oauth_app/" <> to_string(app.id), %{ - name: name, - trusted: true, - redirect_uris: url, - scopes: scopes, - website: website - }) - |> json_response(200) - - assert %{ - "client_id" => _, - "client_secret" => _, - "id" => ^id, - "name" => ^name, - "redirect_uri" => ^url, - "trusted" => true, - "website" => ^website - } = response - end - - test "without id", %{conn: conn} do - response = - conn - |> patch("/api/pleroma/admin/oauth_app/0") - |> json_response(:bad_request) - - assert response == "" - end - end -end - -# Needed for testing -defmodule Pleroma.Web.Endpoint.NotReal do -end - -defmodule Pleroma.Captcha.NotReal do -end diff --git a/test/web/admin_api/controllers/admin_api_controller_test.exs b/test/web/admin_api/controllers/admin_api_controller_test.exs new file mode 100644 index 000000000..48fb108ec --- /dev/null +++ b/test/web/admin_api/controllers/admin_api_controller_test.exs @@ -0,0 +1,1763 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do + use Pleroma.Web.ConnCase + use Oban.Testing, repo: Pleroma.Repo + + import ExUnit.CaptureLog + import Mock + import Pleroma.Factory + + alias Pleroma.Activity + alias Pleroma.Config + alias Pleroma.HTML + alias Pleroma.MFA + alias Pleroma.ModerationLog + alias Pleroma.Repo + alias Pleroma.Tests.ObanHelpers + alias Pleroma.User + alias Pleroma.Web + alias Pleroma.Web.ActivityPub.Relay + alias Pleroma.Web.CommonAPI + alias Pleroma.Web.MediaProxy + + setup_all do + Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) + + :ok + end + + setup do + admin = insert(:user, is_admin: true) + token = insert(:oauth_admin_token, user: admin) + + conn = + build_conn() + |> assign(:user, admin) + |> assign(:token, token) + + {:ok, %{admin: admin, token: token, conn: conn}} + end + + describe "with [:auth, :enforce_oauth_admin_scope_usage]," do + setup do: clear_config([:auth, :enforce_oauth_admin_scope_usage], true) + + test "GET /api/pleroma/admin/users/:nickname requires admin:read:accounts or broader scope", + %{admin: admin} do + user = insert(:user) + url = "/api/pleroma/admin/users/#{user.nickname}" + + good_token1 = insert(:oauth_token, user: admin, scopes: ["admin"]) + good_token2 = insert(:oauth_token, user: admin, scopes: ["admin:read"]) + good_token3 = insert(:oauth_token, user: admin, scopes: ["admin:read:accounts"]) + + bad_token1 = insert(:oauth_token, user: admin, scopes: ["read:accounts"]) + bad_token2 = insert(:oauth_token, user: admin, scopes: ["admin:read:accounts:partial"]) + bad_token3 = nil + + for good_token <- [good_token1, good_token2, good_token3] do + conn = + build_conn() + |> assign(:user, admin) + |> assign(:token, good_token) + |> get(url) + + assert json_response(conn, 200) + end + + for good_token <- [good_token1, good_token2, good_token3] do + conn = + build_conn() + |> assign(:user, nil) + |> assign(:token, good_token) + |> get(url) + + assert json_response(conn, :forbidden) + end + + for bad_token <- [bad_token1, bad_token2, bad_token3] do + conn = + build_conn() + |> assign(:user, admin) + |> assign(:token, bad_token) + |> get(url) + + assert json_response(conn, :forbidden) + end + end + end + + describe "unless [:auth, :enforce_oauth_admin_scope_usage]," do + setup do: clear_config([:auth, :enforce_oauth_admin_scope_usage], false) + + test "GET /api/pleroma/admin/users/:nickname requires " <> + "read:accounts or admin:read:accounts or broader scope", + %{admin: admin} do + user = insert(:user) + url = "/api/pleroma/admin/users/#{user.nickname}" + + good_token1 = insert(:oauth_token, user: admin, scopes: ["admin"]) + good_token2 = insert(:oauth_token, user: admin, scopes: ["admin:read"]) + good_token3 = insert(:oauth_token, user: admin, scopes: ["admin:read:accounts"]) + good_token4 = insert(:oauth_token, user: admin, scopes: ["read:accounts"]) + good_token5 = insert(:oauth_token, user: admin, scopes: ["read"]) + + good_tokens = [good_token1, good_token2, good_token3, good_token4, good_token5] + + bad_token1 = insert(:oauth_token, user: admin, scopes: ["read:accounts:partial"]) + bad_token2 = insert(:oauth_token, user: admin, scopes: ["admin:read:accounts:partial"]) + bad_token3 = nil + + for good_token <- good_tokens do + conn = + build_conn() + |> assign(:user, admin) + |> assign(:token, good_token) + |> get(url) + + assert json_response(conn, 200) + end + + for good_token <- good_tokens do + conn = + build_conn() + |> assign(:user, nil) + |> assign(:token, good_token) + |> get(url) + + assert json_response(conn, :forbidden) + end + + for bad_token <- [bad_token1, bad_token2, bad_token3] do + conn = + build_conn() + |> assign(:user, admin) + |> assign(:token, bad_token) + |> get(url) + + assert json_response(conn, :forbidden) + end + end + end + + describe "DELETE /api/pleroma/admin/users" do + test "single user", %{admin: admin, conn: conn} do + user = insert(:user) + clear_config([:instance, :federating], true) + + with_mock Pleroma.Web.Federator, + publish: fn _ -> nil end do + conn = + conn + |> put_req_header("accept", "application/json") + |> delete("/api/pleroma/admin/users?nickname=#{user.nickname}") + + ObanHelpers.perform_all() + + assert User.get_by_nickname(user.nickname).deactivated + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} deleted users: @#{user.nickname}" + + assert json_response(conn, 200) == [user.nickname] + + assert called(Pleroma.Web.Federator.publish(:_)) + end + end + + test "multiple users", %{admin: admin, conn: conn} do + user_one = insert(:user) + user_two = insert(:user) + + conn = + conn + |> put_req_header("accept", "application/json") + |> delete("/api/pleroma/admin/users", %{ + nicknames: [user_one.nickname, user_two.nickname] + }) + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} deleted users: @#{user_one.nickname}, @#{user_two.nickname}" + + response = json_response(conn, 200) + assert response -- [user_one.nickname, user_two.nickname] == [] + end + end + + describe "/api/pleroma/admin/users" do + test "Create", %{conn: conn} do + conn = + conn + |> put_req_header("accept", "application/json") + |> post("/api/pleroma/admin/users", %{ + "users" => [ + %{ + "nickname" => "lain", + "email" => "lain@example.org", + "password" => "test" + }, + %{ + "nickname" => "lain2", + "email" => "lain2@example.org", + "password" => "test" + } + ] + }) + + response = json_response(conn, 200) |> Enum.map(&Map.get(&1, "type")) + assert response == ["success", "success"] + + log_entry = Repo.one(ModerationLog) + + assert ["lain", "lain2"] -- Enum.map(log_entry.data["subjects"], & &1["nickname"]) == [] + end + + test "Cannot create user with existing email", %{conn: conn} do + user = insert(:user) + + conn = + conn + |> put_req_header("accept", "application/json") + |> post("/api/pleroma/admin/users", %{ + "users" => [ + %{ + "nickname" => "lain", + "email" => user.email, + "password" => "test" + } + ] + }) + + assert json_response(conn, 409) == [ + %{ + "code" => 409, + "data" => %{ + "email" => user.email, + "nickname" => "lain" + }, + "error" => "email has already been taken", + "type" => "error" + } + ] + end + + test "Cannot create user with existing nickname", %{conn: conn} do + user = insert(:user) + + conn = + conn + |> put_req_header("accept", "application/json") + |> post("/api/pleroma/admin/users", %{ + "users" => [ + %{ + "nickname" => user.nickname, + "email" => "someuser@plerama.social", + "password" => "test" + } + ] + }) + + assert json_response(conn, 409) == [ + %{ + "code" => 409, + "data" => %{ + "email" => "someuser@plerama.social", + "nickname" => user.nickname + }, + "error" => "nickname has already been taken", + "type" => "error" + } + ] + end + + test "Multiple user creation works in transaction", %{conn: conn} do + user = insert(:user) + + conn = + conn + |> put_req_header("accept", "application/json") + |> post("/api/pleroma/admin/users", %{ + "users" => [ + %{ + "nickname" => "newuser", + "email" => "newuser@pleroma.social", + "password" => "test" + }, + %{ + "nickname" => "lain", + "email" => user.email, + "password" => "test" + } + ] + }) + + assert json_response(conn, 409) == [ + %{ + "code" => 409, + "data" => %{ + "email" => user.email, + "nickname" => "lain" + }, + "error" => "email has already been taken", + "type" => "error" + }, + %{ + "code" => 409, + "data" => %{ + "email" => "newuser@pleroma.social", + "nickname" => "newuser" + }, + "error" => "", + "type" => "error" + } + ] + + assert User.get_by_nickname("newuser") === nil + end + end + + describe "/api/pleroma/admin/users/:nickname" do + test "Show", %{conn: conn} do + user = insert(:user) + + conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}") + + expected = %{ + "deactivated" => false, + "id" => to_string(user.id), + "local" => true, + "nickname" => user.nickname, + "roles" => %{"admin" => false, "moderator" => false}, + "tags" => [], + "avatar" => User.avatar_url(user) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(user.name || user.nickname), + "confirmation_pending" => false, + "url" => user.ap_id + } + + assert expected == json_response(conn, 200) + end + + test "when the user doesn't exist", %{conn: conn} do + user = build(:user) + + conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}") + + assert %{"error" => "Not found"} == json_response(conn, 404) + end + end + + describe "/api/pleroma/admin/users/follow" do + test "allows to force-follow another user", %{admin: admin, conn: conn} do + user = insert(:user) + follower = insert(:user) + + conn + |> put_req_header("accept", "application/json") + |> post("/api/pleroma/admin/users/follow", %{ + "follower" => follower.nickname, + "followed" => user.nickname + }) + + user = User.get_cached_by_id(user.id) + follower = User.get_cached_by_id(follower.id) + + assert User.following?(follower, user) + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} made @#{follower.nickname} follow @#{user.nickname}" + end + end + + describe "/api/pleroma/admin/users/unfollow" do + test "allows to force-unfollow another user", %{admin: admin, conn: conn} do + user = insert(:user) + follower = insert(:user) + + User.follow(follower, user) + + conn + |> put_req_header("accept", "application/json") + |> post("/api/pleroma/admin/users/unfollow", %{ + "follower" => follower.nickname, + "followed" => user.nickname + }) + + user = User.get_cached_by_id(user.id) + follower = User.get_cached_by_id(follower.id) + + refute User.following?(follower, user) + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} made @#{follower.nickname} unfollow @#{user.nickname}" + end + end + + describe "PUT /api/pleroma/admin/users/tag" do + setup %{conn: conn} do + user1 = insert(:user, %{tags: ["x"]}) + user2 = insert(:user, %{tags: ["y"]}) + user3 = insert(:user, %{tags: ["unchanged"]}) + + conn = + conn + |> put_req_header("accept", "application/json") + |> put( + "/api/pleroma/admin/users/tag?nicknames[]=#{user1.nickname}&nicknames[]=" <> + "#{user2.nickname}&tags[]=foo&tags[]=bar" + ) + + %{conn: conn, user1: user1, user2: user2, user3: user3} + end + + test "it appends specified tags to users with specified nicknames", %{ + conn: conn, + admin: admin, + user1: user1, + user2: user2 + } do + assert json_response(conn, :no_content) + assert User.get_cached_by_id(user1.id).tags == ["x", "foo", "bar"] + assert User.get_cached_by_id(user2.id).tags == ["y", "foo", "bar"] + + log_entry = Repo.one(ModerationLog) + + users = + [user1.nickname, user2.nickname] + |> Enum.map(&"@#{&1}") + |> Enum.join(", ") + + tags = ["foo", "bar"] |> Enum.join(", ") + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} added tags: #{tags} to users: #{users}" + end + + test "it does not modify tags of not specified users", %{conn: conn, user3: user3} do + assert json_response(conn, :no_content) + assert User.get_cached_by_id(user3.id).tags == ["unchanged"] + end + end + + describe "DELETE /api/pleroma/admin/users/tag" do + setup %{conn: conn} do + user1 = insert(:user, %{tags: ["x"]}) + user2 = insert(:user, %{tags: ["y", "z"]}) + user3 = insert(:user, %{tags: ["unchanged"]}) + + conn = + conn + |> put_req_header("accept", "application/json") + |> delete( + "/api/pleroma/admin/users/tag?nicknames[]=#{user1.nickname}&nicknames[]=" <> + "#{user2.nickname}&tags[]=x&tags[]=z" + ) + + %{conn: conn, user1: user1, user2: user2, user3: user3} + end + + test "it removes specified tags from users with specified nicknames", %{ + conn: conn, + admin: admin, + user1: user1, + user2: user2 + } do + assert json_response(conn, :no_content) + assert User.get_cached_by_id(user1.id).tags == [] + assert User.get_cached_by_id(user2.id).tags == ["y"] + + log_entry = Repo.one(ModerationLog) + + users = + [user1.nickname, user2.nickname] + |> Enum.map(&"@#{&1}") + |> Enum.join(", ") + + tags = ["x", "z"] |> Enum.join(", ") + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} removed tags: #{tags} from users: #{users}" + end + + test "it does not modify tags of not specified users", %{conn: conn, user3: user3} do + assert json_response(conn, :no_content) + assert User.get_cached_by_id(user3.id).tags == ["unchanged"] + end + end + + describe "/api/pleroma/admin/users/:nickname/permission_group" do + test "GET is giving user_info", %{admin: admin, conn: conn} do + conn = + conn + |> put_req_header("accept", "application/json") + |> get("/api/pleroma/admin/users/#{admin.nickname}/permission_group/") + + assert json_response(conn, 200) == %{ + "is_admin" => true, + "is_moderator" => false + } + end + + test "/:right POST, can add to a permission group", %{admin: admin, conn: conn} do + user = insert(:user) + + conn = + conn + |> put_req_header("accept", "application/json") + |> post("/api/pleroma/admin/users/#{user.nickname}/permission_group/admin") + + assert json_response(conn, 200) == %{ + "is_admin" => true + } + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} made @#{user.nickname} admin" + end + + test "/:right POST, can add to a permission group (multiple)", %{admin: admin, conn: conn} do + user_one = insert(:user) + user_two = insert(:user) + + conn = + conn + |> put_req_header("accept", "application/json") + |> post("/api/pleroma/admin/users/permission_group/admin", %{ + nicknames: [user_one.nickname, user_two.nickname] + }) + + assert json_response(conn, 200) == %{"is_admin" => true} + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} made @#{user_one.nickname}, @#{user_two.nickname} admin" + end + + test "/:right DELETE, can remove from a permission group", %{admin: admin, conn: conn} do + user = insert(:user, is_admin: true) + + conn = + conn + |> put_req_header("accept", "application/json") + |> delete("/api/pleroma/admin/users/#{user.nickname}/permission_group/admin") + + assert json_response(conn, 200) == %{"is_admin" => false} + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} revoked admin role from @#{user.nickname}" + end + + test "/:right DELETE, can remove from a permission group (multiple)", %{ + admin: admin, + conn: conn + } do + user_one = insert(:user, is_admin: true) + user_two = insert(:user, is_admin: true) + + conn = + conn + |> put_req_header("accept", "application/json") + |> delete("/api/pleroma/admin/users/permission_group/admin", %{ + nicknames: [user_one.nickname, user_two.nickname] + }) + + assert json_response(conn, 200) == %{"is_admin" => false} + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} revoked admin role from @#{user_one.nickname}, @#{ + user_two.nickname + }" + end + end + + test "/api/pleroma/admin/users/:nickname/password_reset", %{conn: conn} do + user = insert(:user) + + conn = + conn + |> put_req_header("accept", "application/json") + |> get("/api/pleroma/admin/users/#{user.nickname}/password_reset") + + resp = json_response(conn, 200) + + assert Regex.match?(~r/(http:\/\/|https:\/\/)/, resp["link"]) + end + + describe "GET /api/pleroma/admin/users" do + test "renders users array for the first page", %{conn: conn, admin: admin} do + user = insert(:user, local: false, tags: ["foo", "bar"]) + conn = get(conn, "/api/pleroma/admin/users?page=1") + + users = + [ + %{ + "deactivated" => admin.deactivated, + "id" => admin.id, + "nickname" => admin.nickname, + "roles" => %{"admin" => true, "moderator" => false}, + "local" => true, + "tags" => [], + "avatar" => User.avatar_url(admin) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(admin.name || admin.nickname), + "confirmation_pending" => false, + "url" => admin.ap_id + }, + %{ + "deactivated" => user.deactivated, + "id" => user.id, + "nickname" => user.nickname, + "roles" => %{"admin" => false, "moderator" => false}, + "local" => false, + "tags" => ["foo", "bar"], + "avatar" => User.avatar_url(user) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(user.name || user.nickname), + "confirmation_pending" => false, + "url" => user.ap_id + } + ] + |> Enum.sort_by(& &1["nickname"]) + + assert json_response(conn, 200) == %{ + "count" => 2, + "page_size" => 50, + "users" => users + } + end + + test "pagination works correctly with service users", %{conn: conn} do + service1 = User.get_or_create_service_actor_by_ap_id(Web.base_url() <> "/meido", "meido") + + insert_list(25, :user) + + assert %{"count" => 26, "page_size" => 10, "users" => users1} = + conn + |> get("/api/pleroma/admin/users?page=1&filters=", %{page_size: "10"}) + |> json_response(200) + + assert Enum.count(users1) == 10 + assert service1 not in users1 + + assert %{"count" => 26, "page_size" => 10, "users" => users2} = + conn + |> get("/api/pleroma/admin/users?page=2&filters=", %{page_size: "10"}) + |> json_response(200) + + assert Enum.count(users2) == 10 + assert service1 not in users2 + + assert %{"count" => 26, "page_size" => 10, "users" => users3} = + conn + |> get("/api/pleroma/admin/users?page=3&filters=", %{page_size: "10"}) + |> json_response(200) + + assert Enum.count(users3) == 6 + assert service1 not in users3 + end + + test "renders empty array for the second page", %{conn: conn} do + insert(:user) + + conn = get(conn, "/api/pleroma/admin/users?page=2") + + assert json_response(conn, 200) == %{ + "count" => 2, + "page_size" => 50, + "users" => [] + } + end + + test "regular search", %{conn: conn} do + user = insert(:user, nickname: "bob") + + conn = get(conn, "/api/pleroma/admin/users?query=bo") + + assert json_response(conn, 200) == %{ + "count" => 1, + "page_size" => 50, + "users" => [ + %{ + "deactivated" => user.deactivated, + "id" => user.id, + "nickname" => user.nickname, + "roles" => %{"admin" => false, "moderator" => false}, + "local" => true, + "tags" => [], + "avatar" => User.avatar_url(user) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(user.name || user.nickname), + "confirmation_pending" => false, + "url" => user.ap_id + } + ] + } + end + + test "search by domain", %{conn: conn} do + user = insert(:user, nickname: "nickname@domain.com") + insert(:user) + + conn = get(conn, "/api/pleroma/admin/users?query=domain.com") + + assert json_response(conn, 200) == %{ + "count" => 1, + "page_size" => 50, + "users" => [ + %{ + "deactivated" => user.deactivated, + "id" => user.id, + "nickname" => user.nickname, + "roles" => %{"admin" => false, "moderator" => false}, + "local" => true, + "tags" => [], + "avatar" => User.avatar_url(user) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(user.name || user.nickname), + "confirmation_pending" => false, + "url" => user.ap_id + } + ] + } + end + + test "search by full nickname", %{conn: conn} do + user = insert(:user, nickname: "nickname@domain.com") + insert(:user) + + conn = get(conn, "/api/pleroma/admin/users?query=nickname@domain.com") + + assert json_response(conn, 200) == %{ + "count" => 1, + "page_size" => 50, + "users" => [ + %{ + "deactivated" => user.deactivated, + "id" => user.id, + "nickname" => user.nickname, + "roles" => %{"admin" => false, "moderator" => false}, + "local" => true, + "tags" => [], + "avatar" => User.avatar_url(user) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(user.name || user.nickname), + "confirmation_pending" => false, + "url" => user.ap_id + } + ] + } + end + + test "search by display name", %{conn: conn} do + user = insert(:user, name: "Display name") + insert(:user) + + conn = get(conn, "/api/pleroma/admin/users?name=display") + + assert json_response(conn, 200) == %{ + "count" => 1, + "page_size" => 50, + "users" => [ + %{ + "deactivated" => user.deactivated, + "id" => user.id, + "nickname" => user.nickname, + "roles" => %{"admin" => false, "moderator" => false}, + "local" => true, + "tags" => [], + "avatar" => User.avatar_url(user) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(user.name || user.nickname), + "confirmation_pending" => false, + "url" => user.ap_id + } + ] + } + end + + test "search by email", %{conn: conn} do + user = insert(:user, email: "email@example.com") + insert(:user) + + conn = get(conn, "/api/pleroma/admin/users?email=email@example.com") + + assert json_response(conn, 200) == %{ + "count" => 1, + "page_size" => 50, + "users" => [ + %{ + "deactivated" => user.deactivated, + "id" => user.id, + "nickname" => user.nickname, + "roles" => %{"admin" => false, "moderator" => false}, + "local" => true, + "tags" => [], + "avatar" => User.avatar_url(user) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(user.name || user.nickname), + "confirmation_pending" => false, + "url" => user.ap_id + } + ] + } + end + + test "regular search with page size", %{conn: conn} do + user = insert(:user, nickname: "aalice") + user2 = insert(:user, nickname: "alice") + + conn1 = get(conn, "/api/pleroma/admin/users?query=a&page_size=1&page=1") + + assert json_response(conn1, 200) == %{ + "count" => 2, + "page_size" => 1, + "users" => [ + %{ + "deactivated" => user.deactivated, + "id" => user.id, + "nickname" => user.nickname, + "roles" => %{"admin" => false, "moderator" => false}, + "local" => true, + "tags" => [], + "avatar" => User.avatar_url(user) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(user.name || user.nickname), + "confirmation_pending" => false, + "url" => user.ap_id + } + ] + } + + conn2 = get(conn, "/api/pleroma/admin/users?query=a&page_size=1&page=2") + + assert json_response(conn2, 200) == %{ + "count" => 2, + "page_size" => 1, + "users" => [ + %{ + "deactivated" => user2.deactivated, + "id" => user2.id, + "nickname" => user2.nickname, + "roles" => %{"admin" => false, "moderator" => false}, + "local" => true, + "tags" => [], + "avatar" => User.avatar_url(user2) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(user2.name || user2.nickname), + "confirmation_pending" => false, + "url" => user2.ap_id + } + ] + } + end + + test "only local users" do + admin = insert(:user, is_admin: true, nickname: "john") + token = insert(:oauth_admin_token, user: admin) + user = insert(:user, nickname: "bob") + + insert(:user, nickname: "bobb", local: false) + + conn = + build_conn() + |> assign(:user, admin) + |> assign(:token, token) + |> get("/api/pleroma/admin/users?query=bo&filters=local") + + assert json_response(conn, 200) == %{ + "count" => 1, + "page_size" => 50, + "users" => [ + %{ + "deactivated" => user.deactivated, + "id" => user.id, + "nickname" => user.nickname, + "roles" => %{"admin" => false, "moderator" => false}, + "local" => true, + "tags" => [], + "avatar" => User.avatar_url(user) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(user.name || user.nickname), + "confirmation_pending" => false, + "url" => user.ap_id + } + ] + } + end + + test "only local users with no query", %{conn: conn, admin: old_admin} do + admin = insert(:user, is_admin: true, nickname: "john") + user = insert(:user, nickname: "bob") + + insert(:user, nickname: "bobb", local: false) + + conn = get(conn, "/api/pleroma/admin/users?filters=local") + + users = + [ + %{ + "deactivated" => user.deactivated, + "id" => user.id, + "nickname" => user.nickname, + "roles" => %{"admin" => false, "moderator" => false}, + "local" => true, + "tags" => [], + "avatar" => User.avatar_url(user) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(user.name || user.nickname), + "confirmation_pending" => false, + "url" => user.ap_id + }, + %{ + "deactivated" => admin.deactivated, + "id" => admin.id, + "nickname" => admin.nickname, + "roles" => %{"admin" => true, "moderator" => false}, + "local" => true, + "tags" => [], + "avatar" => User.avatar_url(admin) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(admin.name || admin.nickname), + "confirmation_pending" => false, + "url" => admin.ap_id + }, + %{ + "deactivated" => false, + "id" => old_admin.id, + "local" => true, + "nickname" => old_admin.nickname, + "roles" => %{"admin" => true, "moderator" => false}, + "tags" => [], + "avatar" => User.avatar_url(old_admin) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(old_admin.name || old_admin.nickname), + "confirmation_pending" => false, + "url" => old_admin.ap_id + } + ] + |> Enum.sort_by(& &1["nickname"]) + + assert json_response(conn, 200) == %{ + "count" => 3, + "page_size" => 50, + "users" => users + } + end + + test "load only admins", %{conn: conn, admin: admin} do + second_admin = insert(:user, is_admin: true) + insert(:user) + insert(:user) + + conn = get(conn, "/api/pleroma/admin/users?filters=is_admin") + + users = + [ + %{ + "deactivated" => false, + "id" => admin.id, + "nickname" => admin.nickname, + "roles" => %{"admin" => true, "moderator" => false}, + "local" => admin.local, + "tags" => [], + "avatar" => User.avatar_url(admin) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(admin.name || admin.nickname), + "confirmation_pending" => false, + "url" => admin.ap_id + }, + %{ + "deactivated" => false, + "id" => second_admin.id, + "nickname" => second_admin.nickname, + "roles" => %{"admin" => true, "moderator" => false}, + "local" => second_admin.local, + "tags" => [], + "avatar" => User.avatar_url(second_admin) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(second_admin.name || second_admin.nickname), + "confirmation_pending" => false, + "url" => second_admin.ap_id + } + ] + |> Enum.sort_by(& &1["nickname"]) + + assert json_response(conn, 200) == %{ + "count" => 2, + "page_size" => 50, + "users" => users + } + end + + test "load only moderators", %{conn: conn} do + moderator = insert(:user, is_moderator: true) + insert(:user) + insert(:user) + + conn = get(conn, "/api/pleroma/admin/users?filters=is_moderator") + + assert json_response(conn, 200) == %{ + "count" => 1, + "page_size" => 50, + "users" => [ + %{ + "deactivated" => false, + "id" => moderator.id, + "nickname" => moderator.nickname, + "roles" => %{"admin" => false, "moderator" => true}, + "local" => moderator.local, + "tags" => [], + "avatar" => User.avatar_url(moderator) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(moderator.name || moderator.nickname), + "confirmation_pending" => false, + "url" => moderator.ap_id + } + ] + } + end + + test "load users with tags list", %{conn: conn} do + user1 = insert(:user, tags: ["first"]) + user2 = insert(:user, tags: ["second"]) + insert(:user) + insert(:user) + + conn = get(conn, "/api/pleroma/admin/users?tags[]=first&tags[]=second") + + users = + [ + %{ + "deactivated" => false, + "id" => user1.id, + "nickname" => user1.nickname, + "roles" => %{"admin" => false, "moderator" => false}, + "local" => user1.local, + "tags" => ["first"], + "avatar" => User.avatar_url(user1) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(user1.name || user1.nickname), + "confirmation_pending" => false, + "url" => user1.ap_id + }, + %{ + "deactivated" => false, + "id" => user2.id, + "nickname" => user2.nickname, + "roles" => %{"admin" => false, "moderator" => false}, + "local" => user2.local, + "tags" => ["second"], + "avatar" => User.avatar_url(user2) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(user2.name || user2.nickname), + "confirmation_pending" => false, + "url" => user2.ap_id + } + ] + |> Enum.sort_by(& &1["nickname"]) + + assert json_response(conn, 200) == %{ + "count" => 2, + "page_size" => 50, + "users" => users + } + end + + test "it works with multiple filters" do + admin = insert(:user, nickname: "john", is_admin: true) + token = insert(:oauth_admin_token, user: admin) + user = insert(:user, nickname: "bob", local: false, deactivated: true) + + insert(:user, nickname: "ken", local: true, deactivated: true) + insert(:user, nickname: "bobb", local: false, deactivated: false) + + conn = + build_conn() + |> assign(:user, admin) + |> assign(:token, token) + |> get("/api/pleroma/admin/users?filters=deactivated,external") + + assert json_response(conn, 200) == %{ + "count" => 1, + "page_size" => 50, + "users" => [ + %{ + "deactivated" => user.deactivated, + "id" => user.id, + "nickname" => user.nickname, + "roles" => %{"admin" => false, "moderator" => false}, + "local" => user.local, + "tags" => [], + "avatar" => User.avatar_url(user) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(user.name || user.nickname), + "confirmation_pending" => false, + "url" => user.ap_id + } + ] + } + end + + test "it omits relay user", %{admin: admin, conn: conn} do + assert %User{} = Relay.get_actor() + + conn = get(conn, "/api/pleroma/admin/users") + + assert json_response(conn, 200) == %{ + "count" => 1, + "page_size" => 50, + "users" => [ + %{ + "deactivated" => admin.deactivated, + "id" => admin.id, + "nickname" => admin.nickname, + "roles" => %{"admin" => true, "moderator" => false}, + "local" => true, + "tags" => [], + "avatar" => User.avatar_url(admin) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(admin.name || admin.nickname), + "confirmation_pending" => false, + "url" => admin.ap_id + } + ] + } + end + end + + test "PATCH /api/pleroma/admin/users/activate", %{admin: admin, conn: conn} do + user_one = insert(:user, deactivated: true) + user_two = insert(:user, deactivated: true) + + conn = + patch( + conn, + "/api/pleroma/admin/users/activate", + %{nicknames: [user_one.nickname, user_two.nickname]} + ) + + response = json_response(conn, 200) + assert Enum.map(response["users"], & &1["deactivated"]) == [false, false] + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} activated users: @#{user_one.nickname}, @#{user_two.nickname}" + end + + test "PATCH /api/pleroma/admin/users/deactivate", %{admin: admin, conn: conn} do + user_one = insert(:user, deactivated: false) + user_two = insert(:user, deactivated: false) + + conn = + patch( + conn, + "/api/pleroma/admin/users/deactivate", + %{nicknames: [user_one.nickname, user_two.nickname]} + ) + + response = json_response(conn, 200) + assert Enum.map(response["users"], & &1["deactivated"]) == [true, true] + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} deactivated users: @#{user_one.nickname}, @#{user_two.nickname}" + end + + test "PATCH /api/pleroma/admin/users/:nickname/toggle_activation", %{admin: admin, conn: conn} do + user = insert(:user) + + conn = patch(conn, "/api/pleroma/admin/users/#{user.nickname}/toggle_activation") + + assert json_response(conn, 200) == + %{ + "deactivated" => !user.deactivated, + "id" => user.id, + "nickname" => user.nickname, + "roles" => %{"admin" => false, "moderator" => false}, + "local" => true, + "tags" => [], + "avatar" => User.avatar_url(user) |> MediaProxy.url(), + "display_name" => HTML.strip_tags(user.name || user.nickname), + "confirmation_pending" => false, + "url" => user.ap_id + } + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} deactivated users: @#{user.nickname}" + end + + describe "PUT disable_mfa" do + test "returns 200 and disable 2fa", %{conn: conn} do + user = + insert(:user, + multi_factor_authentication_settings: %MFA.Settings{ + enabled: true, + totp: %MFA.Settings.TOTP{secret: "otp_secret", confirmed: true} + } + ) + + response = + conn + |> put("/api/pleroma/admin/users/disable_mfa", %{nickname: user.nickname}) + |> json_response(200) + + assert response == user.nickname + mfa_settings = refresh_record(user).multi_factor_authentication_settings + + refute mfa_settings.enabled + refute mfa_settings.totp.confirmed + end + + test "returns 404 if user not found", %{conn: conn} do + response = + conn + |> put("/api/pleroma/admin/users/disable_mfa", %{nickname: "nickname"}) + |> json_response(404) + + assert response == %{"error" => "Not found"} + end + end + + describe "GET /api/pleroma/admin/restart" do + setup do: clear_config(:configurable_from_database, true) + + test "pleroma restarts", %{conn: conn} do + capture_log(fn -> + assert conn |> get("/api/pleroma/admin/restart") |> json_response(200) == %{} + end) =~ "pleroma restarted" + + refute Restarter.Pleroma.need_reboot?() + end + end + + test "need_reboot flag", %{conn: conn} do + assert conn + |> get("/api/pleroma/admin/need_reboot") + |> json_response(200) == %{"need_reboot" => false} + + Restarter.Pleroma.need_reboot() + + assert conn + |> get("/api/pleroma/admin/need_reboot") + |> json_response(200) == %{"need_reboot" => true} + + on_exit(fn -> Restarter.Pleroma.refresh() end) + end + + describe "GET /api/pleroma/admin/users/:nickname/statuses" do + setup do + user = insert(:user) + + date1 = (DateTime.to_unix(DateTime.utc_now()) + 2000) |> DateTime.from_unix!() + date2 = (DateTime.to_unix(DateTime.utc_now()) + 1000) |> DateTime.from_unix!() + date3 = (DateTime.to_unix(DateTime.utc_now()) + 3000) |> DateTime.from_unix!() + + insert(:note_activity, user: user, published: date1) + insert(:note_activity, user: user, published: date2) + insert(:note_activity, user: user, published: date3) + + %{user: user} + end + + test "renders user's statuses", %{conn: conn, user: user} do + conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}/statuses") + + assert json_response(conn, 200) |> length() == 3 + end + + test "renders user's statuses with a limit", %{conn: conn, user: user} do + conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}/statuses?page_size=2") + + assert json_response(conn, 200) |> length() == 2 + end + + test "doesn't return private statuses by default", %{conn: conn, user: user} do + {:ok, _private_status} = CommonAPI.post(user, %{status: "private", visibility: "private"}) + + {:ok, _public_status} = CommonAPI.post(user, %{status: "public", visibility: "public"}) + + conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}/statuses") + + assert json_response(conn, 200) |> length() == 4 + end + + test "returns private statuses with godmode on", %{conn: conn, user: user} do + {:ok, _private_status} = CommonAPI.post(user, %{status: "private", visibility: "private"}) + + {:ok, _public_status} = CommonAPI.post(user, %{status: "public", visibility: "public"}) + + conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}/statuses?godmode=true") + + assert json_response(conn, 200) |> length() == 5 + end + + test "excludes reblogs by default", %{conn: conn, user: user} do + other_user = insert(:user) + {:ok, activity} = CommonAPI.post(user, %{status: "."}) + {:ok, %Activity{}} = CommonAPI.repeat(activity.id, other_user) + + conn_res = get(conn, "/api/pleroma/admin/users/#{other_user.nickname}/statuses") + assert json_response(conn_res, 200) |> length() == 0 + + conn_res = + get(conn, "/api/pleroma/admin/users/#{other_user.nickname}/statuses?with_reblogs=true") + + assert json_response(conn_res, 200) |> length() == 1 + end + end + + describe "GET /api/pleroma/admin/moderation_log" do + setup do + moderator = insert(:user, is_moderator: true) + + %{moderator: moderator} + end + + test "returns the log", %{conn: conn, admin: admin} do + Repo.insert(%ModerationLog{ + data: %{ + actor: %{ + "id" => admin.id, + "nickname" => admin.nickname, + "type" => "user" + }, + action: "relay_follow", + target: "https://example.org/relay" + }, + inserted_at: NaiveDateTime.truncate(~N[2017-08-15 15:47:06.597036], :second) + }) + + Repo.insert(%ModerationLog{ + data: %{ + actor: %{ + "id" => admin.id, + "nickname" => admin.nickname, + "type" => "user" + }, + action: "relay_unfollow", + target: "https://example.org/relay" + }, + inserted_at: NaiveDateTime.truncate(~N[2017-08-16 15:47:06.597036], :second) + }) + + conn = get(conn, "/api/pleroma/admin/moderation_log") + + response = json_response(conn, 200) + [first_entry, second_entry] = response["items"] + + assert response["total"] == 2 + assert first_entry["data"]["action"] == "relay_unfollow" + + assert first_entry["message"] == + "@#{admin.nickname} unfollowed relay: https://example.org/relay" + + assert second_entry["data"]["action"] == "relay_follow" + + assert second_entry["message"] == + "@#{admin.nickname} followed relay: https://example.org/relay" + end + + test "returns the log with pagination", %{conn: conn, admin: admin} do + Repo.insert(%ModerationLog{ + data: %{ + actor: %{ + "id" => admin.id, + "nickname" => admin.nickname, + "type" => "user" + }, + action: "relay_follow", + target: "https://example.org/relay" + }, + inserted_at: NaiveDateTime.truncate(~N[2017-08-15 15:47:06.597036], :second) + }) + + Repo.insert(%ModerationLog{ + data: %{ + actor: %{ + "id" => admin.id, + "nickname" => admin.nickname, + "type" => "user" + }, + action: "relay_unfollow", + target: "https://example.org/relay" + }, + inserted_at: NaiveDateTime.truncate(~N[2017-08-16 15:47:06.597036], :second) + }) + + conn1 = get(conn, "/api/pleroma/admin/moderation_log?page_size=1&page=1") + + response1 = json_response(conn1, 200) + [first_entry] = response1["items"] + + assert response1["total"] == 2 + assert response1["items"] |> length() == 1 + assert first_entry["data"]["action"] == "relay_unfollow" + + assert first_entry["message"] == + "@#{admin.nickname} unfollowed relay: https://example.org/relay" + + conn2 = get(conn, "/api/pleroma/admin/moderation_log?page_size=1&page=2") + + response2 = json_response(conn2, 200) + [second_entry] = response2["items"] + + assert response2["total"] == 2 + assert response2["items"] |> length() == 1 + assert second_entry["data"]["action"] == "relay_follow" + + assert second_entry["message"] == + "@#{admin.nickname} followed relay: https://example.org/relay" + end + + test "filters log by date", %{conn: conn, admin: admin} do + first_date = "2017-08-15T15:47:06Z" + second_date = "2017-08-20T15:47:06Z" + + Repo.insert(%ModerationLog{ + data: %{ + actor: %{ + "id" => admin.id, + "nickname" => admin.nickname, + "type" => "user" + }, + action: "relay_follow", + target: "https://example.org/relay" + }, + inserted_at: NaiveDateTime.from_iso8601!(first_date) + }) + + Repo.insert(%ModerationLog{ + data: %{ + actor: %{ + "id" => admin.id, + "nickname" => admin.nickname, + "type" => "user" + }, + action: "relay_unfollow", + target: "https://example.org/relay" + }, + inserted_at: NaiveDateTime.from_iso8601!(second_date) + }) + + conn1 = + get( + conn, + "/api/pleroma/admin/moderation_log?start_date=#{second_date}" + ) + + response1 = json_response(conn1, 200) + [first_entry] = response1["items"] + + assert response1["total"] == 1 + assert first_entry["data"]["action"] == "relay_unfollow" + + assert first_entry["message"] == + "@#{admin.nickname} unfollowed relay: https://example.org/relay" + end + + test "returns log filtered by user", %{conn: conn, admin: admin, moderator: moderator} do + Repo.insert(%ModerationLog{ + data: %{ + actor: %{ + "id" => admin.id, + "nickname" => admin.nickname, + "type" => "user" + }, + action: "relay_follow", + target: "https://example.org/relay" + } + }) + + Repo.insert(%ModerationLog{ + data: %{ + actor: %{ + "id" => moderator.id, + "nickname" => moderator.nickname, + "type" => "user" + }, + action: "relay_unfollow", + target: "https://example.org/relay" + } + }) + + conn1 = get(conn, "/api/pleroma/admin/moderation_log?user_id=#{moderator.id}") + + response1 = json_response(conn1, 200) + [first_entry] = response1["items"] + + assert response1["total"] == 1 + assert get_in(first_entry, ["data", "actor", "id"]) == moderator.id + end + + test "returns log filtered by search", %{conn: conn, moderator: moderator} do + ModerationLog.insert_log(%{ + actor: moderator, + action: "relay_follow", + target: "https://example.org/relay" + }) + + ModerationLog.insert_log(%{ + actor: moderator, + action: "relay_unfollow", + target: "https://example.org/relay" + }) + + conn1 = get(conn, "/api/pleroma/admin/moderation_log?search=unfo") + + response1 = json_response(conn1, 200) + [first_entry] = response1["items"] + + assert response1["total"] == 1 + + assert get_in(first_entry, ["data", "message"]) == + "@#{moderator.nickname} unfollowed relay: https://example.org/relay" + end + end + + describe "GET /users/:nickname/credentials" do + test "gets the user credentials", %{conn: conn} do + user = insert(:user) + conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}/credentials") + + response = assert json_response(conn, 200) + assert response["email"] == user.email + end + + test "returns 403 if requested by a non-admin" do + user = insert(:user) + + conn = + build_conn() + |> assign(:user, user) + |> get("/api/pleroma/admin/users/#{user.nickname}/credentials") + + assert json_response(conn, :forbidden) + end + end + + describe "PATCH /users/:nickname/credentials" do + setup do + user = insert(:user) + [user: user] + end + + test "changes password and email", %{conn: conn, admin: admin, user: user} do + assert user.password_reset_pending == false + + conn = + patch(conn, "/api/pleroma/admin/users/#{user.nickname}/credentials", %{ + "password" => "new_password", + "email" => "new_email@example.com", + "name" => "new_name" + }) + + assert json_response(conn, 200) == %{"status" => "success"} + + ObanHelpers.perform_all() + + updated_user = User.get_by_id(user.id) + + assert updated_user.email == "new_email@example.com" + assert updated_user.name == "new_name" + assert updated_user.password_hash != user.password_hash + assert updated_user.password_reset_pending == true + + [log_entry2, log_entry1] = ModerationLog |> Repo.all() |> Enum.sort() + + assert ModerationLog.get_log_entry_message(log_entry1) == + "@#{admin.nickname} updated users: @#{user.nickname}" + + assert ModerationLog.get_log_entry_message(log_entry2) == + "@#{admin.nickname} forced password reset for users: @#{user.nickname}" + end + + test "returns 403 if requested by a non-admin", %{user: user} do + conn = + build_conn() + |> assign(:user, user) + |> patch("/api/pleroma/admin/users/#{user.nickname}/credentials", %{ + "password" => "new_password", + "email" => "new_email@example.com", + "name" => "new_name" + }) + + assert json_response(conn, :forbidden) + end + + test "changes actor type from permitted list", %{conn: conn, user: user} do + assert user.actor_type == "Person" + + assert patch(conn, "/api/pleroma/admin/users/#{user.nickname}/credentials", %{ + "actor_type" => "Service" + }) + |> json_response(200) == %{"status" => "success"} + + updated_user = User.get_by_id(user.id) + + assert updated_user.actor_type == "Service" + + assert patch(conn, "/api/pleroma/admin/users/#{user.nickname}/credentials", %{ + "actor_type" => "Application" + }) + |> json_response(400) == %{"errors" => %{"actor_type" => "is invalid"}} + end + + test "update non existing user", %{conn: conn} do + assert patch(conn, "/api/pleroma/admin/users/non-existing/credentials", %{ + "password" => "new_password" + }) + |> json_response(404) == %{"error" => "Not found"} + end + end + + describe "PATCH /users/:nickname/force_password_reset" do + test "sets password_reset_pending to true", %{conn: conn} do + user = insert(:user) + assert user.password_reset_pending == false + + conn = + patch(conn, "/api/pleroma/admin/users/force_password_reset", %{nicknames: [user.nickname]}) + + assert json_response(conn, 204) == "" + + ObanHelpers.perform_all() + + assert User.get_by_id(user.id).password_reset_pending == true + end + end + + describe "instances" do + test "GET /instances/:instance/statuses", %{conn: conn} do + user = insert(:user, local: false, nickname: "archaeme@archae.me") + user2 = insert(:user, local: false, nickname: "test@test.com") + insert_pair(:note_activity, user: user) + activity = insert(:note_activity, user: user2) + + ret_conn = get(conn, "/api/pleroma/admin/instances/archae.me/statuses") + + response = json_response(ret_conn, 200) + + assert length(response) == 2 + + ret_conn = get(conn, "/api/pleroma/admin/instances/test.com/statuses") + + response = json_response(ret_conn, 200) + + assert length(response) == 1 + + ret_conn = get(conn, "/api/pleroma/admin/instances/nonexistent.com/statuses") + + response = json_response(ret_conn, 200) + + assert Enum.empty?(response) + + CommonAPI.repeat(activity.id, user) + + ret_conn = get(conn, "/api/pleroma/admin/instances/archae.me/statuses") + response = json_response(ret_conn, 200) + assert length(response) == 2 + + ret_conn = get(conn, "/api/pleroma/admin/instances/archae.me/statuses?with_reblogs=true") + response = json_response(ret_conn, 200) + assert length(response) == 3 + end + end + + describe "PATCH /confirm_email" do + test "it confirms emails of two users", %{conn: conn, admin: admin} do + [first_user, second_user] = insert_pair(:user, confirmation_pending: true) + + assert first_user.confirmation_pending == true + assert second_user.confirmation_pending == true + + ret_conn = + patch(conn, "/api/pleroma/admin/users/confirm_email", %{ + nicknames: [ + first_user.nickname, + second_user.nickname + ] + }) + + assert ret_conn.status == 200 + + assert first_user.confirmation_pending == true + assert second_user.confirmation_pending == true + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} confirmed email for users: @#{first_user.nickname}, @#{ + second_user.nickname + }" + end + end + + describe "PATCH /resend_confirmation_email" do + test "it resend emails for two users", %{conn: conn, admin: admin} do + [first_user, second_user] = insert_pair(:user, confirmation_pending: true) + + ret_conn = + patch(conn, "/api/pleroma/admin/users/resend_confirmation_email", %{ + nicknames: [ + first_user.nickname, + second_user.nickname + ] + }) + + assert ret_conn.status == 200 + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} re-sent confirmation email for users: @#{first_user.nickname}, @#{ + second_user.nickname + }" + end + end + + describe "/api/pleroma/admin/stats" do + test "status visibility count", %{conn: conn} do + admin = insert(:user, is_admin: true) + user = insert(:user) + CommonAPI.post(user, %{visibility: "public", status: "hey"}) + CommonAPI.post(user, %{visibility: "unlisted", status: "hey"}) + CommonAPI.post(user, %{visibility: "unlisted", status: "hey"}) + + response = + conn + |> assign(:user, admin) + |> get("/api/pleroma/admin/stats") + |> json_response(200) + + assert %{"direct" => 0, "private" => 0, "public" => 1, "unlisted" => 2} = + response["status_visibility"] + end + + test "by instance", %{conn: conn} do + admin = insert(:user, is_admin: true) + user1 = insert(:user) + instance2 = "instance2.tld" + user2 = insert(:user, %{ap_id: "https://#{instance2}/@actor"}) + + CommonAPI.post(user1, %{visibility: "public", status: "hey"}) + CommonAPI.post(user2, %{visibility: "unlisted", status: "hey"}) + CommonAPI.post(user2, %{visibility: "private", status: "hey"}) + + response = + conn + |> assign(:user, admin) + |> get("/api/pleroma/admin/stats", instance: instance2) + |> json_response(200) + + assert %{"direct" => 0, "private" => 1, "public" => 0, "unlisted" => 1} = + response["status_visibility"] + end + end +end + +# Needed for testing +defmodule Pleroma.Web.Endpoint.NotReal do +end + +defmodule Pleroma.Captcha.NotReal do +end diff --git a/test/web/admin_api/controllers/config_controller_test.exs b/test/web/admin_api/controllers/config_controller_test.exs new file mode 100644 index 000000000..064ef9bc7 --- /dev/null +++ b/test/web/admin_api/controllers/config_controller_test.exs @@ -0,0 +1,1388 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.ConfigControllerTest do + use Pleroma.Web.ConnCase, async: true + + import ExUnit.CaptureLog + import Pleroma.Factory + + alias Pleroma.Config + alias Pleroma.ConfigDB + + setup do + admin = insert(:user, is_admin: true) + token = insert(:oauth_admin_token, user: admin) + + conn = + build_conn() + |> assign(:user, admin) + |> assign(:token, token) + + {:ok, %{admin: admin, token: token, conn: conn}} + end + + describe "GET /api/pleroma/admin/config" do + setup do: clear_config(:configurable_from_database, true) + + test "when configuration from database is off", %{conn: conn} do + Config.put(:configurable_from_database, false) + conn = get(conn, "/api/pleroma/admin/config") + + assert json_response_and_validate_schema(conn, 400) == + %{ + "error" => "To use this endpoint you need to enable configuration from database." + } + end + + test "with settings only in db", %{conn: conn} do + config1 = insert(:config) + config2 = insert(:config) + + conn = get(conn, "/api/pleroma/admin/config?only_db=true") + + %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => key1, + "value" => _ + }, + %{ + "group" => ":pleroma", + "key" => key2, + "value" => _ + } + ] + } = json_response_and_validate_schema(conn, 200) + + assert key1 == inspect(config1.key) + assert key2 == inspect(config2.key) + end + + test "db is added to settings that are in db", %{conn: conn} do + _config = insert(:config, key: ":instance", value: [name: "Some name"]) + + %{"configs" => configs} = + conn + |> get("/api/pleroma/admin/config") + |> json_response_and_validate_schema(200) + + [instance_config] = + Enum.filter(configs, fn %{"group" => group, "key" => key} -> + group == ":pleroma" and key == ":instance" + end) + + assert instance_config["db"] == [":name"] + end + + test "merged default setting with db settings", %{conn: conn} do + config1 = insert(:config) + config2 = insert(:config) + + config3 = + insert(:config, + value: [k1: :v1, k2: :v2] + ) + + %{"configs" => configs} = + conn + |> get("/api/pleroma/admin/config") + |> json_response_and_validate_schema(200) + + assert length(configs) > 3 + + saved_configs = [config1, config2, config3] + keys = Enum.map(saved_configs, &inspect(&1.key)) + + received_configs = + Enum.filter(configs, fn %{"group" => group, "key" => key} -> + group == ":pleroma" and key in keys + end) + + assert length(received_configs) == 3 + + db_keys = + config3.value + |> Keyword.keys() + |> ConfigDB.to_json_types() + + keys = Enum.map(saved_configs -- [config3], &inspect(&1.key)) + + values = Enum.map(saved_configs, &ConfigDB.to_json_types(&1.value)) + + mapset_keys = MapSet.new(keys ++ db_keys) + + Enum.each(received_configs, fn %{"value" => value, "db" => db} -> + db = MapSet.new(db) + assert MapSet.subset?(db, mapset_keys) + + assert value in values + end) + end + + test "subkeys with full update right merge", %{conn: conn} do + insert(:config, + key: ":emoji", + value: [groups: [a: 1, b: 2], key: [a: 1]] + ) + + insert(:config, + key: ":assets", + value: [mascots: [a: 1, b: 2], key: [a: 1]] + ) + + %{"configs" => configs} = + conn + |> get("/api/pleroma/admin/config") + |> json_response_and_validate_schema(200) + + vals = + Enum.filter(configs, fn %{"group" => group, "key" => key} -> + group == ":pleroma" and key in [":emoji", ":assets"] + end) + + emoji = Enum.find(vals, fn %{"key" => key} -> key == ":emoji" end) + assets = Enum.find(vals, fn %{"key" => key} -> key == ":assets" end) + + emoji_val = ConfigDB.to_elixir_types(emoji["value"]) + assets_val = ConfigDB.to_elixir_types(assets["value"]) + + assert emoji_val[:groups] == [a: 1, b: 2] + assert assets_val[:mascots] == [a: 1, b: 2] + end + end + + test "POST /api/pleroma/admin/config error", %{conn: conn} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{"configs" => []}) + + assert json_response_and_validate_schema(conn, 400) == + %{"error" => "To use this endpoint you need to enable configuration from database."} + end + + describe "POST /api/pleroma/admin/config" do + setup do + http = Application.get_env(:pleroma, :http) + + on_exit(fn -> + Application.delete_env(:pleroma, :key1) + Application.delete_env(:pleroma, :key2) + Application.delete_env(:pleroma, :key3) + Application.delete_env(:pleroma, :key4) + Application.delete_env(:pleroma, :keyaa1) + Application.delete_env(:pleroma, :keyaa2) + Application.delete_env(:pleroma, Pleroma.Web.Endpoint.NotReal) + Application.delete_env(:pleroma, Pleroma.Captcha.NotReal) + Application.put_env(:pleroma, :http, http) + Application.put_env(:tesla, :adapter, Tesla.Mock) + Restarter.Pleroma.refresh() + end) + end + + setup do: clear_config(:configurable_from_database, true) + + @tag capture_log: true + test "create new config setting in db", %{conn: conn} do + ueberauth = Application.get_env(:ueberauth, Ueberauth) + on_exit(fn -> Application.put_env(:ueberauth, Ueberauth, ueberauth) end) + + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{group: ":pleroma", key: ":key1", value: "value1"}, + %{ + group: ":ueberauth", + key: "Ueberauth", + value: [%{"tuple" => [":consumer_secret", "aaaa"]}] + }, + %{ + group: ":pleroma", + key: ":key2", + value: %{ + ":nested_1" => "nested_value1", + ":nested_2" => [ + %{":nested_22" => "nested_value222"}, + %{":nested_33" => %{":nested_44" => "nested_444"}} + ] + } + }, + %{ + group: ":pleroma", + key: ":key3", + value: [ + %{"nested_3" => ":nested_3", "nested_33" => "nested_33"}, + %{"nested_4" => true} + ] + }, + %{ + group: ":pleroma", + key: ":key4", + value: %{":nested_5" => ":upload", "endpoint" => "https://example.com"} + }, + %{ + group: ":idna", + key: ":key5", + value: %{"tuple" => ["string", "Pleroma.Captcha.NotReal", []]} + } + ] + }) + + assert json_response_and_validate_schema(conn, 200) == %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => ":key1", + "value" => "value1", + "db" => [":key1"] + }, + %{ + "group" => ":ueberauth", + "key" => "Ueberauth", + "value" => [%{"tuple" => [":consumer_secret", "aaaa"]}], + "db" => [":consumer_secret"] + }, + %{ + "group" => ":pleroma", + "key" => ":key2", + "value" => %{ + ":nested_1" => "nested_value1", + ":nested_2" => [ + %{":nested_22" => "nested_value222"}, + %{":nested_33" => %{":nested_44" => "nested_444"}} + ] + }, + "db" => [":key2"] + }, + %{ + "group" => ":pleroma", + "key" => ":key3", + "value" => [ + %{"nested_3" => ":nested_3", "nested_33" => "nested_33"}, + %{"nested_4" => true} + ], + "db" => [":key3"] + }, + %{ + "group" => ":pleroma", + "key" => ":key4", + "value" => %{"endpoint" => "https://example.com", ":nested_5" => ":upload"}, + "db" => [":key4"] + }, + %{ + "group" => ":idna", + "key" => ":key5", + "value" => %{"tuple" => ["string", "Pleroma.Captcha.NotReal", []]}, + "db" => [":key5"] + } + ], + "need_reboot" => false + } + + assert Application.get_env(:pleroma, :key1) == "value1" + + assert Application.get_env(:pleroma, :key2) == %{ + nested_1: "nested_value1", + nested_2: [ + %{nested_22: "nested_value222"}, + %{nested_33: %{nested_44: "nested_444"}} + ] + } + + assert Application.get_env(:pleroma, :key3) == [ + %{"nested_3" => :nested_3, "nested_33" => "nested_33"}, + %{"nested_4" => true} + ] + + assert Application.get_env(:pleroma, :key4) == %{ + "endpoint" => "https://example.com", + nested_5: :upload + } + + assert Application.get_env(:idna, :key5) == {"string", Pleroma.Captcha.NotReal, []} + end + + test "save configs setting without explicit key", %{conn: conn} do + level = Application.get_env(:quack, :level) + meta = Application.get_env(:quack, :meta) + webhook_url = Application.get_env(:quack, :webhook_url) + + on_exit(fn -> + Application.put_env(:quack, :level, level) + Application.put_env(:quack, :meta, meta) + Application.put_env(:quack, :webhook_url, webhook_url) + end) + + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{ + group: ":quack", + key: ":level", + value: ":info" + }, + %{ + group: ":quack", + key: ":meta", + value: [":none"] + }, + %{ + group: ":quack", + key: ":webhook_url", + value: "https://hooks.slack.com/services/KEY" + } + ] + }) + + assert json_response_and_validate_schema(conn, 200) == %{ + "configs" => [ + %{ + "group" => ":quack", + "key" => ":level", + "value" => ":info", + "db" => [":level"] + }, + %{ + "group" => ":quack", + "key" => ":meta", + "value" => [":none"], + "db" => [":meta"] + }, + %{ + "group" => ":quack", + "key" => ":webhook_url", + "value" => "https://hooks.slack.com/services/KEY", + "db" => [":webhook_url"] + } + ], + "need_reboot" => false + } + + assert Application.get_env(:quack, :level) == :info + assert Application.get_env(:quack, :meta) == [:none] + assert Application.get_env(:quack, :webhook_url) == "https://hooks.slack.com/services/KEY" + end + + test "saving config with partial update", %{conn: conn} do + insert(:config, key: ":key1", value: :erlang.term_to_binary(key1: 1, key2: 2)) + + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{group: ":pleroma", key: ":key1", value: [%{"tuple" => [":key3", 3]}]} + ] + }) + + assert json_response_and_validate_schema(conn, 200) == %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => ":key1", + "value" => [ + %{"tuple" => [":key1", 1]}, + %{"tuple" => [":key2", 2]}, + %{"tuple" => [":key3", 3]} + ], + "db" => [":key1", ":key2", ":key3"] + } + ], + "need_reboot" => false + } + end + + test "saving config which need pleroma reboot", %{conn: conn} do + chat = Config.get(:chat) + on_exit(fn -> Config.put(:chat, chat) end) + + assert conn + |> put_req_header("content-type", "application/json") + |> post( + "/api/pleroma/admin/config", + %{ + configs: [ + %{group: ":pleroma", key: ":chat", value: [%{"tuple" => [":enabled", true]}]} + ] + } + ) + |> json_response_and_validate_schema(200) == %{ + "configs" => [ + %{ + "db" => [":enabled"], + "group" => ":pleroma", + "key" => ":chat", + "value" => [%{"tuple" => [":enabled", true]}] + } + ], + "need_reboot" => true + } + + configs = + conn + |> get("/api/pleroma/admin/config") + |> json_response_and_validate_schema(200) + + assert configs["need_reboot"] + + capture_log(fn -> + assert conn |> get("/api/pleroma/admin/restart") |> json_response(200) == + %{} + end) =~ "pleroma restarted" + + configs = + conn + |> get("/api/pleroma/admin/config") + |> json_response_and_validate_schema(200) + + assert configs["need_reboot"] == false + end + + test "update setting which need reboot, don't change reboot flag until reboot", %{conn: conn} do + chat = Config.get(:chat) + on_exit(fn -> Config.put(:chat, chat) end) + + assert conn + |> put_req_header("content-type", "application/json") + |> post( + "/api/pleroma/admin/config", + %{ + configs: [ + %{group: ":pleroma", key: ":chat", value: [%{"tuple" => [":enabled", true]}]} + ] + } + ) + |> json_response_and_validate_schema(200) == %{ + "configs" => [ + %{ + "db" => [":enabled"], + "group" => ":pleroma", + "key" => ":chat", + "value" => [%{"tuple" => [":enabled", true]}] + } + ], + "need_reboot" => true + } + + assert conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{group: ":pleroma", key: ":key1", value: [%{"tuple" => [":key3", 3]}]} + ] + }) + |> json_response_and_validate_schema(200) == %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => ":key1", + "value" => [ + %{"tuple" => [":key3", 3]} + ], + "db" => [":key3"] + } + ], + "need_reboot" => true + } + + capture_log(fn -> + assert conn |> get("/api/pleroma/admin/restart") |> json_response(200) == + %{} + end) =~ "pleroma restarted" + + configs = + conn + |> get("/api/pleroma/admin/config") + |> json_response_and_validate_schema(200) + + assert configs["need_reboot"] == false + end + + test "saving config with nested merge", %{conn: conn} do + insert(:config, key: :key1, value: [key1: 1, key2: [k1: 1, k2: 2]]) + + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{ + group: ":pleroma", + key: ":key1", + value: [ + %{"tuple" => [":key3", 3]}, + %{ + "tuple" => [ + ":key2", + [ + %{"tuple" => [":k2", 1]}, + %{"tuple" => [":k3", 3]} + ] + ] + } + ] + } + ] + }) + + assert json_response_and_validate_schema(conn, 200) == %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => ":key1", + "value" => [ + %{"tuple" => [":key1", 1]}, + %{"tuple" => [":key3", 3]}, + %{ + "tuple" => [ + ":key2", + [ + %{"tuple" => [":k1", 1]}, + %{"tuple" => [":k2", 1]}, + %{"tuple" => [":k3", 3]} + ] + ] + } + ], + "db" => [":key1", ":key3", ":key2"] + } + ], + "need_reboot" => false + } + end + + test "saving special atoms", %{conn: conn} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => ":key1", + "value" => [ + %{ + "tuple" => [ + ":ssl_options", + [%{"tuple" => [":versions", [":tlsv1", ":tlsv1.1", ":tlsv1.2"]]}] + ] + } + ] + } + ] + }) + + assert json_response_and_validate_schema(conn, 200) == %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => ":key1", + "value" => [ + %{ + "tuple" => [ + ":ssl_options", + [%{"tuple" => [":versions", [":tlsv1", ":tlsv1.1", ":tlsv1.2"]]}] + ] + } + ], + "db" => [":ssl_options"] + } + ], + "need_reboot" => false + } + + assert Application.get_env(:pleroma, :key1) == [ + ssl_options: [versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"]] + ] + end + + test "saving full setting if value is in full_key_update list", %{conn: conn} do + backends = Application.get_env(:logger, :backends) + on_exit(fn -> Application.put_env(:logger, :backends, backends) end) + + insert(:config, + group: :logger, + key: :backends, + value: [] + ) + + Pleroma.Config.TransferTask.load_and_update_env([], false) + + assert Application.get_env(:logger, :backends) == [] + + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{ + group: ":logger", + key: ":backends", + value: [":console"] + } + ] + }) + + assert json_response_and_validate_schema(conn, 200) == %{ + "configs" => [ + %{ + "group" => ":logger", + "key" => ":backends", + "value" => [ + ":console" + ], + "db" => [":backends"] + } + ], + "need_reboot" => false + } + + assert Application.get_env(:logger, :backends) == [ + :console + ] + end + + test "saving full setting if value is not keyword", %{conn: conn} do + insert(:config, + group: :tesla, + key: :adapter, + value: Tesla.Adapter.Hackey + ) + + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{group: ":tesla", key: ":adapter", value: "Tesla.Adapter.Httpc"} + ] + }) + + assert json_response_and_validate_schema(conn, 200) == %{ + "configs" => [ + %{ + "group" => ":tesla", + "key" => ":adapter", + "value" => "Tesla.Adapter.Httpc", + "db" => [":adapter"] + } + ], + "need_reboot" => false + } + end + + test "update config setting & delete with fallback to default value", %{ + conn: conn, + admin: admin, + token: token + } do + ueberauth = Application.get_env(:ueberauth, Ueberauth) + insert(:config, key: :keyaa1) + insert(:config, key: :keyaa2) + + config3 = + insert(:config, + group: :ueberauth, + key: Ueberauth + ) + + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{group: ":pleroma", key: ":keyaa1", value: "another_value"}, + %{group: ":pleroma", key: ":keyaa2", value: "another_value"} + ] + }) + + assert json_response_and_validate_schema(conn, 200) == %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => ":keyaa1", + "value" => "another_value", + "db" => [":keyaa1"] + }, + %{ + "group" => ":pleroma", + "key" => ":keyaa2", + "value" => "another_value", + "db" => [":keyaa2"] + } + ], + "need_reboot" => false + } + + assert Application.get_env(:pleroma, :keyaa1) == "another_value" + assert Application.get_env(:pleroma, :keyaa2) == "another_value" + assert Application.get_env(:ueberauth, Ueberauth) == config3.value + + conn = + build_conn() + |> assign(:user, admin) + |> assign(:token, token) + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{group: ":pleroma", key: ":keyaa2", delete: true}, + %{ + group: ":ueberauth", + key: "Ueberauth", + delete: true + } + ] + }) + + assert json_response_and_validate_schema(conn, 200) == %{ + "configs" => [], + "need_reboot" => false + } + + assert Application.get_env(:ueberauth, Ueberauth) == ueberauth + refute Keyword.has_key?(Application.get_all_env(:pleroma), :keyaa2) + end + + test "common config example", %{conn: conn} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{ + "group" => ":pleroma", + "key" => "Pleroma.Captcha.NotReal", + "value" => [ + %{"tuple" => [":enabled", false]}, + %{"tuple" => [":method", "Pleroma.Captcha.Kocaptcha"]}, + %{"tuple" => [":seconds_valid", 60]}, + %{"tuple" => [":path", ""]}, + %{"tuple" => [":key1", nil]}, + %{"tuple" => [":partial_chain", "&:hackney_connect.partial_chain/1"]}, + %{"tuple" => [":regex1", "~r/https:\/\/example.com/"]}, + %{"tuple" => [":regex2", "~r/https:\/\/example.com/u"]}, + %{"tuple" => [":regex3", "~r/https:\/\/example.com/i"]}, + %{"tuple" => [":regex4", "~r/https:\/\/example.com/s"]}, + %{"tuple" => [":name", "Pleroma"]} + ] + } + ] + }) + + assert Config.get([Pleroma.Captcha.NotReal, :name]) == "Pleroma" + + assert json_response_and_validate_schema(conn, 200) == %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => "Pleroma.Captcha.NotReal", + "value" => [ + %{"tuple" => [":enabled", false]}, + %{"tuple" => [":method", "Pleroma.Captcha.Kocaptcha"]}, + %{"tuple" => [":seconds_valid", 60]}, + %{"tuple" => [":path", ""]}, + %{"tuple" => [":key1", nil]}, + %{"tuple" => [":partial_chain", "&:hackney_connect.partial_chain/1"]}, + %{"tuple" => [":regex1", "~r/https:\\/\\/example.com/"]}, + %{"tuple" => [":regex2", "~r/https:\\/\\/example.com/u"]}, + %{"tuple" => [":regex3", "~r/https:\\/\\/example.com/i"]}, + %{"tuple" => [":regex4", "~r/https:\\/\\/example.com/s"]}, + %{"tuple" => [":name", "Pleroma"]} + ], + "db" => [ + ":enabled", + ":method", + ":seconds_valid", + ":path", + ":key1", + ":partial_chain", + ":regex1", + ":regex2", + ":regex3", + ":regex4", + ":name" + ] + } + ], + "need_reboot" => false + } + end + + test "tuples with more than two values", %{conn: conn} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{ + "group" => ":pleroma", + "key" => "Pleroma.Web.Endpoint.NotReal", + "value" => [ + %{ + "tuple" => [ + ":http", + [ + %{ + "tuple" => [ + ":key2", + [ + %{ + "tuple" => [ + ":_", + [ + %{ + "tuple" => [ + "/api/v1/streaming", + "Pleroma.Web.MastodonAPI.WebsocketHandler", + [] + ] + }, + %{ + "tuple" => [ + "/websocket", + "Phoenix.Endpoint.CowboyWebSocket", + %{ + "tuple" => [ + "Phoenix.Transports.WebSocket", + %{ + "tuple" => [ + "Pleroma.Web.Endpoint", + "Pleroma.Web.UserSocket", + [] + ] + } + ] + } + ] + }, + %{ + "tuple" => [ + ":_", + "Phoenix.Endpoint.Cowboy2Handler", + %{"tuple" => ["Pleroma.Web.Endpoint", []]} + ] + } + ] + ] + } + ] + ] + } + ] + ] + } + ] + } + ] + }) + + assert json_response_and_validate_schema(conn, 200) == %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => "Pleroma.Web.Endpoint.NotReal", + "value" => [ + %{ + "tuple" => [ + ":http", + [ + %{ + "tuple" => [ + ":key2", + [ + %{ + "tuple" => [ + ":_", + [ + %{ + "tuple" => [ + "/api/v1/streaming", + "Pleroma.Web.MastodonAPI.WebsocketHandler", + [] + ] + }, + %{ + "tuple" => [ + "/websocket", + "Phoenix.Endpoint.CowboyWebSocket", + %{ + "tuple" => [ + "Phoenix.Transports.WebSocket", + %{ + "tuple" => [ + "Pleroma.Web.Endpoint", + "Pleroma.Web.UserSocket", + [] + ] + } + ] + } + ] + }, + %{ + "tuple" => [ + ":_", + "Phoenix.Endpoint.Cowboy2Handler", + %{"tuple" => ["Pleroma.Web.Endpoint", []]} + ] + } + ] + ] + } + ] + ] + } + ] + ] + } + ], + "db" => [":http"] + } + ], + "need_reboot" => false + } + end + + test "settings with nesting map", %{conn: conn} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{ + "group" => ":pleroma", + "key" => ":key1", + "value" => [ + %{"tuple" => [":key2", "some_val"]}, + %{ + "tuple" => [ + ":key3", + %{ + ":max_options" => 20, + ":max_option_chars" => 200, + ":min_expiration" => 0, + ":max_expiration" => 31_536_000, + "nested" => %{ + ":max_options" => 20, + ":max_option_chars" => 200, + ":min_expiration" => 0, + ":max_expiration" => 31_536_000 + } + } + ] + } + ] + } + ] + }) + + assert json_response_and_validate_schema(conn, 200) == + %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => ":key1", + "value" => [ + %{"tuple" => [":key2", "some_val"]}, + %{ + "tuple" => [ + ":key3", + %{ + ":max_expiration" => 31_536_000, + ":max_option_chars" => 200, + ":max_options" => 20, + ":min_expiration" => 0, + "nested" => %{ + ":max_expiration" => 31_536_000, + ":max_option_chars" => 200, + ":max_options" => 20, + ":min_expiration" => 0 + } + } + ] + } + ], + "db" => [":key2", ":key3"] + } + ], + "need_reboot" => false + } + end + + test "value as map", %{conn: conn} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{ + "group" => ":pleroma", + "key" => ":key1", + "value" => %{"key" => "some_val"} + } + ] + }) + + assert json_response_and_validate_schema(conn, 200) == + %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => ":key1", + "value" => %{"key" => "some_val"}, + "db" => [":key1"] + } + ], + "need_reboot" => false + } + end + + test "queues key as atom", %{conn: conn} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{ + "group" => ":oban", + "key" => ":queues", + "value" => [ + %{"tuple" => [":federator_incoming", 50]}, + %{"tuple" => [":federator_outgoing", 50]}, + %{"tuple" => [":web_push", 50]}, + %{"tuple" => [":mailer", 10]}, + %{"tuple" => [":transmogrifier", 20]}, + %{"tuple" => [":scheduled_activities", 10]}, + %{"tuple" => [":background", 5]} + ] + } + ] + }) + + assert json_response_and_validate_schema(conn, 200) == %{ + "configs" => [ + %{ + "group" => ":oban", + "key" => ":queues", + "value" => [ + %{"tuple" => [":federator_incoming", 50]}, + %{"tuple" => [":federator_outgoing", 50]}, + %{"tuple" => [":web_push", 50]}, + %{"tuple" => [":mailer", 10]}, + %{"tuple" => [":transmogrifier", 20]}, + %{"tuple" => [":scheduled_activities", 10]}, + %{"tuple" => [":background", 5]} + ], + "db" => [ + ":federator_incoming", + ":federator_outgoing", + ":web_push", + ":mailer", + ":transmogrifier", + ":scheduled_activities", + ":background" + ] + } + ], + "need_reboot" => false + } + end + + test "delete part of settings by atom subkeys", %{conn: conn} do + insert(:config, + key: :keyaa1, + value: [subkey1: "val1", subkey2: "val2", subkey3: "val3"] + ) + + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{ + group: ":pleroma", + key: ":keyaa1", + subkeys: [":subkey1", ":subkey3"], + delete: true + } + ] + }) + + assert json_response_and_validate_schema(conn, 200) == %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => ":keyaa1", + "value" => [%{"tuple" => [":subkey2", "val2"]}], + "db" => [":subkey2"] + } + ], + "need_reboot" => false + } + end + + test "proxy tuple localhost", %{conn: conn} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{ + group: ":pleroma", + key: ":http", + value: [ + %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "localhost", 1234]}]} + ] + } + ] + }) + + assert %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => ":http", + "value" => value, + "db" => db + } + ] + } = json_response_and_validate_schema(conn, 200) + + assert %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "localhost", 1234]}]} in value + assert ":proxy_url" in db + end + + test "proxy tuple domain", %{conn: conn} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{ + group: ":pleroma", + key: ":http", + value: [ + %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "domain.com", 1234]}]} + ] + } + ] + }) + + assert %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => ":http", + "value" => value, + "db" => db + } + ] + } = json_response_and_validate_schema(conn, 200) + + assert %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "domain.com", 1234]}]} in value + assert ":proxy_url" in db + end + + test "proxy tuple ip", %{conn: conn} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{ + group: ":pleroma", + key: ":http", + value: [ + %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "127.0.0.1", 1234]}]} + ] + } + ] + }) + + assert %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => ":http", + "value" => value, + "db" => db + } + ] + } = json_response_and_validate_schema(conn, 200) + + assert %{"tuple" => [":proxy_url", %{"tuple" => [":socks5", "127.0.0.1", 1234]}]} in value + assert ":proxy_url" in db + end + + @tag capture_log: true + test "doesn't set keys not in the whitelist", %{conn: conn} do + clear_config(:database_config_whitelist, [ + {:pleroma, :key1}, + {:pleroma, :key2}, + {:pleroma, Pleroma.Captcha.NotReal}, + {:not_real} + ]) + + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{group: ":pleroma", key: ":key1", value: "value1"}, + %{group: ":pleroma", key: ":key2", value: "value2"}, + %{group: ":pleroma", key: ":key3", value: "value3"}, + %{group: ":pleroma", key: "Pleroma.Web.Endpoint.NotReal", value: "value4"}, + %{group: ":pleroma", key: "Pleroma.Captcha.NotReal", value: "value5"}, + %{group: ":not_real", key: ":anything", value: "value6"} + ] + }) + + assert Application.get_env(:pleroma, :key1) == "value1" + assert Application.get_env(:pleroma, :key2) == "value2" + assert Application.get_env(:pleroma, :key3) == nil + assert Application.get_env(:pleroma, Pleroma.Web.Endpoint.NotReal) == nil + assert Application.get_env(:pleroma, Pleroma.Captcha.NotReal) == "value5" + assert Application.get_env(:not_real, :anything) == "value6" + end + + test "args for Pleroma.Upload.Filter.Mogrify with custom tuples", %{conn: conn} do + clear_config(Pleroma.Upload.Filter.Mogrify) + + assert conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{ + group: ":pleroma", + key: "Pleroma.Upload.Filter.Mogrify", + value: [ + %{"tuple" => [":args", ["auto-orient", "strip"]]} + ] + } + ] + }) + |> json_response_and_validate_schema(200) == %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => "Pleroma.Upload.Filter.Mogrify", + "value" => [ + %{"tuple" => [":args", ["auto-orient", "strip"]]} + ], + "db" => [":args"] + } + ], + "need_reboot" => false + } + + assert Config.get(Pleroma.Upload.Filter.Mogrify) == [args: ["auto-orient", "strip"]] + + assert conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/config", %{ + configs: [ + %{ + group: ":pleroma", + key: "Pleroma.Upload.Filter.Mogrify", + value: [ + %{ + "tuple" => [ + ":args", + [ + "auto-orient", + "strip", + "{\"implode\", \"1\"}", + "{\"resize\", \"3840x1080>\"}" + ] + ] + } + ] + } + ] + }) + |> json_response(200) == %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => "Pleroma.Upload.Filter.Mogrify", + "value" => [ + %{ + "tuple" => [ + ":args", + [ + "auto-orient", + "strip", + "{\"implode\", \"1\"}", + "{\"resize\", \"3840x1080>\"}" + ] + ] + } + ], + "db" => [":args"] + } + ], + "need_reboot" => false + } + + assert Config.get(Pleroma.Upload.Filter.Mogrify) == [ + args: ["auto-orient", "strip", {"implode", "1"}, {"resize", "3840x1080>"}] + ] + end + end + + describe "GET /api/pleroma/admin/config/descriptions" do + test "structure", %{conn: conn} do + admin = insert(:user, is_admin: true) + + conn = + assign(conn, :user, admin) + |> get("/api/pleroma/admin/config/descriptions") + + assert [child | _others] = json_response_and_validate_schema(conn, 200) + + assert child["children"] + assert child["key"] + assert String.starts_with?(child["group"], ":") + assert child["description"] + end + + test "filters by database configuration whitelist", %{conn: conn} do + clear_config(:database_config_whitelist, [ + {:pleroma, :instance}, + {:pleroma, :activitypub}, + {:pleroma, Pleroma.Upload}, + {:esshd} + ]) + + admin = insert(:user, is_admin: true) + + conn = + assign(conn, :user, admin) + |> get("/api/pleroma/admin/config/descriptions") + + children = json_response_and_validate_schema(conn, 200) + + assert length(children) == 4 + + assert Enum.count(children, fn c -> c["group"] == ":pleroma" end) == 3 + + instance = Enum.find(children, fn c -> c["key"] == ":instance" end) + assert instance["children"] + + activitypub = Enum.find(children, fn c -> c["key"] == ":activitypub" end) + assert activitypub["children"] + + web_endpoint = Enum.find(children, fn c -> c["key"] == "Pleroma.Upload" end) + assert web_endpoint["children"] + + esshd = Enum.find(children, fn c -> c["group"] == ":esshd" end) + assert esshd["children"] + end + end +end diff --git a/test/web/admin_api/controllers/invite_controller_test.exs b/test/web/admin_api/controllers/invite_controller_test.exs new file mode 100644 index 000000000..ab186c5e7 --- /dev/null +++ b/test/web/admin_api/controllers/invite_controller_test.exs @@ -0,0 +1,281 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.InviteControllerTest do + use Pleroma.Web.ConnCase, async: true + + import Pleroma.Factory + + alias Pleroma.Config + alias Pleroma.Repo + alias Pleroma.UserInviteToken + + setup do + admin = insert(:user, is_admin: true) + token = insert(:oauth_admin_token, user: admin) + + conn = + build_conn() + |> assign(:user, admin) + |> assign(:token, token) + + {:ok, %{admin: admin, token: token, conn: conn}} + end + + describe "POST /api/pleroma/admin/users/email_invite, with valid config" do + setup do: clear_config([:instance, :registrations_open], false) + setup do: clear_config([:instance, :invites_enabled], true) + + test "sends invitation and returns 204", %{admin: admin, conn: conn} do + recipient_email = "foo@bar.com" + recipient_name = "J. D." + + conn = + conn + |> put_req_header("content-type", "application/json;charset=utf-8") + |> post("/api/pleroma/admin/users/email_invite", %{ + email: recipient_email, + name: recipient_name + }) + + assert json_response_and_validate_schema(conn, :no_content) + + token_record = List.last(Repo.all(Pleroma.UserInviteToken)) + assert token_record + refute token_record.used + + notify_email = Config.get([:instance, :notify_email]) + instance_name = Config.get([:instance, :name]) + + email = + Pleroma.Emails.UserEmail.user_invitation_email( + admin, + token_record, + recipient_email, + recipient_name + ) + + Swoosh.TestAssertions.assert_email_sent( + from: {instance_name, notify_email}, + to: {recipient_name, recipient_email}, + html_body: email.html_body + ) + end + + test "it returns 403 if requested by a non-admin" do + non_admin_user = insert(:user) + token = insert(:oauth_token, user: non_admin_user) + + conn = + build_conn() + |> assign(:user, non_admin_user) + |> assign(:token, token) + |> put_req_header("content-type", "application/json;charset=utf-8") + |> post("/api/pleroma/admin/users/email_invite", %{ + email: "foo@bar.com", + name: "JD" + }) + + assert json_response(conn, :forbidden) + end + + test "email with +", %{conn: conn, admin: admin} do + recipient_email = "foo+bar@baz.com" + + conn + |> put_req_header("content-type", "application/json;charset=utf-8") + |> post("/api/pleroma/admin/users/email_invite", %{email: recipient_email}) + |> json_response_and_validate_schema(:no_content) + + token_record = + Pleroma.UserInviteToken + |> Repo.all() + |> List.last() + + assert token_record + refute token_record.used + + notify_email = Config.get([:instance, :notify_email]) + instance_name = Config.get([:instance, :name]) + + email = + Pleroma.Emails.UserEmail.user_invitation_email( + admin, + token_record, + recipient_email + ) + + Swoosh.TestAssertions.assert_email_sent( + from: {instance_name, notify_email}, + to: recipient_email, + html_body: email.html_body + ) + end + end + + describe "POST /api/pleroma/admin/users/email_invite, with invalid config" do + setup do: clear_config([:instance, :registrations_open]) + setup do: clear_config([:instance, :invites_enabled]) + + test "it returns 500 if `invites_enabled` is not enabled", %{conn: conn} do + Config.put([:instance, :registrations_open], false) + Config.put([:instance, :invites_enabled], false) + + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/users/email_invite", %{ + email: "foo@bar.com", + name: "JD" + }) + + assert json_response_and_validate_schema(conn, :bad_request) == + %{ + "error" => + "To send invites you need to set the `invites_enabled` option to true." + } + end + + test "it returns 500 if `registrations_open` is enabled", %{conn: conn} do + Config.put([:instance, :registrations_open], true) + Config.put([:instance, :invites_enabled], true) + + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/users/email_invite", %{ + email: "foo@bar.com", + name: "JD" + }) + + assert json_response_and_validate_schema(conn, :bad_request) == + %{ + "error" => + "To send invites you need to set the `registrations_open` option to false." + } + end + end + + describe "POST /api/pleroma/admin/users/invite_token" do + test "without options", %{conn: conn} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/users/invite_token") + + invite_json = json_response_and_validate_schema(conn, 200) + invite = UserInviteToken.find_by_token!(invite_json["token"]) + refute invite.used + refute invite.expires_at + refute invite.max_use + assert invite.invite_type == "one_time" + end + + test "with expires_at", %{conn: conn} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/users/invite_token", %{ + "expires_at" => Date.to_string(Date.utc_today()) + }) + + invite_json = json_response_and_validate_schema(conn, 200) + invite = UserInviteToken.find_by_token!(invite_json["token"]) + + refute invite.used + assert invite.expires_at == Date.utc_today() + refute invite.max_use + assert invite.invite_type == "date_limited" + end + + test "with max_use", %{conn: conn} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/users/invite_token", %{"max_use" => 150}) + + invite_json = json_response_and_validate_schema(conn, 200) + invite = UserInviteToken.find_by_token!(invite_json["token"]) + refute invite.used + refute invite.expires_at + assert invite.max_use == 150 + assert invite.invite_type == "reusable" + end + + test "with max use and expires_at", %{conn: conn} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/users/invite_token", %{ + "max_use" => 150, + "expires_at" => Date.to_string(Date.utc_today()) + }) + + invite_json = json_response_and_validate_schema(conn, 200) + invite = UserInviteToken.find_by_token!(invite_json["token"]) + refute invite.used + assert invite.expires_at == Date.utc_today() + assert invite.max_use == 150 + assert invite.invite_type == "reusable_date_limited" + end + end + + describe "GET /api/pleroma/admin/users/invites" do + test "no invites", %{conn: conn} do + conn = get(conn, "/api/pleroma/admin/users/invites") + + assert json_response_and_validate_schema(conn, 200) == %{"invites" => []} + end + + test "with invite", %{conn: conn} do + {:ok, invite} = UserInviteToken.create_invite() + + conn = get(conn, "/api/pleroma/admin/users/invites") + + assert json_response_and_validate_schema(conn, 200) == %{ + "invites" => [ + %{ + "expires_at" => nil, + "id" => invite.id, + "invite_type" => "one_time", + "max_use" => nil, + "token" => invite.token, + "used" => false, + "uses" => 0 + } + ] + } + end + end + + describe "POST /api/pleroma/admin/users/revoke_invite" do + test "with token", %{conn: conn} do + {:ok, invite} = UserInviteToken.create_invite() + + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/users/revoke_invite", %{"token" => invite.token}) + + assert json_response_and_validate_schema(conn, 200) == %{ + "expires_at" => nil, + "id" => invite.id, + "invite_type" => "one_time", + "max_use" => nil, + "token" => invite.token, + "used" => true, + "uses" => 0 + } + end + + test "with invalid token", %{conn: conn} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/users/revoke_invite", %{"token" => "foo"}) + + assert json_response_and_validate_schema(conn, :not_found) == %{"error" => "Not found"} + end + end +end diff --git a/test/web/admin_api/controllers/media_proxy_cache_controller_test.exs b/test/web/admin_api/controllers/media_proxy_cache_controller_test.exs new file mode 100644 index 000000000..5ab6cb78a --- /dev/null +++ b/test/web/admin_api/controllers/media_proxy_cache_controller_test.exs @@ -0,0 +1,145 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.MediaProxyCacheControllerTest do + use Pleroma.Web.ConnCase + + import Pleroma.Factory + import Mock + + alias Pleroma.Web.MediaProxy + + setup do: clear_config([:media_proxy]) + + setup do + on_exit(fn -> Cachex.clear(:banned_urls_cache) end) + end + + setup do + admin = insert(:user, is_admin: true) + token = insert(:oauth_admin_token, user: admin) + + conn = + build_conn() + |> assign(:user, admin) + |> assign(:token, token) + + Config.put([:media_proxy, :enabled], true) + Config.put([:media_proxy, :invalidation, :enabled], true) + Config.put([:media_proxy, :invalidation, :provider], MediaProxy.Invalidation.Script) + + {:ok, %{admin: admin, token: token, conn: conn}} + end + + describe "GET /api/pleroma/admin/media_proxy_caches" do + test "shows banned MediaProxy URLs", %{conn: conn} do + MediaProxy.put_in_banned_urls([ + "http://localhost:4001/media/a688346.jpg", + "http://localhost:4001/media/fb1f4d.jpg" + ]) + + MediaProxy.put_in_banned_urls("http://localhost:4001/media/gb1f44.jpg") + MediaProxy.put_in_banned_urls("http://localhost:4001/media/tb13f47.jpg") + MediaProxy.put_in_banned_urls("http://localhost:4001/media/wb1f46.jpg") + + response = + conn + |> get("/api/pleroma/admin/media_proxy_caches?page_size=2") + |> json_response_and_validate_schema(200) + + assert response["urls"] == [ + "http://localhost:4001/media/fb1f4d.jpg", + "http://localhost:4001/media/a688346.jpg" + ] + + response = + conn + |> get("/api/pleroma/admin/media_proxy_caches?page_size=2&page=2") + |> json_response_and_validate_schema(200) + + assert response["urls"] == [ + "http://localhost:4001/media/gb1f44.jpg", + "http://localhost:4001/media/tb13f47.jpg" + ] + + response = + conn + |> get("/api/pleroma/admin/media_proxy_caches?page_size=2&page=3") + |> json_response_and_validate_schema(200) + + assert response["urls"] == ["http://localhost:4001/media/wb1f46.jpg"] + end + end + + describe "POST /api/pleroma/admin/media_proxy_caches/delete" do + test "deleted MediaProxy URLs from banned", %{conn: conn} do + MediaProxy.put_in_banned_urls([ + "http://localhost:4001/media/a688346.jpg", + "http://localhost:4001/media/fb1f4d.jpg" + ]) + + response = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/media_proxy_caches/delete", %{ + urls: ["http://localhost:4001/media/a688346.jpg"] + }) + |> json_response_and_validate_schema(200) + + assert response["urls"] == ["http://localhost:4001/media/a688346.jpg"] + refute MediaProxy.in_banned_urls("http://localhost:4001/media/a688346.jpg") + assert MediaProxy.in_banned_urls("http://localhost:4001/media/fb1f4d.jpg") + end + end + + describe "POST /api/pleroma/admin/media_proxy_caches/purge" do + test "perform invalidates cache of MediaProxy", %{conn: conn} do + urls = [ + "http://example.com/media/a688346.jpg", + "http://example.com/media/fb1f4d.jpg" + ] + + with_mocks [ + {MediaProxy.Invalidation.Script, [], + [ + purge: fn _, _ -> {"ok", 0} end + ]} + ] do + response = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/media_proxy_caches/purge", %{urls: urls, ban: false}) + |> json_response_and_validate_schema(200) + + assert response["urls"] == urls + + refute MediaProxy.in_banned_urls("http://example.com/media/a688346.jpg") + refute MediaProxy.in_banned_urls("http://example.com/media/fb1f4d.jpg") + end + end + + test "perform invalidates cache of MediaProxy and adds url to banned", %{conn: conn} do + urls = [ + "http://example.com/media/a688346.jpg", + "http://example.com/media/fb1f4d.jpg" + ] + + with_mocks [{MediaProxy.Invalidation.Script, [], [purge: fn _, _ -> {"ok", 0} end]}] do + response = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/media_proxy_caches/purge", %{ + urls: urls, + ban: true + }) + |> json_response_and_validate_schema(200) + + assert response["urls"] == urls + + assert MediaProxy.in_banned_urls("http://example.com/media/a688346.jpg") + assert MediaProxy.in_banned_urls("http://example.com/media/fb1f4d.jpg") + end + end + end +end diff --git a/test/web/admin_api/controllers/oauth_app_controller_test.exs b/test/web/admin_api/controllers/oauth_app_controller_test.exs new file mode 100644 index 000000000..ed7c4172c --- /dev/null +++ b/test/web/admin_api/controllers/oauth_app_controller_test.exs @@ -0,0 +1,220 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.OAuthAppControllerTest do + use Pleroma.Web.ConnCase, async: true + use Oban.Testing, repo: Pleroma.Repo + + import Pleroma.Factory + + alias Pleroma.Config + alias Pleroma.Web + + setup do + admin = insert(:user, is_admin: true) + token = insert(:oauth_admin_token, user: admin) + + conn = + build_conn() + |> assign(:user, admin) + |> assign(:token, token) + + {:ok, %{admin: admin, token: token, conn: conn}} + end + + describe "POST /api/pleroma/admin/oauth_app" do + test "errors", %{conn: conn} do + response = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/oauth_app", %{}) + |> json_response_and_validate_schema(400) + + assert %{ + "error" => "Missing field: name. Missing field: redirect_uris." + } = response + end + + test "success", %{conn: conn} do + base_url = Web.base_url() + app_name = "Trusted app" + + response = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/oauth_app", %{ + name: app_name, + redirect_uris: base_url + }) + |> json_response_and_validate_schema(200) + + assert %{ + "client_id" => _, + "client_secret" => _, + "name" => ^app_name, + "redirect_uri" => ^base_url, + "trusted" => false + } = response + end + + test "with trusted", %{conn: conn} do + base_url = Web.base_url() + app_name = "Trusted app" + + response = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/oauth_app", %{ + name: app_name, + redirect_uris: base_url, + trusted: true + }) + |> json_response_and_validate_schema(200) + + assert %{ + "client_id" => _, + "client_secret" => _, + "name" => ^app_name, + "redirect_uri" => ^base_url, + "trusted" => true + } = response + end + end + + describe "GET /api/pleroma/admin/oauth_app" do + setup do + app = insert(:oauth_app) + {:ok, app: app} + end + + test "list", %{conn: conn} do + response = + conn + |> get("/api/pleroma/admin/oauth_app") + |> json_response_and_validate_schema(200) + + assert %{"apps" => apps, "count" => count, "page_size" => _} = response + + assert length(apps) == count + end + + test "with page size", %{conn: conn} do + insert(:oauth_app) + page_size = 1 + + response = + conn + |> get("/api/pleroma/admin/oauth_app?page_size=#{page_size}") + |> json_response_and_validate_schema(200) + + assert %{"apps" => apps, "count" => _, "page_size" => ^page_size} = response + + assert length(apps) == page_size + end + + test "search by client name", %{conn: conn, app: app} do + response = + conn + |> get("/api/pleroma/admin/oauth_app?name=#{app.client_name}") + |> json_response_and_validate_schema(200) + + assert %{"apps" => [returned], "count" => _, "page_size" => _} = response + + assert returned["client_id"] == app.client_id + assert returned["name"] == app.client_name + end + + test "search by client id", %{conn: conn, app: app} do + response = + conn + |> get("/api/pleroma/admin/oauth_app?client_id=#{app.client_id}") + |> json_response_and_validate_schema(200) + + assert %{"apps" => [returned], "count" => _, "page_size" => _} = response + + assert returned["client_id"] == app.client_id + assert returned["name"] == app.client_name + end + + test "only trusted", %{conn: conn} do + app = insert(:oauth_app, trusted: true) + + response = + conn + |> get("/api/pleroma/admin/oauth_app?trusted=true") + |> json_response_and_validate_schema(200) + + assert %{"apps" => [returned], "count" => _, "page_size" => _} = response + + assert returned["client_id"] == app.client_id + assert returned["name"] == app.client_name + end + end + + describe "DELETE /api/pleroma/admin/oauth_app/:id" do + test "with id", %{conn: conn} do + app = insert(:oauth_app) + + response = + conn + |> delete("/api/pleroma/admin/oauth_app/" <> to_string(app.id)) + |> json_response_and_validate_schema(:no_content) + + assert response == "" + end + + test "with non existance id", %{conn: conn} do + response = + conn + |> delete("/api/pleroma/admin/oauth_app/0") + |> json_response_and_validate_schema(:bad_request) + + assert response == "" + end + end + + describe "PATCH /api/pleroma/admin/oauth_app/:id" do + test "with id", %{conn: conn} do + app = insert(:oauth_app) + + name = "another name" + url = "https://example.com" + scopes = ["admin"] + id = app.id + website = "http://website.com" + + response = + conn + |> put_req_header("content-type", "application/json") + |> patch("/api/pleroma/admin/oauth_app/#{id}", %{ + name: name, + trusted: true, + redirect_uris: url, + scopes: scopes, + website: website + }) + |> json_response_and_validate_schema(200) + + assert %{ + "client_id" => _, + "client_secret" => _, + "id" => ^id, + "name" => ^name, + "redirect_uri" => ^url, + "trusted" => true, + "website" => ^website + } = response + end + + test "without id", %{conn: conn} do + response = + conn + |> put_req_header("content-type", "application/json") + |> patch("/api/pleroma/admin/oauth_app/0") + |> json_response_and_validate_schema(:bad_request) + + assert response == "" + end + end +end diff --git a/test/web/admin_api/controllers/relay_controller_test.exs b/test/web/admin_api/controllers/relay_controller_test.exs new file mode 100644 index 000000000..64086adc5 --- /dev/null +++ b/test/web/admin_api/controllers/relay_controller_test.exs @@ -0,0 +1,92 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.RelayControllerTest do + use Pleroma.Web.ConnCase + + import Pleroma.Factory + + alias Pleroma.Config + alias Pleroma.ModerationLog + alias Pleroma.Repo + alias Pleroma.User + + setup_all do + Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) + + :ok + end + + setup do + admin = insert(:user, is_admin: true) + token = insert(:oauth_admin_token, user: admin) + + conn = + build_conn() + |> assign(:user, admin) + |> assign(:token, token) + + {:ok, %{admin: admin, token: token, conn: conn}} + end + + describe "relays" do + test "POST /relay", %{conn: conn, admin: admin} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/relay", %{ + relay_url: "http://mastodon.example.org/users/admin" + }) + + assert json_response_and_validate_schema(conn, 200) == + "http://mastodon.example.org/users/admin" + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} followed relay: http://mastodon.example.org/users/admin" + end + + test "GET /relay", %{conn: conn} do + relay_user = Pleroma.Web.ActivityPub.Relay.get_actor() + + ["http://mastodon.example.org/users/admin", "https://mstdn.io/users/mayuutann"] + |> Enum.each(fn ap_id -> + {:ok, user} = User.get_or_fetch_by_ap_id(ap_id) + User.follow(relay_user, user) + end) + + conn = get(conn, "/api/pleroma/admin/relay") + + assert json_response_and_validate_schema(conn, 200)["relays"] -- + ["mastodon.example.org", "mstdn.io"] == [] + end + + test "DELETE /relay", %{conn: conn, admin: admin} do + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/relay", %{ + relay_url: "http://mastodon.example.org/users/admin" + }) + + conn = + conn + |> put_req_header("content-type", "application/json") + |> delete("/api/pleroma/admin/relay", %{ + relay_url: "http://mastodon.example.org/users/admin" + }) + + assert json_response_and_validate_schema(conn, 200) == + "http://mastodon.example.org/users/admin" + + [log_entry_one, log_entry_two] = Repo.all(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry_one) == + "@#{admin.nickname} followed relay: http://mastodon.example.org/users/admin" + + assert ModerationLog.get_log_entry_message(log_entry_two) == + "@#{admin.nickname} unfollowed relay: http://mastodon.example.org/users/admin" + end + end +end diff --git a/test/web/admin_api/controllers/report_controller_test.exs b/test/web/admin_api/controllers/report_controller_test.exs new file mode 100644 index 000000000..940bce340 --- /dev/null +++ b/test/web/admin_api/controllers/report_controller_test.exs @@ -0,0 +1,374 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.ReportControllerTest do + use Pleroma.Web.ConnCase + + import Pleroma.Factory + + alias Pleroma.Activity + alias Pleroma.Config + alias Pleroma.ModerationLog + alias Pleroma.Repo + alias Pleroma.ReportNote + alias Pleroma.Web.CommonAPI + + setup do + admin = insert(:user, is_admin: true) + token = insert(:oauth_admin_token, user: admin) + + conn = + build_conn() + |> assign(:user, admin) + |> assign(:token, token) + + {:ok, %{admin: admin, token: token, conn: conn}} + end + + describe "GET /api/pleroma/admin/reports/:id" do + test "returns report by its id", %{conn: conn} do + [reporter, target_user] = insert_pair(:user) + activity = insert(:note_activity, user: target_user) + + {:ok, %{id: report_id}} = + CommonAPI.report(reporter, %{ + account_id: target_user.id, + comment: "I feel offended", + status_ids: [activity.id] + }) + + response = + conn + |> get("/api/pleroma/admin/reports/#{report_id}") + |> json_response_and_validate_schema(:ok) + + assert response["id"] == report_id + end + + test "returns 404 when report id is invalid", %{conn: conn} do + conn = get(conn, "/api/pleroma/admin/reports/test") + + assert json_response_and_validate_schema(conn, :not_found) == %{"error" => "Not found"} + end + end + + describe "PATCH /api/pleroma/admin/reports" do + setup do + [reporter, target_user] = insert_pair(:user) + activity = insert(:note_activity, user: target_user) + + {:ok, %{id: report_id}} = + CommonAPI.report(reporter, %{ + account_id: target_user.id, + comment: "I feel offended", + status_ids: [activity.id] + }) + + {:ok, %{id: second_report_id}} = + CommonAPI.report(reporter, %{ + account_id: target_user.id, + comment: "I feel very offended", + status_ids: [activity.id] + }) + + %{ + id: report_id, + second_report_id: second_report_id + } + end + + test "requires admin:write:reports scope", %{conn: conn, id: id, admin: admin} do + read_token = insert(:oauth_token, user: admin, scopes: ["admin:read"]) + write_token = insert(:oauth_token, user: admin, scopes: ["admin:write:reports"]) + + response = + conn + |> assign(:token, read_token) + |> put_req_header("content-type", "application/json") + |> patch("/api/pleroma/admin/reports", %{ + "reports" => [%{"state" => "resolved", "id" => id}] + }) + |> json_response_and_validate_schema(403) + + assert response == %{ + "error" => "Insufficient permissions: admin:write:reports." + } + + conn + |> assign(:token, write_token) + |> put_req_header("content-type", "application/json") + |> patch("/api/pleroma/admin/reports", %{ + "reports" => [%{"state" => "resolved", "id" => id}] + }) + |> json_response_and_validate_schema(:no_content) + end + + test "mark report as resolved", %{conn: conn, id: id, admin: admin} do + conn + |> put_req_header("content-type", "application/json") + |> patch("/api/pleroma/admin/reports", %{ + "reports" => [ + %{"state" => "resolved", "id" => id} + ] + }) + |> json_response_and_validate_schema(:no_content) + + activity = Activity.get_by_id(id) + assert activity.data["state"] == "resolved" + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} updated report ##{id} with 'resolved' state" + end + + test "closes report", %{conn: conn, id: id, admin: admin} do + conn + |> put_req_header("content-type", "application/json") + |> patch("/api/pleroma/admin/reports", %{ + "reports" => [ + %{"state" => "closed", "id" => id} + ] + }) + |> json_response_and_validate_schema(:no_content) + + activity = Activity.get_by_id(id) + assert activity.data["state"] == "closed" + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} updated report ##{id} with 'closed' state" + end + + test "returns 400 when state is unknown", %{conn: conn, id: id} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> patch("/api/pleroma/admin/reports", %{ + "reports" => [ + %{"state" => "test", "id" => id} + ] + }) + + assert "Unsupported state" = + hd(json_response_and_validate_schema(conn, :bad_request))["error"] + end + + test "returns 404 when report is not exist", %{conn: conn} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> patch("/api/pleroma/admin/reports", %{ + "reports" => [ + %{"state" => "closed", "id" => "test"} + ] + }) + + assert hd(json_response_and_validate_schema(conn, :bad_request))["error"] == "not_found" + end + + test "updates state of multiple reports", %{ + conn: conn, + id: id, + admin: admin, + second_report_id: second_report_id + } do + conn + |> put_req_header("content-type", "application/json") + |> patch("/api/pleroma/admin/reports", %{ + "reports" => [ + %{"state" => "resolved", "id" => id}, + %{"state" => "closed", "id" => second_report_id} + ] + }) + |> json_response_and_validate_schema(:no_content) + + activity = Activity.get_by_id(id) + second_activity = Activity.get_by_id(second_report_id) + assert activity.data["state"] == "resolved" + assert second_activity.data["state"] == "closed" + + [first_log_entry, second_log_entry] = Repo.all(ModerationLog) + + assert ModerationLog.get_log_entry_message(first_log_entry) == + "@#{admin.nickname} updated report ##{id} with 'resolved' state" + + assert ModerationLog.get_log_entry_message(second_log_entry) == + "@#{admin.nickname} updated report ##{second_report_id} with 'closed' state" + end + end + + describe "GET /api/pleroma/admin/reports" do + test "returns empty response when no reports created", %{conn: conn} do + response = + conn + |> get("/api/pleroma/admin/reports") + |> json_response_and_validate_schema(:ok) + + assert Enum.empty?(response["reports"]) + assert response["total"] == 0 + end + + test "returns reports", %{conn: conn} do + [reporter, target_user] = insert_pair(:user) + activity = insert(:note_activity, user: target_user) + + {:ok, %{id: report_id}} = + CommonAPI.report(reporter, %{ + account_id: target_user.id, + comment: "I feel offended", + status_ids: [activity.id] + }) + + response = + conn + |> get("/api/pleroma/admin/reports") + |> json_response_and_validate_schema(:ok) + + [report] = response["reports"] + + assert length(response["reports"]) == 1 + assert report["id"] == report_id + + assert response["total"] == 1 + end + + test "returns reports with specified state", %{conn: conn} do + [reporter, target_user] = insert_pair(:user) + activity = insert(:note_activity, user: target_user) + + {:ok, %{id: first_report_id}} = + CommonAPI.report(reporter, %{ + account_id: target_user.id, + comment: "I feel offended", + status_ids: [activity.id] + }) + + {:ok, %{id: second_report_id}} = + CommonAPI.report(reporter, %{ + account_id: target_user.id, + comment: "I don't like this user" + }) + + CommonAPI.update_report_state(second_report_id, "closed") + + response = + conn + |> get("/api/pleroma/admin/reports?state=open") + |> json_response_and_validate_schema(:ok) + + assert [open_report] = response["reports"] + + assert length(response["reports"]) == 1 + assert open_report["id"] == first_report_id + + assert response["total"] == 1 + + response = + conn + |> get("/api/pleroma/admin/reports?state=closed") + |> json_response_and_validate_schema(:ok) + + assert [closed_report] = response["reports"] + + assert length(response["reports"]) == 1 + assert closed_report["id"] == second_report_id + + assert response["total"] == 1 + + assert %{"total" => 0, "reports" => []} == + conn + |> get("/api/pleroma/admin/reports?state=resolved", %{ + "" => "" + }) + |> json_response_and_validate_schema(:ok) + end + + test "returns 403 when requested by a non-admin" do + user = insert(:user) + token = insert(:oauth_token, user: user) + + conn = + build_conn() + |> assign(:user, user) + |> assign(:token, token) + |> get("/api/pleroma/admin/reports") + + assert json_response(conn, :forbidden) == + %{"error" => "User is not an admin or OAuth admin scope is not granted."} + end + + test "returns 403 when requested by anonymous" do + conn = get(build_conn(), "/api/pleroma/admin/reports") + + assert json_response(conn, :forbidden) == %{ + "error" => "Invalid credentials." + } + end + end + + describe "POST /api/pleroma/admin/reports/:id/notes" do + setup %{conn: conn, admin: admin} do + [reporter, target_user] = insert_pair(:user) + activity = insert(:note_activity, user: target_user) + + {:ok, %{id: report_id}} = + CommonAPI.report(reporter, %{ + account_id: target_user.id, + comment: "I feel offended", + status_ids: [activity.id] + }) + + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/reports/#{report_id}/notes", %{ + content: "this is disgusting!" + }) + + conn + |> put_req_header("content-type", "application/json") + |> post("/api/pleroma/admin/reports/#{report_id}/notes", %{ + content: "this is disgusting2!" + }) + + %{ + admin_id: admin.id, + report_id: report_id + } + end + + test "it creates report note", %{admin_id: admin_id, report_id: report_id} do + assert [note, _] = Repo.all(ReportNote) + + assert %{ + activity_id: ^report_id, + content: "this is disgusting!", + user_id: ^admin_id + } = note + end + + test "it returns reports with notes", %{conn: conn, admin: admin} do + conn = get(conn, "/api/pleroma/admin/reports") + + response = json_response_and_validate_schema(conn, 200) + notes = hd(response["reports"])["notes"] + [note, _] = notes + + assert note["user"]["nickname"] == admin.nickname + assert note["content"] == "this is disgusting!" + assert note["created_at"] + assert response["total"] == 1 + end + + test "it deletes the note", %{conn: conn, report_id: report_id} do + assert ReportNote |> Repo.all() |> length() == 2 + assert [note, _] = Repo.all(ReportNote) + + delete(conn, "/api/pleroma/admin/reports/#{report_id}/notes/#{note.id}") + + assert ReportNote |> Repo.all() |> length() == 1 + end + end +end diff --git a/test/web/admin_api/controllers/status_controller_test.exs b/test/web/admin_api/controllers/status_controller_test.exs new file mode 100644 index 000000000..eff78fb0a --- /dev/null +++ b/test/web/admin_api/controllers/status_controller_test.exs @@ -0,0 +1,202 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.StatusControllerTest do + use Pleroma.Web.ConnCase + + import Pleroma.Factory + + alias Pleroma.Activity + alias Pleroma.Config + alias Pleroma.ModerationLog + alias Pleroma.Repo + alias Pleroma.User + alias Pleroma.Web.CommonAPI + + setup do + admin = insert(:user, is_admin: true) + token = insert(:oauth_admin_token, user: admin) + + conn = + build_conn() + |> assign(:user, admin) + |> assign(:token, token) + + {:ok, %{admin: admin, token: token, conn: conn}} + end + + describe "GET /api/pleroma/admin/statuses/:id" do + test "not found", %{conn: conn} do + assert conn + |> get("/api/pleroma/admin/statuses/not_found") + |> json_response_and_validate_schema(:not_found) + end + + test "shows activity", %{conn: conn} do + activity = insert(:note_activity) + + response = + conn + |> get("/api/pleroma/admin/statuses/#{activity.id}") + |> json_response_and_validate_schema(200) + + assert response["id"] == activity.id + + account = response["account"] + actor = User.get_by_ap_id(activity.actor) + + assert account["id"] == actor.id + assert account["nickname"] == actor.nickname + assert account["deactivated"] == actor.deactivated + assert account["confirmation_pending"] == actor.confirmation_pending + end + end + + describe "PUT /api/pleroma/admin/statuses/:id" do + setup do + activity = insert(:note_activity) + + %{id: activity.id} + end + + test "toggle sensitive flag", %{conn: conn, id: id, admin: admin} do + response = + conn + |> put_req_header("content-type", "application/json") + |> put("/api/pleroma/admin/statuses/#{id}", %{"sensitive" => "true"}) + |> json_response_and_validate_schema(:ok) + + assert response["sensitive"] + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} updated status ##{id}, set sensitive: 'true'" + + response = + conn + |> put_req_header("content-type", "application/json") + |> put("/api/pleroma/admin/statuses/#{id}", %{"sensitive" => "false"}) + |> json_response_and_validate_schema(:ok) + + refute response["sensitive"] + end + + test "change visibility flag", %{conn: conn, id: id, admin: admin} do + response = + conn + |> put_req_header("content-type", "application/json") + |> put("/api/pleroma/admin/statuses/#{id}", %{visibility: "public"}) + |> json_response_and_validate_schema(:ok) + + assert response["visibility"] == "public" + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} updated status ##{id}, set visibility: 'public'" + + response = + conn + |> put_req_header("content-type", "application/json") + |> put("/api/pleroma/admin/statuses/#{id}", %{visibility: "private"}) + |> json_response_and_validate_schema(:ok) + + assert response["visibility"] == "private" + + response = + conn + |> put_req_header("content-type", "application/json") + |> put("/api/pleroma/admin/statuses/#{id}", %{visibility: "unlisted"}) + |> json_response_and_validate_schema(:ok) + + assert response["visibility"] == "unlisted" + end + + test "returns 400 when visibility is unknown", %{conn: conn, id: id} do + conn = + conn + |> put_req_header("content-type", "application/json") + |> put("/api/pleroma/admin/statuses/#{id}", %{visibility: "test"}) + + assert %{"error" => "test - Invalid value for enum."} = + json_response_and_validate_schema(conn, :bad_request) + end + end + + describe "DELETE /api/pleroma/admin/statuses/:id" do + setup do + activity = insert(:note_activity) + + %{id: activity.id} + end + + test "deletes status", %{conn: conn, id: id, admin: admin} do + conn + |> delete("/api/pleroma/admin/statuses/#{id}") + |> json_response_and_validate_schema(:ok) + + refute Activity.get_by_id(id) + + log_entry = Repo.one(ModerationLog) + + assert ModerationLog.get_log_entry_message(log_entry) == + "@#{admin.nickname} deleted status ##{id}" + end + + test "returns 404 when the status does not exist", %{conn: conn} do + conn = delete(conn, "/api/pleroma/admin/statuses/test") + + assert json_response_and_validate_schema(conn, :not_found) == %{"error" => "Not found"} + end + end + + describe "GET /api/pleroma/admin/statuses" do + test "returns all public and unlisted statuses", %{conn: conn, admin: admin} do + blocked = insert(:user) + user = insert(:user) + User.block(admin, blocked) + + {:ok, _} = CommonAPI.post(user, %{status: "@#{admin.nickname}", visibility: "direct"}) + + {:ok, _} = CommonAPI.post(user, %{status: ".", visibility: "unlisted"}) + {:ok, _} = CommonAPI.post(user, %{status: ".", visibility: "private"}) + {:ok, _} = CommonAPI.post(user, %{status: ".", visibility: "public"}) + {:ok, _} = CommonAPI.post(blocked, %{status: ".", visibility: "public"}) + + response = + conn + |> get("/api/pleroma/admin/statuses") + |> json_response_and_validate_schema(200) + + refute "private" in Enum.map(response, & &1["visibility"]) + assert length(response) == 3 + end + + test "returns only local statuses with local_only on", %{conn: conn} do + user = insert(:user) + remote_user = insert(:user, local: false, nickname: "archaeme@archae.me") + insert(:note_activity, user: user, local: true) + insert(:note_activity, user: remote_user, local: false) + + response = + conn + |> get("/api/pleroma/admin/statuses?local_only=true") + |> json_response_and_validate_schema(200) + + assert length(response) == 1 + end + + test "returns private and direct statuses with godmode on", %{conn: conn, admin: admin} do + user = insert(:user) + + {:ok, _} = CommonAPI.post(user, %{status: "@#{admin.nickname}", visibility: "direct"}) + + {:ok, _} = CommonAPI.post(user, %{status: ".", visibility: "private"}) + {:ok, _} = CommonAPI.post(user, %{status: ".", visibility: "public"}) + conn = get(conn, "/api/pleroma/admin/statuses?godmode=true") + assert json_response_and_validate_schema(conn, 200) |> length() == 3 + end + end +end diff --git a/test/web/api_spec/schema_examples_test.exs b/test/web/api_spec/schema_examples_test.exs index 88b6f07cb..f00e834fc 100644 --- a/test/web/api_spec/schema_examples_test.exs +++ b/test/web/api_spec/schema_examples_test.exs @@ -28,7 +28,7 @@ test "request body schema example matches schema" do end end - for {status, response} <- operation.responses do + for {status, response} <- operation.responses, is_map(response.content[@content_type]) do describe "#{operation.operationId} - #{status} Response" do @schema resolve_schema(response.content[@content_type].schema) diff --git a/test/web/auth/pleroma_authenticator_test.exs b/test/web/auth/pleroma_authenticator_test.exs index 5a421e5ed..1ba0dfecc 100644 --- a/test/web/auth/pleroma_authenticator_test.exs +++ b/test/web/auth/pleroma_authenticator_test.exs @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Auth.PleromaAuthenticatorTest do @@ -15,11 +15,16 @@ defmodule Pleroma.Web.Auth.PleromaAuthenticatorTest do {:ok, [user: user, name: name, password: password]} end - test "get_user/authorization", %{user: user, name: name, password: password} do + test "get_user/authorization", %{name: name, password: password} do + name = name <> "1" + user = insert(:user, nickname: name, password_hash: Bcrypt.hash_pwd_salt(password)) + params = %{"authorization" => %{"name" => name, "password" => password}} res = PleromaAuthenticator.get_user(%Plug.Conn{params: params}) - assert {:ok, user} == res + assert {:ok, returned_user} = res + assert returned_user.id == user.id + assert "$pbkdf2" <> _ = returned_user.password_hash end test "get_user/authorization with invalid password", %{name: name} do diff --git a/test/web/auth/totp_authenticator_test.exs b/test/web/auth/totp_authenticator_test.exs index e502e0ae8..84d4cd840 100644 --- a/test/web/auth/totp_authenticator_test.exs +++ b/test/web/auth/totp_authenticator_test.exs @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Auth.TOTPAuthenticatorTest do diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index fd8299013..fc3bb845d 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -5,7 +5,9 @@ defmodule Pleroma.Web.CommonAPITest do use Pleroma.DataCase alias Pleroma.Activity + alias Pleroma.Chat alias Pleroma.Conversation.Participation + alias Pleroma.Notification alias Pleroma.Object alias Pleroma.User alias Pleroma.Web.ActivityPub.ActivityPub @@ -23,6 +25,196 @@ defmodule Pleroma.Web.CommonAPITest do setup do: clear_config([:instance, :limit]) setup do: clear_config([:instance, :max_pinned_statuses]) + describe "blocking" do + setup do + blocker = insert(:user) + blocked = insert(:user) + User.follow(blocker, blocked) + User.follow(blocked, blocker) + %{blocker: blocker, blocked: blocked} + end + + test "it blocks and federates", %{blocker: blocker, blocked: blocked} do + clear_config([:instance, :federating], true) + + with_mock Pleroma.Web.Federator, + publish: fn _ -> nil end do + assert {:ok, block} = CommonAPI.block(blocker, blocked) + + assert block.local + assert User.blocks?(blocker, blocked) + refute User.following?(blocker, blocked) + refute User.following?(blocked, blocker) + + assert called(Pleroma.Web.Federator.publish(block)) + end + end + + test "it blocks and does not federate if outgoing blocks are disabled", %{ + blocker: blocker, + blocked: blocked + } do + clear_config([:instance, :federating], true) + clear_config([:activitypub, :outgoing_blocks], false) + + with_mock Pleroma.Web.Federator, + publish: fn _ -> nil end do + assert {:ok, block} = CommonAPI.block(blocker, blocked) + + assert block.local + assert User.blocks?(blocker, blocked) + refute User.following?(blocker, blocked) + refute User.following?(blocked, blocker) + + refute called(Pleroma.Web.Federator.publish(block)) + end + end + end + + describe "posting chat messages" do + setup do: clear_config([:instance, :chat_limit]) + + test "it posts a chat message without content but with an attachment" do + author = insert(:user) + recipient = insert(:user) + + file = %Plug.Upload{ + content_type: "image/jpg", + path: Path.absname("test/fixtures/image.jpg"), + filename: "an_image.jpg" + } + + {:ok, upload} = ActivityPub.upload(file, actor: author.ap_id) + + with_mocks([ + { + Pleroma.Web.Streamer, + [], + [ + stream: fn _, _ -> + nil + end + ] + }, + { + Pleroma.Web.Push, + [], + [ + send: fn _ -> nil end + ] + } + ]) do + {:ok, activity} = + CommonAPI.post_chat_message( + author, + recipient, + nil, + media_id: upload.id + ) + + notification = + Notification.for_user_and_activity(recipient, activity) + |> Repo.preload(:activity) + + assert called(Pleroma.Web.Push.send(notification)) + assert called(Pleroma.Web.Streamer.stream(["user", "user:notification"], notification)) + assert called(Pleroma.Web.Streamer.stream(["user", "user:pleroma_chat"], :_)) + + assert activity + end + end + + test "it adds html newlines" do + author = insert(:user) + recipient = insert(:user) + + other_user = insert(:user) + + {:ok, activity} = + CommonAPI.post_chat_message( + author, + recipient, + "uguu\nuguuu" + ) + + assert other_user.ap_id not in activity.recipients + + object = Object.normalize(activity, false) + + assert object.data["content"] == "uguu
uguuu" + end + + test "it linkifies" do + author = insert(:user) + recipient = insert(:user) + + other_user = insert(:user) + + {:ok, activity} = + CommonAPI.post_chat_message( + author, + recipient, + "https://example.org is the site of @#{other_user.nickname} #2hu" + ) + + assert other_user.ap_id not in activity.recipients + + object = Object.normalize(activity, false) + + assert object.data["content"] == + "https://example.org is the site of @#{other_user.nickname} #2hu" + end + + test "it posts a chat message" do + author = insert(:user) + recipient = insert(:user) + + {:ok, activity} = + CommonAPI.post_chat_message( + author, + recipient, + "a test message :firefox:" + ) + + assert activity.data["type"] == "Create" + assert activity.local + object = Object.normalize(activity) + + assert object.data["type"] == "ChatMessage" + assert object.data["to"] == [recipient.ap_id] + + assert object.data["content"] == + "a test message <script>alert('uuu')</script> :firefox:" + + assert object.data["emoji"] == %{ + "firefox" => "http://localhost:4001/emoji/Firefox.gif" + } + + assert Chat.get(author.id, recipient.ap_id) + assert Chat.get(recipient.id, author.ap_id) + + assert :ok == Pleroma.Web.Federator.perform(:publish, activity) + end + + test "it reject messages over the local limit" do + Pleroma.Config.put([:instance, :chat_limit], 2) + + author = insert(:user) + recipient = insert(:user) + + {:error, message} = + CommonAPI.post_chat_message( + author, + recipient, + "123" + ) + + assert message == :content_too_long + end + end + describe "unblocking" do test "it works even without an existing block activity" do blocked = insert(:user) @@ -41,6 +233,8 @@ test "it works with pruned objects" do {:ok, post} = CommonAPI.post(user, %{status: "namu amida butsu"}) + clear_config([:instance, :federating], true) + Object.normalize(post, false) |> Object.prune() @@ -59,6 +253,8 @@ test "it allows users to delete their posts" do {:ok, post} = CommonAPI.post(user, %{status: "namu amida butsu"}) + clear_config([:instance, :federating], true) + with_mock Pleroma.Web.Federator, publish: fn _ -> nil end do assert {:ok, delete} = CommonAPI.delete(post.id, user) @@ -335,6 +531,32 @@ test "it does not allow replies to direct messages that are not direct messages end) end + test "replying with a direct message will NOT auto-add the author of the reply to the recipient list" do + user = insert(:user) + other_user = insert(:user) + third_user = insert(:user) + + {:ok, post} = CommonAPI.post(user, %{status: "I'm stupid"}) + + {:ok, open_answer} = + CommonAPI.post(other_user, %{status: "No ur smart", in_reply_to_status_id: post.id}) + + # The OP is implicitly added + assert user.ap_id in open_answer.recipients + + {:ok, secret_answer} = + CommonAPI.post(other_user, %{ + status: "lol, that guy really is stupid, right, @#{third_user.nickname}?", + in_reply_to_status_id: post.id, + visibility: "direct" + }) + + assert third_user.ap_id in secret_answer.recipients + + # The OP is not added + refute user.ap_id in secret_answer.recipients + end + test "it allows to address a list" do user = insert(:user) {:ok, list} = Pleroma.List.create("foo", user) @@ -416,7 +638,8 @@ test "repeating a status" do {:ok, activity} = CommonAPI.post(other_user, %{status: "cofe"}) - {:ok, %Activity{}, _} = CommonAPI.repeat(activity.id, user) + {:ok, %Activity{} = announce_activity} = CommonAPI.repeat(activity.id, user) + assert Visibility.is_public?(announce_activity) end test "can't repeat a repeat" do @@ -424,9 +647,9 @@ test "can't repeat a repeat" do other_user = insert(:user) {:ok, activity} = CommonAPI.post(other_user, %{status: "cofe"}) - {:ok, %Activity{} = announce, _} = CommonAPI.repeat(activity.id, other_user) + {:ok, %Activity{} = announce} = CommonAPI.repeat(activity.id, other_user) - refute match?({:ok, %Activity{}, _}, CommonAPI.repeat(announce.id, user)) + refute match?({:ok, %Activity{}}, CommonAPI.repeat(announce.id, user)) end test "repeating a status privately" do @@ -435,10 +658,11 @@ test "repeating a status privately" do {:ok, activity} = CommonAPI.post(other_user, %{status: "cofe"}) - {:ok, %Activity{} = announce_activity, _} = + {:ok, %Activity{} = announce_activity} = CommonAPI.repeat(activity.id, user, %{visibility: "private"}) assert Visibility.is_private?(announce_activity) + refute Visibility.visible_for_user?(announce_activity, nil) end test "favoriting a status" do @@ -458,8 +682,8 @@ test "retweeting a status twice returns the status" do other_user = insert(:user) {:ok, activity} = CommonAPI.post(other_user, %{status: "cofe"}) - {:ok, %Activity{} = announce, object} = CommonAPI.repeat(activity.id, user) - {:ok, ^announce, ^object} = CommonAPI.repeat(activity.id, user) + {:ok, %Activity{} = announce} = CommonAPI.repeat(activity.id, user) + {:ok, ^announce} = CommonAPI.repeat(activity.id, user) end test "favoriting a status twice returns ok, but without the like activity" do @@ -841,10 +1065,10 @@ test "returns a valid activity" do {:ok, activity} = CommonAPI.listen(user, %{ - "title" => "lain radio episode 1", - "album" => "lain radio", - "artist" => "lain", - "length" => 180_000 + title: "lain radio episode 1", + album: "lain radio", + artist: "lain", + length: 180_000 }) object = Object.normalize(activity) @@ -859,11 +1083,11 @@ test "respects visibility=private" do {:ok, activity} = CommonAPI.listen(user, %{ - "title" => "lain radio episode 1", - "album" => "lain radio", - "artist" => "lain", - "length" => 180_000, - "visibility" => "private" + title: "lain radio episode 1", + album: "lain radio", + artist: "lain", + length: 180_000, + visibility: "private" }) object = Object.normalize(activity) diff --git a/test/web/common_api/common_api_utils_test.exs b/test/web/common_api/common_api_utils_test.exs index 5708db6a4..e67c10b93 100644 --- a/test/web/common_api/common_api_utils_test.exs +++ b/test/web/common_api/common_api_utils_test.exs @@ -14,18 +14,41 @@ defmodule Pleroma.Web.CommonAPI.UtilsTest do @public_address "https://www.w3.org/ns/activitystreams#Public" - test "it adds attachment links to a given text and attachment set" do - name = - "Sakura%20Mana%20%E2%80%93%20Turned%20on%20by%20a%20Senior%20OL%20with%20a%20Temptating%20Tight%20Skirt-s%20Full%20Hipline%20and%20Panty%20Shot-%20Beautiful%20Thick%20Thighs-%20and%20Erotic%20Ass-%20-2015-%20--%20Oppaitime%208-28-2017%206-50-33%20PM.png" + describe "add_attachments/2" do + setup do + name = + "Sakura Mana – Turned on by a Senior OL with a Temptating Tight Skirt-s Full Hipline and Panty Shot- Beautiful Thick Thighs- and Erotic Ass- -2015- -- Oppaitime 8-28-2017 6-50-33 PM.png" - attachment = %{ - "url" => [%{"href" => name}] - } + attachment = %{ + "url" => [%{"href" => URI.encode(name)}] + } - res = Utils.add_attachments("", [attachment]) + %{name: name, attachment: attachment} + end - assert res == - "
Sakura Mana – Turned on by a Se…" + test "it adds attachment links to a given text and attachment set", %{ + name: name, + attachment: attachment + } do + len = 10 + clear_config([Pleroma.Upload, :filename_display_max_length], len) + + expected = + "
#{String.slice(name, 0..len)}…" + + assert Utils.add_attachments("", [attachment]) == expected + end + + test "doesn't truncate file name if config for truncate is set to 0", %{ + name: name, + attachment: attachment + } do + clear_config([Pleroma.Upload, :filename_display_max_length], 0) + + expected = "
#{name}" + + assert Utils.add_attachments("", [attachment]) == expected + end end describe "it confirms the password given is the current users password" do @@ -297,11 +320,10 @@ test "for private posts, a reply" do {to, cc} = Utils.get_to_and_cc(user, mentions, activity, "private", nil) - assert length(to) == 3 + assert length(to) == 2 assert Enum.empty?(cc) assert mentioned_user.ap_id in to - assert third_user.ap_id in to assert user.follower_address in to end @@ -327,6 +349,15 @@ test "for direct posts, a reply" do {to, cc} = Utils.get_to_and_cc(user, mentions, activity, "direct", nil) + assert length(to) == 1 + assert Enum.empty?(cc) + + assert mentioned_user.ap_id in to + + {:ok, direct_activity} = CommonAPI.post(third_user, %{status: "uguu", visibility: "direct"}) + + {to, cc} = Utils.get_to_and_cc(user, mentions, direct_activity, "direct", nil) + assert length(to) == 2 assert Enum.empty?(cc) diff --git a/test/web/fallback_test.exs b/test/web/fallback_test.exs index 3919ef93a..a65865860 100644 --- a/test/web/fallback_test.exs +++ b/test/web/fallback_test.exs @@ -6,22 +6,56 @@ defmodule Pleroma.Web.FallbackTest do use Pleroma.Web.ConnCase import Pleroma.Factory - test "GET /registration/:token", %{conn: conn} do - assert conn - |> get("/registration/foo") - |> html_response(200) =~ "" + describe "neither preloaded data nor metadata attached to" do + test "GET /registration/:token", %{conn: conn} do + response = get(conn, "/registration/foo") + + assert html_response(response, 200) =~ "" + end + + test "GET /*path", %{conn: conn} do + assert conn + |> get("/foo") + |> html_response(200) =~ "" + end end - test "GET /:maybe_nickname_or_id", %{conn: conn} do - user = insert(:user) + describe "preloaded data and metadata attached to" do + test "GET /:maybe_nickname_or_id", %{conn: conn} do + user = insert(:user) + user_missing = get(conn, "/foo") + user_present = get(conn, "/#{user.nickname}") - assert conn - |> get("/foo") - |> html_response(200) =~ "" + assert(html_response(user_missing, 200) =~ "") + refute html_response(user_present, 200) =~ "" + assert html_response(user_present, 200) =~ "initial-results" + end - refute conn - |> get("/" <> user.nickname) - |> html_response(200) =~ "" + test "GET /*path", %{conn: conn} do + assert conn + |> get("/foo") + |> html_response(200) =~ "" + + refute conn + |> get("/foo/bar") + |> html_response(200) =~ "" + end + end + + describe "preloaded data is attached to" do + test "GET /main/public", %{conn: conn} do + public_page = get(conn, "/main/public") + + refute html_response(public_page, 200) =~ "" + assert html_response(public_page, 200) =~ "initial-results" + end + + test "GET /main/all", %{conn: conn} do + public_page = get(conn, "/main/all") + + refute html_response(public_page, 200) =~ "" + assert html_response(public_page, 200) =~ "initial-results" + end end test "GET /api*path", %{conn: conn} do @@ -34,16 +68,6 @@ test "GET /pleroma/admin -> /pleroma/admin/", %{conn: conn} do assert redirected_to(get(conn, "/pleroma/admin")) =~ "/pleroma/admin/" end - test "GET /*path", %{conn: conn} do - assert conn - |> get("/foo") - |> html_response(200) =~ "" - - assert conn - |> get("/foo/bar") - |> html_response(200) =~ "" - end - test "OPTIONS /*path", %{conn: conn} do assert conn |> options("/foo") diff --git a/test/web/federator_test.exs b/test/web/federator_test.exs index de90aa6e0..592fdccd1 100644 --- a/test/web/federator_test.exs +++ b/test/web/federator_test.exs @@ -23,7 +23,7 @@ defmodule Pleroma.Web.FederatorTest do setup_all do: clear_config([:instance, :federating], true) setup do: clear_config([:instance, :allow_relay]) - setup do: clear_config([:instance, :rewrite_policy]) + setup do: clear_config([:mrf, :policies]) setup do: clear_config([:mrf_keyword]) describe "Publish an activity" do @@ -158,7 +158,7 @@ test "it does not crash if MRF rejects the post" do Pleroma.Config.put([:mrf_keyword, :reject], ["lain"]) Pleroma.Config.put( - [:instance, :rewrite_policy], + [:mrf, :policies], Pleroma.Web.ActivityPub.MRF.KeywordPolicy ) diff --git a/test/web/feed/user_controller_test.exs b/test/web/feed/user_controller_test.exs index 05ad427c2..fa2ed1ea5 100644 --- a/test/web/feed/user_controller_test.exs +++ b/test/web/feed/user_controller_test.exs @@ -11,13 +11,14 @@ defmodule Pleroma.Web.Feed.UserControllerTest do alias Pleroma.Config alias Pleroma.Object alias Pleroma.User + alias Pleroma.Web.CommonAPI setup do: clear_config([:instance, :federating], true) describe "feed" do setup do: clear_config([:feed]) - test "gets a feed", %{conn: conn} do + test "gets an atom feed", %{conn: conn} do Config.put( [:feed, :post_title], %{max_length: 10, omission: "..."} @@ -157,6 +158,29 @@ test "returns 404 for a missing feed", %{conn: conn} do assert response(conn, 404) end + + test "returns feed with public and unlisted activities", %{conn: conn} do + user = insert(:user) + + {:ok, _} = CommonAPI.post(user, %{status: "public", visibility: "public"}) + {:ok, _} = CommonAPI.post(user, %{status: "direct", visibility: "direct"}) + {:ok, _} = CommonAPI.post(user, %{status: "unlisted", visibility: "unlisted"}) + {:ok, _} = CommonAPI.post(user, %{status: "private", visibility: "private"}) + + resp = + conn + |> put_req_header("accept", "application/atom+xml") + |> get(user_feed_path(conn, :feed, user.nickname)) + |> response(200) + + activity_titles = + resp + |> SweetXml.parse() + |> SweetXml.xpath(~x"//entry/title/text()"l) + |> Enum.sort() + + assert activity_titles == ['public', 'unlisted'] + end end # Note: see ActivityPubControllerTest for JSON format tests diff --git a/test/web/mastodon_api/controllers/account_controller/update_credentials_test.exs b/test/web/mastodon_api/controllers/account_controller/update_credentials_test.exs index fdb6d4c5d..31f0edf97 100644 --- a/test/web/mastodon_api/controllers/account_controller/update_credentials_test.exs +++ b/test/web/mastodon_api/controllers/account_controller/update_credentials_test.exs @@ -8,6 +8,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController.UpdateCredentialsTest do use Pleroma.Web.ConnCase + import Mock import Pleroma.Factory setup do: clear_config([:instance, :max_account_fields]) @@ -52,33 +53,39 @@ test "sets user settings in a generic way", %{conn: conn} do user = Repo.get(User, user_data["id"]) - res_conn = - conn - |> assign(:user, user) - |> patch("/api/v1/accounts/update_credentials", %{ - "pleroma_settings_store" => %{ - masto_fe: %{ - theme: "blub" + clear_config([:instance, :federating], true) + + with_mock Pleroma.Web.Federator, + publish: fn _activity -> :ok end do + res_conn = + conn + |> assign(:user, user) + |> patch("/api/v1/accounts/update_credentials", %{ + "pleroma_settings_store" => %{ + masto_fe: %{ + theme: "blub" + } } - } - }) + }) - assert user_data = json_response_and_validate_schema(res_conn, 200) + assert user_data = json_response_and_validate_schema(res_conn, 200) - assert user_data["pleroma"]["settings_store"] == - %{ - "pleroma_fe" => %{"theme" => "bla"}, - "masto_fe" => %{"theme" => "blub"} - } + assert user_data["pleroma"]["settings_store"] == + %{ + "pleroma_fe" => %{"theme" => "bla"}, + "masto_fe" => %{"theme" => "blub"} + } + + assert_called(Pleroma.Web.Federator.publish(:_)) + end end test "updates the user's bio", %{conn: conn} do user2 = insert(:user) - conn = - patch(conn, "/api/v1/accounts/update_credentials", %{ - "note" => "I drink #cofe with @#{user2.nickname}\n\nsuya.." - }) + raw_bio = "I drink #cofe with @#{user2.nickname}\n\nsuya.." + + conn = patch(conn, "/api/v1/accounts/update_credentials", %{"note" => raw_bio}) assert user_data = json_response_and_validate_schema(conn, 200) @@ -86,6 +93,12 @@ test "updates the user's bio", %{conn: conn} do ~s(I drink #cofe with @#{user2.nickname}

suya..) + + assert user_data["source"]["note"] == raw_bio + + user = Repo.get(User, user_data["id"]) + + assert user.raw_bio == raw_bio end test "updates the user's locking status", %{conn: conn} do @@ -112,6 +125,13 @@ test "updates the user's default scope", %{conn: conn} do assert user_data["source"]["privacy"] == "unlisted" end + test "updates the user's privacy", %{conn: conn} do + conn = patch(conn, "/api/v1/accounts/update_credentials", %{source: %{privacy: "unlisted"}}) + + assert user_data = json_response_and_validate_schema(conn, 200) + assert user_data["source"]["privacy"] == "unlisted" + end + test "updates the user's hide_followers status", %{conn: conn} do conn = patch(conn, "/api/v1/accounts/update_credentials", %{hide_followers: "true"}) @@ -196,10 +216,20 @@ test "updates the user's avatar", %{user: user, conn: conn} do filename: "an_image.jpg" } - conn = patch(conn, "/api/v1/accounts/update_credentials", %{"avatar" => new_avatar}) + res = + conn + |> patch("/api/v1/accounts/update_credentials", %{"avatar" => new_avatar}) - assert user_response = json_response_and_validate_schema(conn, 200) + assert user_response = json_response_and_validate_schema(res, 200) assert user_response["avatar"] != User.avatar_url(user) + + # Also removes it + res = + conn + |> patch("/api/v1/accounts/update_credentials", %{"avatar" => nil}) + + assert user_response = json_response_and_validate_schema(res, 200) + assert user_response["avatar"] == User.avatar_url(user) end test "updates the user's banner", %{user: user, conn: conn} do @@ -209,10 +239,21 @@ test "updates the user's banner", %{user: user, conn: conn} do filename: "an_image.jpg" } - conn = patch(conn, "/api/v1/accounts/update_credentials", %{"header" => new_header}) + res = + conn + |> patch("/api/v1/accounts/update_credentials", %{"header" => new_header}) - assert user_response = json_response_and_validate_schema(conn, 200) + assert user_response = json_response_and_validate_schema(res, 200) assert user_response["header"] != User.banner_url(user) + + # Also removes it + + res = + conn + |> patch("/api/v1/accounts/update_credentials", %{"header" => nil}) + + assert user_response = json_response_and_validate_schema(res, 200) + assert user_response["header"] == User.banner_url(user) end test "updates the user's background", %{conn: conn} do @@ -222,13 +263,25 @@ test "updates the user's background", %{conn: conn} do filename: "an_image.jpg" } - conn = - patch(conn, "/api/v1/accounts/update_credentials", %{ + res = + conn + |> patch("/api/v1/accounts/update_credentials", %{ "pleroma_background_image" => new_header }) - assert user_response = json_response_and_validate_schema(conn, 200) + assert user_response = json_response_and_validate_schema(res, 200) assert user_response["pleroma"]["background_image"] + + # Also removes it + + res = + conn + |> patch("/api/v1/accounts/update_credentials", %{ + "pleroma_background_image" => nil + }) + + assert user_response = json_response_and_validate_schema(res, 200) + refute user_response["pleroma"]["background_image"] end test "requires 'write:accounts' permission" do @@ -380,4 +433,71 @@ test "update fields when invalid request", %{conn: conn} do |> json_response_and_validate_schema(403) end end + + describe "Mark account as bot" do + setup do: oauth_access(["write:accounts"]) + setup :request_content_type + + test "changing actor_type to Service makes account a bot", %{conn: conn} do + account = + conn + |> patch("/api/v1/accounts/update_credentials", %{actor_type: "Service"}) + |> json_response_and_validate_schema(200) + + assert account["bot"] + assert account["source"]["pleroma"]["actor_type"] == "Service" + end + + test "changing actor_type to Person makes account a human", %{conn: conn} do + account = + conn + |> patch("/api/v1/accounts/update_credentials", %{actor_type: "Person"}) + |> json_response_and_validate_schema(200) + + refute account["bot"] + assert account["source"]["pleroma"]["actor_type"] == "Person" + end + + test "changing actor_type to Application causes error", %{conn: conn} do + response = + conn + |> patch("/api/v1/accounts/update_credentials", %{actor_type: "Application"}) + |> json_response_and_validate_schema(403) + + assert %{"error" => "Invalid request"} == response + end + + test "changing bot field to true changes actor_type to Service", %{conn: conn} do + account = + conn + |> patch("/api/v1/accounts/update_credentials", %{bot: "true"}) + |> json_response_and_validate_schema(200) + + assert account["bot"] + assert account["source"]["pleroma"]["actor_type"] == "Service" + end + + test "changing bot field to false changes actor_type to Person", %{conn: conn} do + account = + conn + |> patch("/api/v1/accounts/update_credentials", %{bot: "false"}) + |> json_response_and_validate_schema(200) + + refute account["bot"] + assert account["source"]["pleroma"]["actor_type"] == "Person" + end + + test "actor_type field has a higher priority than bot", %{conn: conn} do + account = + conn + |> patch("/api/v1/accounts/update_credentials", %{ + actor_type: "Person", + bot: "true" + }) + |> json_response_and_validate_schema(200) + + refute account["bot"] + assert account["source"]["pleroma"]["actor_type"] == "Person" + end + end end diff --git a/test/web/mastodon_api/controllers/account_controller_test.exs b/test/web/mastodon_api/controllers/account_controller_test.exs index 280bd6aca..ebfcedd01 100644 --- a/test/web/mastodon_api/controllers/account_controller_test.exs +++ b/test/web/mastodon_api/controllers/account_controller_test.exs @@ -127,6 +127,15 @@ test "returns 404 for internal.fetch actor", %{conn: conn} do |> get("/api/v1/accounts/internal.fetch") |> json_response_and_validate_schema(404) end + + test "returns 404 for deactivated user", %{conn: conn} do + user = insert(:user, deactivated: true) + + assert %{"error" => "Can't find user"} = + conn + |> get("/api/v1/accounts/#{user.id}") + |> json_response_and_validate_schema(:not_found) + end end defp local_and_remote_users do @@ -143,15 +152,15 @@ defp local_and_remote_users do setup do: clear_config([:restrict_unauthenticated, :profiles, :remote], true) test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do - assert %{"error" => "Can't find user"} == + assert %{"error" => "This API requires an authenticated user"} == conn |> get("/api/v1/accounts/#{local.id}") - |> json_response_and_validate_schema(:not_found) + |> json_response_and_validate_schema(:unauthorized) - assert %{"error" => "Can't find user"} == + assert %{"error" => "This API requires an authenticated user"} == conn |> get("/api/v1/accounts/#{remote.id}") - |> json_response_and_validate_schema(:not_found) + |> json_response_and_validate_schema(:unauthorized) end test "if user is authenticated", %{local: local, remote: remote} do @@ -173,8 +182,8 @@ test "if user is authenticated", %{local: local, remote: remote} do test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do res_conn = get(conn, "/api/v1/accounts/#{local.id}") - assert json_response_and_validate_schema(res_conn, :not_found) == %{ - "error" => "Can't find user" + assert json_response_and_validate_schema(res_conn, :unauthorized) == %{ + "error" => "This API requires an authenticated user" } res_conn = get(conn, "/api/v1/accounts/#{remote.id}") @@ -203,8 +212,8 @@ test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} d res_conn = get(conn, "/api/v1/accounts/#{remote.id}") - assert json_response_and_validate_schema(res_conn, :not_found) == %{ - "error" => "Can't find user" + assert json_response_and_validate_schema(res_conn, :unauthorized) == %{ + "error" => "This API requires an authenticated user" } end @@ -249,6 +258,24 @@ test "works with announces that are just addressed to public", %{conn: conn} do assert id == announce.id end + test "deactivated user", %{conn: conn} do + user = insert(:user, deactivated: true) + + assert %{"error" => "Can't find user"} == + conn + |> get("/api/v1/accounts/#{user.id}/statuses") + |> json_response_and_validate_schema(:not_found) + end + + test "returns 404 when user is invisible", %{conn: conn} do + user = insert(:user, %{invisible: true}) + + assert %{"error" => "Can't find user"} = + conn + |> get("/api/v1/accounts/#{user.id}") + |> json_response_and_validate_schema(404) + end + test "respects blocks", %{user: user_one, conn: conn} do user_two = insert(:user) user_three = insert(:user) @@ -256,7 +283,7 @@ test "respects blocks", %{user: user_one, conn: conn} do User.block(user_one, user_two) {:ok, activity} = CommonAPI.post(user_two, %{status: "User one sux0rz"}) - {:ok, repeat, _} = CommonAPI.repeat(activity.id, user_three) + {:ok, repeat} = CommonAPI.repeat(activity.id, user_three) assert resp = conn @@ -350,9 +377,10 @@ test "unimplemented pinned statuses feature", %{conn: conn} do assert json_response_and_validate_schema(conn, 200) == [] end - test "gets an users media", %{conn: conn} do + test "gets an users media, excludes reblogs", %{conn: conn} do note = insert(:note_activity) user = User.get_cached_by_ap_id(note.data["actor"]) + other_user = insert(:user) file = %Plug.Upload{ content_type: "image/jpg", @@ -364,6 +392,13 @@ test "gets an users media", %{conn: conn} do {:ok, %{id: image_post_id}} = CommonAPI.post(user, %{status: "cofe", media_ids: [media_id]}) + {:ok, %{id: media_id}} = ActivityPub.upload(file, actor: other_user.ap_id) + + {:ok, %{id: other_image_post_id}} = + CommonAPI.post(other_user, %{status: "cofe2", media_ids: [media_id]}) + + {:ok, _announce} = CommonAPI.repeat(other_image_post_id, user) + conn = get(conn, "/api/v1/accounts/#{user.id}/statuses?only_media=true") assert [%{"id" => ^image_post_id}] = json_response_and_validate_schema(conn, 200) @@ -375,7 +410,7 @@ test "gets an users media", %{conn: conn} do test "gets a user's statuses without reblogs", %{user: user, conn: conn} do {:ok, %{id: post_id}} = CommonAPI.post(user, %{status: "HI!!!"}) - {:ok, _, _} = CommonAPI.repeat(post_id, user) + {:ok, _} = CommonAPI.repeat(post_id, user) conn = get(conn, "/api/v1/accounts/#{user.id}/statuses?exclude_reblogs=true") assert [%{"id" => ^post_id}] = json_response_and_validate_schema(conn, 200) @@ -422,15 +457,15 @@ defp local_and_remote_activities(%{local: local, remote: remote}) do setup do: clear_config([:restrict_unauthenticated, :profiles, :remote], true) test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do - assert %{"error" => "Can't find user"} == + assert %{"error" => "This API requires an authenticated user"} == conn |> get("/api/v1/accounts/#{local.id}/statuses") - |> json_response_and_validate_schema(:not_found) + |> json_response_and_validate_schema(:unauthorized) - assert %{"error" => "Can't find user"} == + assert %{"error" => "This API requires an authenticated user"} == conn |> get("/api/v1/accounts/#{remote.id}/statuses") - |> json_response_and_validate_schema(:not_found) + |> json_response_and_validate_schema(:unauthorized) end test "if user is authenticated", %{local: local, remote: remote} do @@ -451,10 +486,10 @@ test "if user is authenticated", %{local: local, remote: remote} do setup do: clear_config([:restrict_unauthenticated, :profiles, :local], true) test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do - assert %{"error" => "Can't find user"} == + assert %{"error" => "This API requires an authenticated user"} == conn |> get("/api/v1/accounts/#{local.id}/statuses") - |> json_response_and_validate_schema(:not_found) + |> json_response_and_validate_schema(:unauthorized) res_conn = get(conn, "/api/v1/accounts/#{remote.id}/statuses") assert length(json_response_and_validate_schema(res_conn, 200)) == 1 @@ -481,10 +516,10 @@ test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} d res_conn = get(conn, "/api/v1/accounts/#{local.id}/statuses") assert length(json_response_and_validate_schema(res_conn, 200)) == 1 - assert %{"error" => "Can't find user"} == + assert %{"error" => "This API requires an authenticated user"} == conn |> get("/api/v1/accounts/#{remote.id}/statuses") - |> json_response_and_validate_schema(:not_found) + |> json_response_and_validate_schema(:unauthorized) end test "if user is authenticated", %{local: local, remote: remote} do @@ -678,7 +713,7 @@ test "following without reblogs" do assert %{"showing_reblogs" => false} = json_response_and_validate_schema(ret_conn, 200) {:ok, activity} = CommonAPI.post(other_user, %{status: "hey"}) - {:ok, %{id: reblog_id}, _} = CommonAPI.repeat(activity.id, followed) + {:ok, %{id: reblog_id}} = CommonAPI.repeat(activity.id, followed) assert [] == conn diff --git a/test/web/mastodon_api/controllers/conversation_controller_test.exs b/test/web/mastodon_api/controllers/conversation_controller_test.exs index 693ba51e5..3e21e6bf1 100644 --- a/test/web/mastodon_api/controllers/conversation_controller_test.exs +++ b/test/web/mastodon_api/controllers/conversation_controller_test.exs @@ -12,84 +12,88 @@ defmodule Pleroma.Web.MastodonAPI.ConversationControllerTest do setup do: oauth_access(["read:statuses"]) - test "returns a list of conversations", %{user: user_one, conn: conn} do - user_two = insert(:user) - user_three = insert(:user) + describe "returns a list of conversations" do + setup(%{user: user_one, conn: conn}) do + user_two = insert(:user) + user_three = insert(:user) - {:ok, user_two} = User.follow(user_two, user_one) + {:ok, user_two} = User.follow(user_two, user_one) - assert User.get_cached_by_id(user_two.id).unread_conversation_count == 0 + {:ok, %{user: user_one, user_two: user_two, user_three: user_three, conn: conn}} + end - {:ok, direct} = - CommonAPI.post(user_one, %{ - status: "Hi @#{user_two.nickname}, @#{user_three.nickname}!", - visibility: "direct" - }) + test "returns correct conversations", %{ + user: user_one, + user_two: user_two, + user_three: user_three, + conn: conn + } do + assert User.get_cached_by_id(user_two.id).unread_conversation_count == 0 + {:ok, direct} = create_direct_message(user_one, [user_two, user_three]) - assert User.get_cached_by_id(user_two.id).unread_conversation_count == 1 + assert User.get_cached_by_id(user_two.id).unread_conversation_count == 1 - {:ok, _follower_only} = - CommonAPI.post(user_one, %{ - status: "Hi @#{user_two.nickname}!", - visibility: "private" - }) + {:ok, _follower_only} = + CommonAPI.post(user_one, %{ + status: "Hi @#{user_two.nickname}!", + visibility: "private" + }) - res_conn = get(conn, "/api/v1/conversations") + res_conn = get(conn, "/api/v1/conversations") - assert response = json_response_and_validate_schema(res_conn, 200) + assert response = json_response_and_validate_schema(res_conn, 200) - assert [ - %{ - "id" => res_id, - "accounts" => res_accounts, - "last_status" => res_last_status, - "unread" => unread - } - ] = response + assert [ + %{ + "id" => res_id, + "accounts" => res_accounts, + "last_status" => res_last_status, + "unread" => unread + } + ] = response - account_ids = Enum.map(res_accounts, & &1["id"]) - assert length(res_accounts) == 2 - assert user_two.id in account_ids - assert user_three.id in account_ids - assert is_binary(res_id) - assert unread == false - assert res_last_status["id"] == direct.id - assert User.get_cached_by_id(user_one.id).unread_conversation_count == 0 + account_ids = Enum.map(res_accounts, & &1["id"]) + assert length(res_accounts) == 2 + assert user_two.id in account_ids + assert user_three.id in account_ids + assert is_binary(res_id) + assert unread == false + assert res_last_status["id"] == direct.id + assert User.get_cached_by_id(user_one.id).unread_conversation_count == 0 + end + + test "observes limit params", %{ + user: user_one, + user_two: user_two, + user_three: user_three, + conn: conn + } do + {:ok, _} = create_direct_message(user_one, [user_two, user_three]) + {:ok, _} = create_direct_message(user_two, [user_one, user_three]) + {:ok, _} = create_direct_message(user_three, [user_two, user_one]) + + res_conn = get(conn, "/api/v1/conversations?limit=1") + + assert response = json_response_and_validate_schema(res_conn, 200) + + assert Enum.count(response) == 1 + + res_conn = get(conn, "/api/v1/conversations?limit=2") + + assert response = json_response_and_validate_schema(res_conn, 200) + + assert Enum.count(response) == 2 + end end test "filters conversations by recipients", %{user: user_one, conn: conn} do user_two = insert(:user) user_three = insert(:user) - - {:ok, direct1} = - CommonAPI.post(user_one, %{ - status: "Hi @#{user_two.nickname}!", - visibility: "direct" - }) - - {:ok, _direct2} = - CommonAPI.post(user_one, %{ - status: "Hi @#{user_three.nickname}!", - visibility: "direct" - }) - - {:ok, direct3} = - CommonAPI.post(user_one, %{ - status: "Hi @#{user_two.nickname}, @#{user_three.nickname}!", - visibility: "direct" - }) - - {:ok, _direct4} = - CommonAPI.post(user_two, %{ - status: "Hi @#{user_three.nickname}!", - visibility: "direct" - }) - - {:ok, direct5} = - CommonAPI.post(user_two, %{ - status: "Hi @#{user_one.nickname}!", - visibility: "direct" - }) + {:ok, direct1} = create_direct_message(user_one, [user_two]) + {:ok, _direct2} = create_direct_message(user_one, [user_three]) + {:ok, direct3} = create_direct_message(user_one, [user_two, user_three]) + {:ok, _direct4} = create_direct_message(user_two, [user_three]) + {:ok, direct5} = create_direct_message(user_two, [user_one]) assert [conversation1, conversation2] = conn @@ -109,12 +113,7 @@ test "filters conversations by recipients", %{user: user_one, conn: conn} do test "updates the last_status on reply", %{user: user_one, conn: conn} do user_two = insert(:user) - - {:ok, direct} = - CommonAPI.post(user_one, %{ - status: "Hi @#{user_two.nickname}", - visibility: "direct" - }) + {:ok, direct} = create_direct_message(user_one, [user_two]) {:ok, direct_reply} = CommonAPI.post(user_two, %{ @@ -133,12 +132,7 @@ test "updates the last_status on reply", %{user: user_one, conn: conn} do test "the user marks a conversation as read", %{user: user_one, conn: conn} do user_two = insert(:user) - - {:ok, direct} = - CommonAPI.post(user_one, %{ - status: "Hi @#{user_two.nickname}", - visibility: "direct" - }) + {:ok, direct} = create_direct_message(user_one, [user_two]) assert User.get_cached_by_id(user_one.id).unread_conversation_count == 0 assert User.get_cached_by_id(user_two.id).unread_conversation_count == 1 @@ -194,15 +188,22 @@ test "the user marks a conversation as read", %{user: user_one, conn: conn} do test "(vanilla) Mastodon frontend behaviour", %{user: user_one, conn: conn} do user_two = insert(:user) - - {:ok, direct} = - CommonAPI.post(user_one, %{ - status: "Hi @#{user_two.nickname}!", - visibility: "direct" - }) + {:ok, direct} = create_direct_message(user_one, [user_two]) res_conn = get(conn, "/api/v1/statuses/#{direct.id}/context") assert %{"ancestors" => [], "descendants" => []} == json_response(res_conn, 200) end + + defp create_direct_message(sender, recips) do + hellos = + recips + |> Enum.map(fn s -> "@#{s.nickname}" end) + |> Enum.join(", ") + + CommonAPI.post(sender, %{ + status: "Hi #{hellos}!", + visibility: "direct" + }) + end end diff --git a/test/web/mastodon_api/controllers/instance_controller_test.exs b/test/web/mastodon_api/controllers/instance_controller_test.exs index 2c61dc5ba..8bdfdddd1 100644 --- a/test/web/mastodon_api/controllers/instance_controller_test.exs +++ b/test/web/mastodon_api/controllers/instance_controller_test.exs @@ -31,7 +31,8 @@ test "get instance information", %{conn: conn} do "upload_limit" => _, "avatar_upload_limit" => _, "background_upload_limit" => _, - "banner_upload_limit" => _ + "banner_upload_limit" => _, + "background_image" => _ } = result assert result["pleroma"]["metadata"]["features"] diff --git a/test/web/mastodon_api/controllers/media_controller_test.exs b/test/web/mastodon_api/controllers/media_controller_test.exs index 6ac4cf63b..906fd940f 100644 --- a/test/web/mastodon_api/controllers/media_controller_test.exs +++ b/test/web/mastodon_api/controllers/media_controller_test.exs @@ -9,9 +9,9 @@ defmodule Pleroma.Web.MastodonAPI.MediaControllerTest do alias Pleroma.User alias Pleroma.Web.ActivityPub.ActivityPub - setup do: oauth_access(["write:media"]) + describe "Upload media" do + setup do: oauth_access(["write:media"]) - describe "media upload" do setup do image = %Plug.Upload{ content_type: "image/jpg", @@ -25,13 +25,14 @@ defmodule Pleroma.Web.MastodonAPI.MediaControllerTest do setup do: clear_config([:media_proxy]) setup do: clear_config([Pleroma.Upload]) - test "returns uploaded image", %{conn: conn, image: image} do + test "/api/v1/media", %{conn: conn, image: image} do desc = "Description of the image" media = conn + |> put_req_header("content-type", "multipart/form-data") |> post("/api/v1/media", %{"file" => image, "description" => desc}) - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) assert media["type"] == "image" assert media["description"] == desc @@ -40,9 +41,37 @@ test "returns uploaded image", %{conn: conn, image: image} do object = Object.get_by_id(media["id"]) assert object.data["actor"] == User.ap_id(conn.assigns[:user]) end + + test "/api/v2/media", %{conn: conn, user: user, image: image} do + desc = "Description of the image" + + response = + conn + |> put_req_header("content-type", "multipart/form-data") + |> post("/api/v2/media", %{"file" => image, "description" => desc}) + |> json_response_and_validate_schema(202) + + assert media_id = response["id"] + + %{conn: conn} = oauth_access(["read:media"], user: user) + + media = + conn + |> get("/api/v1/media/#{media_id}") + |> json_response_and_validate_schema(200) + + assert media["type"] == "image" + assert media["description"] == desc + assert media["id"] + + object = Object.get_by_id(media["id"]) + assert object.data["actor"] == user.ap_id + end end - describe "PUT /api/v1/media/:id" do + describe "Update media description" do + setup do: oauth_access(["write:media"]) + setup %{user: actor} do file = %Plug.Upload{ content_type: "image/jpg", @@ -60,23 +89,58 @@ test "returns uploaded image", %{conn: conn, image: image} do [object: object] end - test "updates name of media", %{conn: conn, object: object} do + test "/api/v1/media/:id good request", %{conn: conn, object: object} do media = conn + |> put_req_header("content-type", "multipart/form-data") |> put("/api/v1/media/#{object.id}", %{"description" => "test-media"}) - |> json_response(:ok) + |> json_response_and_validate_schema(:ok) assert media["description"] == "test-media" assert refresh_record(object).data["name"] == "test-media" end + end - test "returns error when request is bad", %{conn: conn, object: object} do + describe "Get media by id (/api/v1/media/:id)" do + setup do: oauth_access(["read:media"]) + + setup %{user: actor} do + file = %Plug.Upload{ + content_type: "image/jpg", + path: Path.absname("test/fixtures/image.jpg"), + filename: "an_image.jpg" + } + + {:ok, %Object{} = object} = + ActivityPub.upload( + file, + actor: User.ap_id(actor), + description: "test-media" + ) + + [object: object] + end + + test "it returns media object when requested by owner", %{conn: conn, object: object} do media = conn - |> put("/api/v1/media/#{object.id}", %{}) - |> json_response(400) + |> get("/api/v1/media/#{object.id}") + |> json_response_and_validate_schema(:ok) - assert media == %{"error" => "bad_request"} + assert media["description"] == "test-media" + assert media["type"] == "image" + assert media["id"] + end + + test "it returns 403 if media object requested by non-owner", %{object: object, user: user} do + %{conn: conn, user: other_user} = oauth_access(["read:media"]) + + assert object.data["actor"] == user.ap_id + refute user.id == other_user.id + + conn + |> get("/api/v1/media/#{object.id}") + |> json_response(403) end end end diff --git a/test/web/mastodon_api/controllers/notification_controller_test.exs b/test/web/mastodon_api/controllers/notification_controller_test.exs index d9356a844..70ef0e8b5 100644 --- a/test/web/mastodon_api/controllers/notification_controller_test.exs +++ b/test/web/mastodon_api/controllers/notification_controller_test.exs @@ -12,9 +12,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do import Pleroma.Factory - test "does NOT render account/pleroma/relationship if this is disabled by default" do - clear_config([:extensions, :output_relationships_in_statuses_by_default], false) - + test "does NOT render account/pleroma/relationship by default" do %{user: user, conn: conn} = oauth_access(["read:notifications"]) other_user = insert(:user) @@ -56,6 +54,27 @@ test "list of notifications" do assert response == expected_response end + test "by default, does not contain pleroma:chat_mention" do + %{user: user, conn: conn} = oauth_access(["read:notifications"]) + other_user = insert(:user) + + {:ok, _activity} = CommonAPI.post_chat_message(other_user, user, "hey") + + result = + conn + |> get("/api/v1/notifications") + |> json_response_and_validate_schema(200) + + assert [] == result + + result = + conn + |> get("/api/v1/notifications?include_types[]=pleroma:chat_mention") + |> json_response_and_validate_schema(200) + + assert [_] = result + end + test "getting a single notification" do %{user: user, conn: conn} = oauth_access(["read:notifications"]) other_user = insert(:user) @@ -282,8 +301,8 @@ test "filters notifications for Announce activities" do {:ok, unlisted_activity} = CommonAPI.post(other_user, %{status: ".", visibility: "unlisted"}) - {:ok, _, _} = CommonAPI.repeat(public_activity.id, user) - {:ok, _, _} = CommonAPI.repeat(unlisted_activity.id, user) + {:ok, _} = CommonAPI.repeat(public_activity.id, user) + {:ok, _} = CommonAPI.repeat(unlisted_activity.id, user) activity_ids = conn @@ -294,6 +313,33 @@ test "filters notifications for Announce activities" do assert public_activity.id in activity_ids refute unlisted_activity.id in activity_ids end + + test "doesn't return less than the requested amount of records when the user's reply is liked" do + user = insert(:user) + %{user: other_user, conn: conn} = oauth_access(["read:notifications"]) + + {:ok, mention} = + CommonAPI.post(user, %{status: "@#{other_user.nickname}", visibility: "public"}) + + {:ok, activity} = CommonAPI.post(user, %{status: ".", visibility: "public"}) + + {:ok, reply} = + CommonAPI.post(other_user, %{ + status: ".", + visibility: "public", + in_reply_to_status_id: activity.id + }) + + {:ok, _favorite} = CommonAPI.favorite(user, reply.id) + + activity_ids = + conn + |> get("/api/v1/notifications?exclude_visibilities[]=direct&limit=2") + |> json_response_and_validate_schema(200) + |> Enum.map(& &1["status"]["id"]) + + assert [reply.id, mention.id] == activity_ids + end end test "filters notifications using exclude_types" do @@ -303,7 +349,7 @@ test "filters notifications using exclude_types" do {:ok, mention_activity} = CommonAPI.post(other_user, %{status: "hey @#{user.nickname}"}) {:ok, create_activity} = CommonAPI.post(user, %{status: "hey"}) {:ok, favorite_activity} = CommonAPI.favorite(other_user, create_activity.id) - {:ok, reblog_activity, _} = CommonAPI.repeat(create_activity.id, other_user) + {:ok, reblog_activity} = CommonAPI.repeat(create_activity.id, other_user) {:ok, _, _, follow_activity} = CommonAPI.follow(other_user, user) mention_notification_id = get_notification_id_by_activity(mention_activity) @@ -341,7 +387,7 @@ test "filters notifications using include_types" do {:ok, mention_activity} = CommonAPI.post(other_user, %{status: "hey @#{user.nickname}"}) {:ok, create_activity} = CommonAPI.post(user, %{status: "hey"}) {:ok, favorite_activity} = CommonAPI.favorite(other_user, create_activity.id) - {:ok, reblog_activity, _} = CommonAPI.repeat(create_activity.id, other_user) + {:ok, reblog_activity} = CommonAPI.repeat(create_activity.id, other_user) {:ok, _, _, follow_activity} = CommonAPI.follow(other_user, user) mention_notification_id = get_notification_id_by_activity(mention_activity) diff --git a/test/web/mastodon_api/controllers/search_controller_test.exs b/test/web/mastodon_api/controllers/search_controller_test.exs index 7d0cafccc..826f37fbc 100644 --- a/test/web/mastodon_api/controllers/search_controller_test.exs +++ b/test/web/mastodon_api/controllers/search_controller_test.exs @@ -71,10 +71,102 @@ test "search", %{conn: conn} do get(conn, "/api/v2/search?q=天子") |> json_response_and_validate_schema(200) + assert results["hashtags"] == [ + %{"name" => "天子", "url" => "#{Web.base_url()}/tag/天子"} + ] + [status] = results["statuses"] assert status["id"] == to_string(activity.id) end + test "constructs hashtags from search query", %{conn: conn} do + results = + conn + |> get("/api/v2/search?#{URI.encode_query(%{q: "some text with #explicit #hashtags"})}") + |> json_response_and_validate_schema(200) + + assert results["hashtags"] == [ + %{"name" => "explicit", "url" => "#{Web.base_url()}/tag/explicit"}, + %{"name" => "hashtags", "url" => "#{Web.base_url()}/tag/hashtags"} + ] + + results = + conn + |> get("/api/v2/search?#{URI.encode_query(%{q: "john doe JOHN DOE"})}") + |> json_response_and_validate_schema(200) + + assert results["hashtags"] == [ + %{"name" => "john", "url" => "#{Web.base_url()}/tag/john"}, + %{"name" => "doe", "url" => "#{Web.base_url()}/tag/doe"}, + %{"name" => "JohnDoe", "url" => "#{Web.base_url()}/tag/JohnDoe"} + ] + + results = + conn + |> get("/api/v2/search?#{URI.encode_query(%{q: "accident-prone"})}") + |> json_response_and_validate_schema(200) + + assert results["hashtags"] == [ + %{"name" => "accident", "url" => "#{Web.base_url()}/tag/accident"}, + %{"name" => "prone", "url" => "#{Web.base_url()}/tag/prone"}, + %{"name" => "AccidentProne", "url" => "#{Web.base_url()}/tag/AccidentProne"} + ] + + results = + conn + |> get("/api/v2/search?#{URI.encode_query(%{q: "https://shpposter.club/users/shpuld"})}") + |> json_response_and_validate_schema(200) + + assert results["hashtags"] == [ + %{"name" => "shpuld", "url" => "#{Web.base_url()}/tag/shpuld"} + ] + + results = + conn + |> get( + "/api/v2/search?#{ + URI.encode_query(%{ + q: + "https://www.washingtonpost.com/sports/2020/06/10/" <> + "nascar-ban-display-confederate-flag-all-events-properties/" + }) + }" + ) + |> json_response_and_validate_schema(200) + + assert results["hashtags"] == [ + %{"name" => "nascar", "url" => "#{Web.base_url()}/tag/nascar"}, + %{"name" => "ban", "url" => "#{Web.base_url()}/tag/ban"}, + %{"name" => "display", "url" => "#{Web.base_url()}/tag/display"}, + %{"name" => "confederate", "url" => "#{Web.base_url()}/tag/confederate"}, + %{"name" => "flag", "url" => "#{Web.base_url()}/tag/flag"}, + %{"name" => "all", "url" => "#{Web.base_url()}/tag/all"}, + %{"name" => "events", "url" => "#{Web.base_url()}/tag/events"}, + %{"name" => "properties", "url" => "#{Web.base_url()}/tag/properties"}, + %{ + "name" => "NascarBanDisplayConfederateFlagAllEventsProperties", + "url" => + "#{Web.base_url()}/tag/NascarBanDisplayConfederateFlagAllEventsProperties" + } + ] + end + + test "supports pagination of hashtags search results", %{conn: conn} do + results = + conn + |> get( + "/api/v2/search?#{ + URI.encode_query(%{q: "#some #text #with #hashtags", limit: 2, offset: 1}) + }" + ) + |> json_response_and_validate_schema(200) + + assert results["hashtags"] == [ + %{"name" => "text", "url" => "#{Web.base_url()}/tag/text"}, + %{"name" => "with", "url" => "#{Web.base_url()}/tag/with"} + ] + end + test "excludes a blocked users from search results", %{conn: conn} do user = insert(:user) user_smith = insert(:user, %{nickname: "Agent", name: "I love 2hu"}) @@ -179,7 +271,7 @@ test "search", %{conn: conn} do [account | _] = results["accounts"] assert account["id"] == to_string(user_three.id) - assert results["hashtags"] == [] + assert results["hashtags"] == ["2hu"] [status] = results["statuses"] assert status["id"] == to_string(activity.id) diff --git a/test/web/mastodon_api/controllers/status_controller_test.exs b/test/web/mastodon_api/controllers/status_controller_test.exs index a4403132c..a98e939e8 100644 --- a/test/web/mastodon_api/controllers/status_controller_test.exs +++ b/test/web/mastodon_api/controllers/status_controller_test.exs @@ -62,7 +62,7 @@ test "posting a status", %{conn: conn} do |> post("/api/v1/statuses", %{ "status" => "cofe", "spoiler_text" => "2hu", - "sensitive" => "false" + "sensitive" => "0" }) {:ok, ttl} = Cachex.ttl(:idempotency_cache, idempotency_key) @@ -81,7 +81,7 @@ test "posting a status", %{conn: conn} do |> post("/api/v1/statuses", %{ "status" => "cofe", "spoiler_text" => "2hu", - "sensitive" => "false" + "sensitive" => 0 }) assert %{"id" => second_id} = json_response(conn_two, 200) @@ -93,7 +93,7 @@ test "posting a status", %{conn: conn} do |> post("/api/v1/statuses", %{ "status" => "cofe", "spoiler_text" => "2hu", - "sensitive" => "false" + "sensitive" => "False" }) assert %{"id" => third_id} = json_response_and_validate_schema(conn_three, 200) @@ -878,8 +878,8 @@ test "reblogged status for another user" do user3 = insert(:user) {:ok, _} = CommonAPI.favorite(user2, activity.id) {:ok, _bookmark} = Pleroma.Bookmark.create(user2.id, activity.id) - {:ok, reblog_activity1, _object} = CommonAPI.repeat(activity.id, user1) - {:ok, _, _object} = CommonAPI.repeat(activity.id, user2) + {:ok, reblog_activity1} = CommonAPI.repeat(activity.id, user1) + {:ok, _} = CommonAPI.repeat(activity.id, user2) conn_res = build_conn() @@ -917,7 +917,7 @@ test "reblogged status for another user" do test "unreblogs and returns the unreblogged status", %{user: user, conn: conn} do activity = insert(:note_activity) - {:ok, _, _} = CommonAPI.repeat(activity.id, user) + {:ok, _} = CommonAPI.repeat(activity.id, user) conn = conn @@ -1176,7 +1176,7 @@ test "replaces missing description with an empty string", %{conn: conn, user: us end test "bookmarks" do - bookmarks_uri = "/api/v1/bookmarks?with_relationships=true" + bookmarks_uri = "/api/v1/bookmarks" %{conn: conn} = oauth_access(["write:bookmarks", "read:bookmarks"]) author = insert(:user) @@ -1427,7 +1427,7 @@ test "requires authentication for private posts", %{user: user} do test "returns users who have reblogged the status", %{conn: conn, activity: activity} do other_user = insert(:user) - {:ok, _, _} = CommonAPI.repeat(activity.id, other_user) + {:ok, _} = CommonAPI.repeat(activity.id, other_user) response = conn @@ -1458,7 +1458,7 @@ test "does not return users who have reblogged the status but are blocked", %{ other_user = insert(:user) {:ok, _user_relationship} = User.block(user, other_user) - {:ok, _, _} = CommonAPI.repeat(activity.id, other_user) + {:ok, _} = CommonAPI.repeat(activity.id, other_user) response = conn @@ -1469,12 +1469,12 @@ test "does not return users who have reblogged the status but are blocked", %{ end test "does not return users who have reblogged the status privately", %{ - conn: conn, - activity: activity + conn: conn } do other_user = insert(:user) + {:ok, activity} = CommonAPI.post(other_user, %{status: "my secret post"}) - {:ok, _, _} = CommonAPI.repeat(activity.id, other_user, %{visibility: "private"}) + {:ok, _} = CommonAPI.repeat(activity.id, other_user, %{visibility: "private"}) response = conn @@ -1486,7 +1486,7 @@ test "does not return users who have reblogged the status privately", %{ test "does not fail on an unauthenticated request", %{activity: activity} do other_user = insert(:user) - {:ok, _, _} = CommonAPI.repeat(activity.id, other_user) + {:ok, _} = CommonAPI.repeat(activity.id, other_user) response = build_conn() @@ -1541,14 +1541,49 @@ test "context" do } = response end + test "favorites paginate correctly" do + %{user: user, conn: conn} = oauth_access(["read:favourites"]) + other_user = insert(:user) + {:ok, first_post} = CommonAPI.post(other_user, %{status: "bla"}) + {:ok, second_post} = CommonAPI.post(other_user, %{status: "bla"}) + {:ok, third_post} = CommonAPI.post(other_user, %{status: "bla"}) + + {:ok, _first_favorite} = CommonAPI.favorite(user, third_post.id) + {:ok, _second_favorite} = CommonAPI.favorite(user, first_post.id) + {:ok, third_favorite} = CommonAPI.favorite(user, second_post.id) + + result = + conn + |> get("/api/v1/favourites?limit=1") + + assert [%{"id" => post_id}] = json_response_and_validate_schema(result, 200) + assert post_id == second_post.id + + # Using the header for pagination works correctly + [next, _] = get_resp_header(result, "link") |> hd() |> String.split(", ") + [_, max_id] = Regex.run(~r/max_id=([^&]+)/, next) + + assert max_id == third_favorite.id + + result = + conn + |> get("/api/v1/favourites?max_id=#{max_id}") + + assert [%{"id" => first_post_id}, %{"id" => third_post_id}] = + json_response_and_validate_schema(result, 200) + + assert first_post_id == first_post.id + assert third_post_id == third_post.id + end + test "returns the favorites of a user" do %{user: user, conn: conn} = oauth_access(["read:favourites"]) other_user = insert(:user) {:ok, _} = CommonAPI.post(other_user, %{status: "bla"}) - {:ok, activity} = CommonAPI.post(other_user, %{status: "traps are happy"}) + {:ok, activity} = CommonAPI.post(other_user, %{status: "trees are happy"}) - {:ok, _} = CommonAPI.favorite(user, activity.id) + {:ok, last_like} = CommonAPI.favorite(user, activity.id) first_conn = get(conn, "/api/v1/favourites") @@ -1566,9 +1601,7 @@ test "returns the favorites of a user" do {:ok, _} = CommonAPI.favorite(user, second_activity.id) - last_like = status["id"] - - second_conn = get(conn, "/api/v1/favourites?since_id=#{last_like}") + second_conn = get(conn, "/api/v1/favourites?since_id=#{last_like.id}") assert [second_status] = json_response_and_validate_schema(second_conn, 200) assert second_status["id"] == to_string(second_activity.id) diff --git a/test/web/mastodon_api/controllers/subscription_controller_test.exs b/test/web/mastodon_api/controllers/subscription_controller_test.exs index 4aa260663..d36bb1ae8 100644 --- a/test/web/mastodon_api/controllers/subscription_controller_test.exs +++ b/test/web/mastodon_api/controllers/subscription_controller_test.exs @@ -58,7 +58,9 @@ test "successful creation", %{conn: conn} do result = conn |> post("/api/v1/push/subscription", %{ - "data" => %{"alerts" => %{"mention" => true, "test" => true}}, + "data" => %{ + "alerts" => %{"mention" => true, "test" => true, "pleroma:chat_mention" => true} + }, "subscription" => @sub }) |> json_response_and_validate_schema(200) @@ -66,7 +68,7 @@ test "successful creation", %{conn: conn} do [subscription] = Pleroma.Repo.all(Subscription) assert %{ - "alerts" => %{"mention" => true}, + "alerts" => %{"mention" => true, "pleroma:chat_mention" => true}, "endpoint" => subscription.endpoint, "id" => to_string(subscription.id), "server_key" => @server_key diff --git a/test/web/mastodon_api/controllers/timeline_controller_test.exs b/test/web/mastodon_api/controllers/timeline_controller_test.exs index f8b9289f3..f069390c1 100644 --- a/test/web/mastodon_api/controllers/timeline_controller_test.exs +++ b/test/web/mastodon_api/controllers/timeline_controller_test.exs @@ -20,12 +20,10 @@ defmodule Pleroma.Web.MastodonAPI.TimelineControllerTest do describe "home" do setup do: oauth_access(["read:statuses"]) - test "does NOT render account/pleroma/relationship if this is disabled by default", %{ + test "does NOT embed account/pleroma/relationship in statuses", %{ user: user, conn: conn } do - clear_config([:extensions, :output_relationships_in_statuses_by_default], false) - other_user = insert(:user) {:ok, _} = CommonAPI.post(other_user, %{status: "hi @#{user.nickname}"}) @@ -41,72 +39,6 @@ test "does NOT render account/pleroma/relationship if this is disabled by defaul end) end - test "the home timeline", %{user: user, conn: conn} do - uri = "/api/v1/timelines/home?with_relationships=1" - - following = insert(:user, nickname: "followed") - third_user = insert(:user, nickname: "repeated") - - {:ok, _activity} = CommonAPI.post(following, %{status: "post"}) - {:ok, activity} = CommonAPI.post(third_user, %{status: "repeated post"}) - {:ok, _, _} = CommonAPI.repeat(activity.id, following) - - ret_conn = get(conn, uri) - - assert Enum.empty?(json_response_and_validate_schema(ret_conn, :ok)) - - {:ok, _user} = User.follow(user, following) - - ret_conn = get(conn, uri) - - assert [ - %{ - "reblog" => %{ - "content" => "repeated post", - "account" => %{ - "pleroma" => %{ - "relationship" => %{"following" => false, "followed_by" => false} - } - } - }, - "account" => %{"pleroma" => %{"relationship" => %{"following" => true}}} - }, - %{ - "content" => "post", - "account" => %{ - "acct" => "followed", - "pleroma" => %{"relationship" => %{"following" => true}} - } - } - ] = json_response_and_validate_schema(ret_conn, :ok) - - {:ok, _user} = User.follow(third_user, user) - - ret_conn = get(conn, uri) - - assert [ - %{ - "reblog" => %{ - "content" => "repeated post", - "account" => %{ - "acct" => "repeated", - "pleroma" => %{ - "relationship" => %{"following" => false, "followed_by" => true} - } - } - }, - "account" => %{"pleroma" => %{"relationship" => %{"following" => true}}} - }, - %{ - "content" => "post", - "account" => %{ - "acct" => "followed", - "pleroma" => %{"relationship" => %{"following" => true}} - } - } - ] = json_response_and_validate_schema(ret_conn, :ok) - end - test "the home timeline when the direct messages are excluded", %{user: user, conn: conn} do {:ok, public_activity} = CommonAPI.post(user, %{status: ".", visibility: "public"}) {:ok, direct_activity} = CommonAPI.post(user, %{status: ".", visibility: "direct"}) @@ -128,9 +60,9 @@ test "the home timeline when the direct messages are excluded", %{user: user, co describe "public" do @tag capture_log: true test "the public timeline", %{conn: conn} do - following = insert(:user) + user = insert(:user) - {:ok, _activity} = CommonAPI.post(following, %{status: "test"}) + {:ok, activity} = CommonAPI.post(user, %{status: "test"}) _activity = insert(:note_activity, local: false) @@ -145,6 +77,13 @@ test "the public timeline", %{conn: conn} do conn = get(build_conn(), "/api/v1/timelines/public?local=1") assert [%{"content" => "test"}] = json_response_and_validate_schema(conn, :ok) + + # does not contain repeats + {:ok, _} = CommonAPI.repeat(activity.id, user) + + conn = get(build_conn(), "/api/v1/timelines/public?local=true") + + assert [_] = json_response_and_validate_schema(conn, :ok) end test "the public timeline includes only public statuses for an authenticated user" do @@ -158,6 +97,49 @@ test "the public timeline includes only public statuses for an authenticated use res_conn = get(conn, "/api/v1/timelines/public") assert length(json_response_and_validate_schema(res_conn, 200)) == 1 end + + test "doesn't return replies if follower is posting with blocked user" do + %{conn: conn, user: blocker} = oauth_access(["read:statuses"]) + [blockee, friend] = insert_list(2, :user) + {:ok, blocker} = User.follow(blocker, friend) + {:ok, _} = User.block(blocker, blockee) + + conn = assign(conn, :user, blocker) + + {:ok, %{id: activity_id} = activity} = CommonAPI.post(friend, %{status: "hey!"}) + + {:ok, reply_from_blockee} = + CommonAPI.post(blockee, %{status: "heya", in_reply_to_status_id: activity}) + + {:ok, _reply_from_friend} = + CommonAPI.post(friend, %{status: "status", in_reply_to_status_id: reply_from_blockee}) + + res_conn = get(conn, "/api/v1/timelines/public") + [%{"id" => ^activity_id}] = json_response_and_validate_schema(res_conn, 200) + end + + test "doesn't return replies if follow is posting with users from blocked domain" do + %{conn: conn, user: blocker} = oauth_access(["read:statuses"]) + friend = insert(:user) + blockee = insert(:user, ap_id: "https://example.com/users/blocked") + {:ok, blocker} = User.follow(blocker, friend) + {:ok, blocker} = User.block_domain(blocker, "example.com") + + conn = assign(conn, :user, blocker) + + {:ok, %{id: activity_id} = activity} = CommonAPI.post(friend, %{status: "hey!"}) + + {:ok, reply_from_blockee} = + CommonAPI.post(blockee, %{status: "heya", in_reply_to_status_id: activity}) + + {:ok, _reply_from_friend} = + CommonAPI.post(friend, %{status: "status", in_reply_to_status_id: reply_from_blockee}) + + res_conn = get(conn, "/api/v1/timelines/public") + + activities = json_response_and_validate_schema(res_conn, 200) + [%{"id" => ^activity_id}] = activities + end end defp local_and_remote_activities do diff --git a/test/web/mastodon_api/views/account_view_test.exs b/test/web/mastodon_api/views/account_view_test.exs index 69ddbb5d4..80b1f734c 100644 --- a/test/web/mastodon_api/views/account_view_test.exs +++ b/test/web/mastodon_api/views/account_view_test.exs @@ -33,7 +33,8 @@ test "Represent a user account" do bio: "valid html. a
b
c
d
f '&<>\"", inserted_at: ~N[2017-08-15 15:47:06.597036], - emoji: %{"karjalanpiirakka" => "/file.png"} + emoji: %{"karjalanpiirakka" => "/file.png"}, + raw_bio: "valid html. a\nb\nc\nd\nf '&<>\"" }) expected = %{ @@ -54,10 +55,10 @@ test "Represent a user account" do header_static: "http://localhost:4001/images/banner.png", emojis: [ %{ - "static_url" => "/file.png", - "url" => "/file.png", - "shortcode" => "karjalanpiirakka", - "visible_in_picker" => false + static_url: "/file.png", + url: "/file.png", + shortcode: "karjalanpiirakka", + visible_in_picker: false } ], fields: [], @@ -72,6 +73,7 @@ test "Represent a user account" do fields: [] }, pleroma: %{ + ap_id: user.ap_id, background_image: "https://example.com/images/asuka_hospital.png", confirmation_pending: false, tags: [], @@ -148,6 +150,7 @@ test "Represent a Service(bot) account" do fields: [] }, pleroma: %{ + ap_id: user.ap_id, background_image: nil, confirmation_pending: false, tags: [], @@ -302,82 +305,6 @@ test "represent a relationship for the user with a pending follow request" do end end - test "represent an embedded relationship" do - user = - insert(:user, %{ - follower_count: 0, - note_count: 5, - actor_type: "Service", - nickname: "shp@shitposter.club", - inserted_at: ~N[2017-08-15 15:47:06.597036] - }) - - other_user = insert(:user) - {:ok, other_user} = User.follow(other_user, user) - {:ok, _user_relationship} = User.block(other_user, user) - {:ok, _} = User.follow(insert(:user), user) - - expected = %{ - id: to_string(user.id), - username: "shp", - acct: user.nickname, - display_name: user.name, - locked: false, - created_at: "2017-08-15T15:47:06.000Z", - followers_count: 1, - following_count: 0, - statuses_count: 5, - note: user.bio, - url: user.ap_id, - avatar: "http://localhost:4001/images/avi.png", - avatar_static: "http://localhost:4001/images/avi.png", - header: "http://localhost:4001/images/banner.png", - header_static: "http://localhost:4001/images/banner.png", - emojis: [], - fields: [], - bot: true, - source: %{ - note: user.bio, - sensitive: false, - pleroma: %{ - actor_type: "Service", - discoverable: false - }, - fields: [] - }, - pleroma: %{ - background_image: nil, - confirmation_pending: false, - tags: [], - is_admin: false, - is_moderator: false, - hide_favorites: true, - hide_followers: false, - hide_follows: false, - hide_followers_count: false, - hide_follows_count: false, - relationship: %{ - id: to_string(user.id), - following: false, - followed_by: false, - blocking: true, - blocked_by: false, - subscribing: false, - muting: false, - muting_notifications: false, - requested: false, - domain_blocking: false, - showing_reblogs: true, - endorsed: false - }, - skip_thread_containment: false - } - } - - assert expected == - AccountView.render("show.json", %{user: refresh_record(user), for: other_user}) - end - test "returns the settings store if the requesting user is the represented user and it's requested specifically" do user = insert(:user, pleroma_settings_store: %{fe: "test"}) @@ -567,4 +494,31 @@ test "shows non-zero when historical unapproved requests are present" do AccountView.render("show.json", %{user: user, for: user}) end end + + test "uses mediaproxy urls when it's enabled" do + clear_config([:media_proxy, :enabled], true) + + user = + insert(:user, + avatar: %{"url" => [%{"href" => "https://evil.website/avatar.png"}]}, + banner: %{"url" => [%{"href" => "https://evil.website/banner.png"}]}, + emoji: %{"joker_smile" => "https://evil.website/society.png"} + ) + + AccountView.render("show.json", %{user: user}) + |> Enum.all?(fn + {key, url} when key in [:avatar, :avatar_static, :header, :header_static] -> + String.starts_with?(url, Pleroma.Web.base_url()) + + {:emojis, emojis} -> + Enum.all?(emojis, fn %{url: url, static_url: static_url} -> + String.starts_with?(url, Pleroma.Web.base_url()) && + String.starts_with?(static_url, Pleroma.Web.base_url()) + end) + + _ -> + true + end) + |> assert() + end end diff --git a/test/web/mastodon_api/views/conversation_view_test.exs b/test/web/mastodon_api/views/conversation_view_test.exs index 6f84366f8..2e8203c9b 100644 --- a/test/web/mastodon_api/views/conversation_view_test.exs +++ b/test/web/mastodon_api/views/conversation_view_test.exs @@ -15,8 +15,17 @@ test "represents a Mastodon Conversation entity" do user = insert(:user) other_user = insert(:user) + {:ok, parent} = CommonAPI.post(user, %{status: "parent"}) + {:ok, activity} = - CommonAPI.post(user, %{status: "hey @#{other_user.nickname}", visibility: "direct"}) + CommonAPI.post(user, %{ + status: "hey @#{other_user.nickname}", + visibility: "direct", + in_reply_to_id: parent.id + }) + + {:ok, _reply_activity} = + CommonAPI.post(user, %{status: "hu", visibility: "public", in_reply_to_id: parent.id}) [participation] = Participation.for_user_with_last_activity_id(user) diff --git a/test/web/mastodon_api/views/notification_view_test.exs b/test/web/mastodon_api/views/notification_view_test.exs index 04a774d17..8e0e58538 100644 --- a/test/web/mastodon_api/views/notification_view_test.exs +++ b/test/web/mastodon_api/views/notification_view_test.exs @@ -6,7 +6,10 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do use Pleroma.DataCase alias Pleroma.Activity + alias Pleroma.Chat + alias Pleroma.Chat.MessageReference alias Pleroma.Notification + alias Pleroma.Object alias Pleroma.Repo alias Pleroma.User alias Pleroma.Web.CommonAPI @@ -14,6 +17,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do alias Pleroma.Web.MastodonAPI.AccountView alias Pleroma.Web.MastodonAPI.NotificationView alias Pleroma.Web.MastodonAPI.StatusView + alias Pleroma.Web.PleromaAPI.Chat.MessageReferenceView import Pleroma.Factory defp test_notifications_rendering(notifications, user, expected_result) do @@ -31,6 +35,30 @@ defp test_notifications_rendering(notifications, user, expected_result) do assert expected_result == result end + test "ChatMessage notification" do + user = insert(:user) + recipient = insert(:user) + {:ok, activity} = CommonAPI.post_chat_message(user, recipient, "what's up my dude") + + {:ok, [notification]} = Notification.create_notifications(activity) + + object = Object.normalize(activity) + chat = Chat.get(recipient.id, user.ap_id) + + cm_ref = MessageReference.for_chat_and_object(chat, object) + + expected = %{ + id: to_string(notification.id), + pleroma: %{is_seen: false, is_muted: false}, + type: "pleroma:chat_mention", + account: AccountView.render("show.json", %{user: user, for: recipient}), + chat_message: MessageReferenceView.render("show.json", %{chat_message_reference: cm_ref}), + created_at: Utils.to_masto_date(notification.inserted_at) + } + + test_notifications_rendering([notification], recipient, [expected]) + end + test "Mention notification" do user = insert(:user) mentioned_user = insert(:user) @@ -40,9 +68,13 @@ test "Mention notification" do expected = %{ id: to_string(notification.id), - pleroma: %{is_seen: false}, + pleroma: %{is_seen: false, is_muted: false}, type: "mention", - account: AccountView.render("show.json", %{user: user, for: mentioned_user}), + account: + AccountView.render("show.json", %{ + user: user, + for: mentioned_user + }), status: StatusView.render("show.json", %{activity: activity, for: mentioned_user}), created_at: Utils.to_masto_date(notification.inserted_at) } @@ -60,7 +92,7 @@ test "Favourite notification" do expected = %{ id: to_string(notification.id), - pleroma: %{is_seen: false}, + pleroma: %{is_seen: false, is_muted: false}, type: "favourite", account: AccountView.render("show.json", %{user: another_user, for: user}), status: StatusView.render("show.json", %{activity: create_activity, for: user}), @@ -74,13 +106,13 @@ test "Reblog notification" do user = insert(:user) another_user = insert(:user) {:ok, create_activity} = CommonAPI.post(user, %{status: "hey"}) - {:ok, reblog_activity, _object} = CommonAPI.repeat(create_activity.id, another_user) + {:ok, reblog_activity} = CommonAPI.repeat(create_activity.id, another_user) {:ok, [notification]} = Notification.create_notifications(reblog_activity) reblog_activity = Activity.get_by_id(create_activity.id) expected = %{ id: to_string(notification.id), - pleroma: %{is_seen: false}, + pleroma: %{is_seen: false, is_muted: false}, type: "reblog", account: AccountView.render("show.json", %{user: another_user, for: user}), status: StatusView.render("show.json", %{activity: reblog_activity, for: user}), @@ -98,7 +130,7 @@ test "Follow notification" do expected = %{ id: to_string(notification.id), - pleroma: %{is_seen: false}, + pleroma: %{is_seen: false, is_muted: false}, type: "follow", account: AccountView.render("show.json", %{user: follower, for: followed}), created_at: Utils.to_masto_date(notification.inserted_at) @@ -107,9 +139,7 @@ test "Follow notification" do test_notifications_rendering([notification], followed, [expected]) User.perform(:delete, follower) - notification = Notification |> Repo.one() |> Repo.preload(:activity) - - test_notifications_rendering([notification], followed, []) + refute Repo.one(Notification) end @tag capture_log: true @@ -141,7 +171,7 @@ test "Move notification" do expected = %{ id: to_string(notification.id), - pleroma: %{is_seen: false}, + pleroma: %{is_seen: false, is_muted: false}, type: "move", account: AccountView.render("show.json", %{user: old_user, for: follower}), target: AccountView.render("show.json", %{user: new_user, for: follower}), @@ -166,7 +196,7 @@ test "EmojiReact notification" do expected = %{ id: to_string(notification.id), - pleroma: %{is_seen: false}, + pleroma: %{is_seen: false, is_muted: false}, type: "pleroma:emoji_reaction", emoji: "☕", account: AccountView.render("show.json", %{user: other_user, for: user}), @@ -176,4 +206,26 @@ test "EmojiReact notification" do test_notifications_rendering([notification], user, [expected]) end + + test "muted notification" do + user = insert(:user) + another_user = insert(:user) + + {:ok, _} = Pleroma.UserRelationship.create_mute(user, another_user) + {:ok, create_activity} = CommonAPI.post(user, %{status: "hey"}) + {:ok, favorite_activity} = CommonAPI.favorite(another_user, create_activity.id) + {:ok, [notification]} = Notification.create_notifications(favorite_activity) + create_activity = Activity.get_by_id(create_activity.id) + + expected = %{ + id: to_string(notification.id), + pleroma: %{is_seen: false, is_muted: true}, + type: "favourite", + account: AccountView.render("show.json", %{user: another_user, for: user}), + status: StatusView.render("show.json", %{activity: create_activity, for: user}), + created_at: Utils.to_masto_date(notification.inserted_at) + } + + test_notifications_rendering([notification], user, [expected]) + end end diff --git a/test/web/mastodon_api/views/status_view_test.exs b/test/web/mastodon_api/views/status_view_test.exs index ffad65b01..f90a0c273 100644 --- a/test/web/mastodon_api/views/status_view_test.exs +++ b/test/web/mastodon_api/views/status_view_test.exs @@ -226,7 +226,8 @@ test "a note activity" do expires_at: nil, direct_conversation_id: nil, thread_muted: false, - emoji_reactions: [] + emoji_reactions: [], + parent_visible: false } } @@ -442,7 +443,7 @@ test "a reblog" do user = insert(:user) activity = insert(:note_activity) - {:ok, reblog, _} = CommonAPI.repeat(activity.id, user) + {:ok, reblog} = CommonAPI.repeat(activity.id, user) represented = StatusView.render("show.json", %{for: user, activity: reblog}) @@ -576,7 +577,7 @@ test "a rich media card with all relevant data renders correctly" do end end - test "embeds a relationship in the account" do + test "does not embed a relationship in the account" do user = insert(:user) other_user = insert(:user) @@ -587,13 +588,11 @@ test "embeds a relationship in the account" do result = StatusView.render("show.json", %{activity: activity, for: other_user}) - assert result[:account][:pleroma][:relationship] == - AccountView.render("relationship.json", %{user: other_user, target: user}) - + assert result[:account][:pleroma][:relationship] == %{} assert_schema(result, "Status", Pleroma.Web.ApiSpec.spec()) end - test "embeds a relationship in the account in reposts" do + test "does not embed a relationship in the account in reposts" do user = insert(:user) other_user = insert(:user) @@ -602,16 +601,12 @@ test "embeds a relationship in the account in reposts" do status: "˙˙ɐʎns" }) - {:ok, activity, _object} = CommonAPI.repeat(activity.id, other_user) + {:ok, activity} = CommonAPI.repeat(activity.id, other_user) result = StatusView.render("show.json", %{activity: activity, for: user}) - assert result[:account][:pleroma][:relationship] == - AccountView.render("relationship.json", %{user: user, target: other_user}) - - assert result[:reblog][:account][:pleroma][:relationship] == - AccountView.render("relationship.json", %{user: user, target: user}) - + assert result[:account][:pleroma][:relationship] == %{} + assert result[:reblog][:account][:pleroma][:relationship] == %{} assert_schema(result, "Status", Pleroma.Web.ApiSpec.spec()) end @@ -627,13 +622,19 @@ test "visibility/list" do assert status.visibility == "list" end - test "successfully renders a Listen activity (pleroma extension)" do - listen_activity = insert(:listen) + test "has a field for parent visibility" do + user = insert(:user) + poster = insert(:user) - status = StatusView.render("listen.json", activity: listen_activity) + {:ok, invisible} = CommonAPI.post(poster, %{status: "hey", visibility: "private"}) - assert status.length == listen_activity.data["object"]["length"] - assert status.title == listen_activity.data["object"]["title"] - assert_schema(status, "Status", Pleroma.Web.ApiSpec.spec()) + {:ok, visible} = + CommonAPI.post(poster, %{status: "hey", visibility: "private", in_reply_to_id: invisible.id}) + + status = StatusView.render("show.json", activity: visible, for: user) + refute status.pleroma.parent_visible + + status = StatusView.render("show.json", activity: visible, for: poster) + assert status.pleroma.parent_visible end end diff --git a/test/web/media_proxy/invalidation_test.exs b/test/web/media_proxy/invalidation_test.exs new file mode 100644 index 000000000..926ae74ca --- /dev/null +++ b/test/web/media_proxy/invalidation_test.exs @@ -0,0 +1,64 @@ +defmodule Pleroma.Web.MediaProxy.InvalidationTest do + use ExUnit.Case + use Pleroma.Tests.Helpers + + alias Pleroma.Config + alias Pleroma.Web.MediaProxy.Invalidation + + import ExUnit.CaptureLog + import Mock + import Tesla.Mock + + setup do: clear_config([:media_proxy]) + + setup do + on_exit(fn -> Cachex.clear(:banned_urls_cache) end) + end + + describe "Invalidation.Http" do + test "perform request to clear cache" do + Config.put([:media_proxy, :enabled], false) + Config.put([:media_proxy, :invalidation, :enabled], true) + Config.put([:media_proxy, :invalidation, :provider], Invalidation.Http) + + Config.put([Invalidation.Http], method: :purge, headers: [{"x-refresh", 1}]) + image_url = "http://example.com/media/example.jpg" + Pleroma.Web.MediaProxy.put_in_banned_urls(image_url) + + mock(fn + %{ + method: :purge, + url: "http://example.com/media/example.jpg", + headers: [{"x-refresh", 1}] + } -> + %Tesla.Env{status: 200} + end) + + assert capture_log(fn -> + assert Pleroma.Web.MediaProxy.in_banned_urls(image_url) + assert Invalidation.purge([image_url]) == {:ok, [image_url]} + assert Pleroma.Web.MediaProxy.in_banned_urls(image_url) + end) =~ "Running cache purge: [\"#{image_url}\"]" + end + end + + describe "Invalidation.Script" do + test "run script to clear cache" do + Config.put([:media_proxy, :enabled], false) + Config.put([:media_proxy, :invalidation, :enabled], true) + Config.put([:media_proxy, :invalidation, :provider], Invalidation.Script) + Config.put([Invalidation.Script], script_path: "purge-nginx") + + image_url = "http://example.com/media/example.jpg" + Pleroma.Web.MediaProxy.put_in_banned_urls(image_url) + + with_mocks [{System, [], [cmd: fn _, _ -> {"ok", 0} end]}] do + assert capture_log(fn -> + assert Pleroma.Web.MediaProxy.in_banned_urls(image_url) + assert Invalidation.purge([image_url]) == {:ok, [image_url]} + assert Pleroma.Web.MediaProxy.in_banned_urls(image_url) + end) =~ "Running cache purge: [\"#{image_url}\"]" + end + end + end +end diff --git a/test/web/media_proxy/invalidations/http_test.exs b/test/web/media_proxy/invalidations/http_test.exs new file mode 100644 index 000000000..a1bef5237 --- /dev/null +++ b/test/web/media_proxy/invalidations/http_test.exs @@ -0,0 +1,39 @@ +defmodule Pleroma.Web.MediaProxy.Invalidation.HttpTest do + use ExUnit.Case + alias Pleroma.Web.MediaProxy.Invalidation + + import ExUnit.CaptureLog + import Tesla.Mock + + setup do + on_exit(fn -> Cachex.clear(:banned_urls_cache) end) + end + + test "logs hasn't error message when request is valid" do + mock(fn + %{method: :purge, url: "http://example.com/media/example.jpg"} -> + %Tesla.Env{status: 200} + end) + + refute capture_log(fn -> + assert Invalidation.Http.purge( + ["http://example.com/media/example.jpg"], + [] + ) == {:ok, ["http://example.com/media/example.jpg"]} + end) =~ "Error while cache purge" + end + + test "it write error message in logs when request invalid" do + mock(fn + %{method: :purge, url: "http://example.com/media/example1.jpg"} -> + %Tesla.Env{status: 404} + end) + + assert capture_log(fn -> + assert Invalidation.Http.purge( + ["http://example.com/media/example1.jpg"], + [] + ) == {:ok, ["http://example.com/media/example1.jpg"]} + end) =~ "Error while cache purge: url - http://example.com/media/example1.jpg" + end +end diff --git a/test/web/media_proxy/invalidations/script_test.exs b/test/web/media_proxy/invalidations/script_test.exs new file mode 100644 index 000000000..51833ab18 --- /dev/null +++ b/test/web/media_proxy/invalidations/script_test.exs @@ -0,0 +1,26 @@ +defmodule Pleroma.Web.MediaProxy.Invalidation.ScriptTest do + use ExUnit.Case + alias Pleroma.Web.MediaProxy.Invalidation + + import ExUnit.CaptureLog + + setup do + on_exit(fn -> Cachex.clear(:banned_urls_cache) end) + end + + test "it logger error when script not found" do + assert capture_log(fn -> + assert Invalidation.Script.purge( + ["http://example.com/media/example.jpg"], + script_path: "./example" + ) == {:error, "%ErlangError{original: :enoent}"} + end) =~ "Error while cache purge: %ErlangError{original: :enoent}" + + capture_log(fn -> + assert Invalidation.Script.purge( + ["http://example.com/media/example.jpg"], + [] + ) == {:error, "\"not found script path\""} + end) + end +end diff --git a/test/web/media_proxy/media_proxy_controller_test.exs b/test/web/media_proxy/media_proxy_controller_test.exs index da79d38a5..d61cef83b 100644 --- a/test/web/media_proxy/media_proxy_controller_test.exs +++ b/test/web/media_proxy/media_proxy_controller_test.exs @@ -10,6 +10,10 @@ defmodule Pleroma.Web.MediaProxy.MediaProxyControllerTest do setup do: clear_config(:media_proxy) setup do: clear_config([Pleroma.Web.Endpoint, :secret_key_base]) + setup do + on_exit(fn -> Cachex.clear(:banned_urls_cache) end) + end + test "it returns 404 when MediaProxy disabled", %{conn: conn} do Config.put([:media_proxy, :enabled], false) @@ -66,4 +70,16 @@ test "it performs ReverseProxy.call when signature valid", %{conn: conn} do assert %Plug.Conn{status: :success} = get(conn, url) end end + + test "it returns 404 when url contains in banned_urls cache", %{conn: conn} do + Config.put([:media_proxy, :enabled], true) + Config.put([Pleroma.Web.Endpoint, :secret_key_base], "00000000000") + url = Pleroma.Web.MediaProxy.encode_url("https://google.fn/test.png") + Pleroma.Web.MediaProxy.put_in_banned_urls("https://google.fn/test.png") + + with_mock Pleroma.ReverseProxy, + call: fn _conn, _url, _opts -> %Plug.Conn{status: :success} end do + assert %Plug.Conn{status: 404, resp_body: "Not Found"} = get(conn, url) + end + end end diff --git a/test/web/media_proxy/media_proxy_test.exs b/test/web/media_proxy/media_proxy_test.exs index 69c2d5dae..69d2a71a6 100644 --- a/test/web/media_proxy/media_proxy_test.exs +++ b/test/web/media_proxy/media_proxy_test.exs @@ -124,15 +124,7 @@ test "encoded url are tried to match for proxy as `conn.request_path` encodes th end test "uses the configured base_url" do - base_url = Pleroma.Config.get([:media_proxy, :base_url]) - - if base_url do - on_exit(fn -> - Pleroma.Config.put([:media_proxy, :base_url], base_url) - end) - end - - Pleroma.Config.put([:media_proxy, :base_url], "https://cache.pleroma.social") + clear_config([:media_proxy, :base_url], "https://cache.pleroma.social") url = "https://pleroma.soykaf.com/static/logo.png" encoded = url(url) @@ -213,8 +205,8 @@ test "mediaproxy whitelist" do end test "does not change whitelisted urls" do - Pleroma.Config.put([:media_proxy, :whitelist], ["mycdn.akamai.com"]) - Pleroma.Config.put([:media_proxy, :base_url], "https://cache.pleroma.social") + clear_config([:media_proxy, :whitelist], ["mycdn.akamai.com"]) + clear_config([:media_proxy, :base_url], "https://cache.pleroma.social") media_url = "https://mycdn.akamai.com" diff --git a/test/web/node_info_test.exs b/test/web/node_info_test.exs index 9bcc07b37..06b33607f 100644 --- a/test/web/node_info_test.exs +++ b/test/web/node_info_test.exs @@ -67,10 +67,10 @@ test "returns software.repository field in nodeinfo 2.1", %{conn: conn} do end test "returns fieldsLimits field", %{conn: conn} do - Config.put([:instance, :max_account_fields], 10) - Config.put([:instance, :max_remote_account_fields], 15) - Config.put([:instance, :account_field_name_length], 255) - Config.put([:instance, :account_field_value_length], 2048) + clear_config([:instance, :max_account_fields], 10) + clear_config([:instance, :max_remote_account_fields], 15) + clear_config([:instance, :account_field_name_length], 255) + clear_config([:instance, :account_field_value_length], 2048) response = conn @@ -84,8 +84,7 @@ test "returns fieldsLimits field", %{conn: conn} do end test "it returns the safe_dm_mentions feature if enabled", %{conn: conn} do - option = Config.get([:instance, :safe_dm_mentions]) - Config.put([:instance, :safe_dm_mentions], true) + clear_config([:instance, :safe_dm_mentions], true) response = conn @@ -102,8 +101,6 @@ test "it returns the safe_dm_mentions feature if enabled", %{conn: conn} do |> json_response(:ok) refute "safe_dm_mentions" in response["metadata"]["features"] - - Config.put([:instance, :safe_dm_mentions], option) end describe "`metadata/federation/enabled`" do @@ -145,7 +142,8 @@ test "it shows default features flags", %{conn: conn} do "shareable_emoji_packs", "multifetch", "pleroma_emoji_reactions", - "pleroma:api/v1/notifications:include_types_filter" + "pleroma:api/v1/notifications:include_types_filter", + "pleroma_chat_messages" ] assert MapSet.subset?( @@ -155,14 +153,11 @@ test "it shows default features flags", %{conn: conn} do end test "it shows MRF transparency data if enabled", %{conn: conn} do - config = Config.get([:instance, :rewrite_policy]) - Config.put([:instance, :rewrite_policy], [Pleroma.Web.ActivityPub.MRF.SimplePolicy]) - - option = Config.get([:instance, :mrf_transparency]) - Config.put([:instance, :mrf_transparency], true) + clear_config([:mrf, :policies], [Pleroma.Web.ActivityPub.MRF.SimplePolicy]) + clear_config([:mrf, :transparency], true) simple_config = %{"reject" => ["example.com"]} - Config.put(:mrf_simple, simple_config) + clear_config(:mrf_simple, simple_config) response = conn @@ -170,26 +165,17 @@ test "it shows MRF transparency data if enabled", %{conn: conn} do |> json_response(:ok) assert response["metadata"]["federation"]["mrf_simple"] == simple_config - - Config.put([:instance, :rewrite_policy], config) - Config.put([:instance, :mrf_transparency], option) - Config.put(:mrf_simple, %{}) end test "it performs exclusions from MRF transparency data if configured", %{conn: conn} do - config = Config.get([:instance, :rewrite_policy]) - Config.put([:instance, :rewrite_policy], [Pleroma.Web.ActivityPub.MRF.SimplePolicy]) - - option = Config.get([:instance, :mrf_transparency]) - Config.put([:instance, :mrf_transparency], true) - - exclusions = Config.get([:instance, :mrf_transparency_exclusions]) - Config.put([:instance, :mrf_transparency_exclusions], ["other.site"]) + clear_config([:mrf, :policies], [Pleroma.Web.ActivityPub.MRF.SimplePolicy]) + clear_config([:mrf, :transparency], true) + clear_config([:mrf, :transparency_exclusions], ["other.site"]) simple_config = %{"reject" => ["example.com", "other.site"]} - expected_config = %{"reject" => ["example.com"]} + clear_config(:mrf_simple, simple_config) - Config.put(:mrf_simple, simple_config) + expected_config = %{"reject" => ["example.com"]} response = conn @@ -198,10 +184,5 @@ test "it performs exclusions from MRF transparency data if configured", %{conn: assert response["metadata"]["federation"]["mrf_simple"] == expected_config assert response["metadata"]["federation"]["exclusions"] == true - - Config.put([:instance, :rewrite_policy], config) - Config.put([:instance, :mrf_transparency], option) - Config.put([:instance, :mrf_transparency_exclusions], exclusions) - Config.put(:mrf_simple, %{}) end end diff --git a/test/web/ostatus/ostatus_controller_test.exs b/test/web/ostatus/ostatus_controller_test.exs index bb349cb19..ee498f4b5 100644 --- a/test/web/ostatus/ostatus_controller_test.exs +++ b/test/web/ostatus/ostatus_controller_test.exs @@ -10,7 +10,11 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do alias Pleroma.Config alias Pleroma.Object alias Pleroma.User + alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.CommonAPI + alias Pleroma.Web.Endpoint + + require Pleroma.Constants setup_all do Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) @@ -19,6 +23,47 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do setup do: clear_config([:instance, :federating], true) + describe "Mastodon compatibility routes" do + setup %{conn: conn} do + conn = put_req_header(conn, "accept", "text/html") + + {:ok, object} = + %{ + "type" => "Note", + "content" => "hey", + "id" => Endpoint.url() <> "/users/raymoo/statuses/999999999", + "actor" => Endpoint.url() <> "/users/raymoo", + "to" => [Pleroma.Constants.as_public()] + } + |> Object.create() + + {:ok, activity, _} = + %{ + "id" => object.data["id"] <> "/activity", + "type" => "Create", + "object" => object.data["id"], + "actor" => object.data["actor"], + "to" => object.data["to"] + } + |> ActivityPub.persist(local: true) + + %{conn: conn, activity: activity} + end + + test "redirects to /notice/:id for html format", %{conn: conn, activity: activity} do + conn = get(conn, "/users/raymoo/statuses/999999999") + assert redirected_to(conn) == "/notice/#{activity.id}" + end + + test "redirects to /notice/:id for html format for activity", %{ + conn: conn, + activity: activity + } do + conn = get(conn, "/users/raymoo/statuses/999999999/activity") + assert redirected_to(conn) == "/notice/#{activity.id}" + end + end + # Note: see ActivityPubControllerTest for JSON format tests describe "GET /objects/:uuid (text/html)" do setup %{conn: conn} do diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs new file mode 100644 index 000000000..82e16741d --- /dev/null +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -0,0 +1,336 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only +defmodule Pleroma.Web.PleromaAPI.ChatControllerTest do + use Pleroma.Web.ConnCase, async: true + + alias Pleroma.Chat + alias Pleroma.Chat.MessageReference + alias Pleroma.Object + alias Pleroma.User + alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.CommonAPI + + import Pleroma.Factory + + describe "POST /api/v1/pleroma/chats/:id/messages/:message_id/read" do + setup do: oauth_access(["write:chats"]) + + test "it marks one message as read", %{conn: conn, user: user} do + other_user = insert(:user) + + {:ok, create} = CommonAPI.post_chat_message(other_user, user, "sup") + {:ok, _create} = CommonAPI.post_chat_message(other_user, user, "sup part 2") + {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + object = Object.normalize(create, false) + cm_ref = MessageReference.for_chat_and_object(chat, object) + + assert cm_ref.unread == true + + result = + conn + |> post("/api/v1/pleroma/chats/#{chat.id}/messages/#{cm_ref.id}/read") + |> json_response_and_validate_schema(200) + + assert result["unread"] == false + + cm_ref = MessageReference.for_chat_and_object(chat, object) + + assert cm_ref.unread == false + end + end + + describe "POST /api/v1/pleroma/chats/:id/read" do + setup do: oauth_access(["write:chats"]) + + test "given a `last_read_id`, it marks everything until then as read", %{ + conn: conn, + user: user + } do + other_user = insert(:user) + + {:ok, create} = CommonAPI.post_chat_message(other_user, user, "sup") + {:ok, _create} = CommonAPI.post_chat_message(other_user, user, "sup part 2") + {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + object = Object.normalize(create, false) + cm_ref = MessageReference.for_chat_and_object(chat, object) + + assert cm_ref.unread == true + + result = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/pleroma/chats/#{chat.id}/read", %{"last_read_id" => cm_ref.id}) + |> json_response_and_validate_schema(200) + + assert result["unread"] == 1 + + cm_ref = MessageReference.for_chat_and_object(chat, object) + + assert cm_ref.unread == false + end + end + + describe "POST /api/v1/pleroma/chats/:id/messages" do + setup do: oauth_access(["write:chats"]) + + test "it posts a message to the chat", %{conn: conn, user: user} do + other_user = insert(:user) + + {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + + result = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/pleroma/chats/#{chat.id}/messages", %{"content" => "Hallo!!"}) + |> json_response_and_validate_schema(200) + + assert result["content"] == "Hallo!!" + assert result["chat_id"] == chat.id |> to_string() + end + + test "it fails if there is no content", %{conn: conn, user: user} do + other_user = insert(:user) + + {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + + result = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/pleroma/chats/#{chat.id}/messages") + |> json_response_and_validate_schema(400) + + assert result + end + + test "it works with an attachment", %{conn: conn, user: user} do + file = %Plug.Upload{ + content_type: "image/jpg", + path: Path.absname("test/fixtures/image.jpg"), + filename: "an_image.jpg" + } + + {:ok, upload} = ActivityPub.upload(file, actor: user.ap_id) + + other_user = insert(:user) + + {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + + result = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/pleroma/chats/#{chat.id}/messages", %{ + "media_id" => to_string(upload.id) + }) + |> json_response_and_validate_schema(200) + + assert result["attachment"] + end + end + + describe "DELETE /api/v1/pleroma/chats/:id/messages/:message_id" do + setup do: oauth_access(["write:chats"]) + + test "it deletes a message from the chat", %{conn: conn, user: user} do + recipient = insert(:user) + + {:ok, message} = + CommonAPI.post_chat_message(user, recipient, "Hello darkness my old friend") + + {:ok, other_message} = CommonAPI.post_chat_message(recipient, user, "nico nico ni") + + object = Object.normalize(message, false) + + chat = Chat.get(user.id, recipient.ap_id) + + cm_ref = MessageReference.for_chat_and_object(chat, object) + + # Deleting your own message removes the message and the reference + result = + conn + |> put_req_header("content-type", "application/json") + |> delete("/api/v1/pleroma/chats/#{chat.id}/messages/#{cm_ref.id}") + |> json_response_and_validate_schema(200) + + assert result["id"] == cm_ref.id + refute MessageReference.get_by_id(cm_ref.id) + assert %{data: %{"type" => "Tombstone"}} = Object.get_by_id(object.id) + + # Deleting other people's messages just removes the reference + object = Object.normalize(other_message, false) + cm_ref = MessageReference.for_chat_and_object(chat, object) + + result = + conn + |> put_req_header("content-type", "application/json") + |> delete("/api/v1/pleroma/chats/#{chat.id}/messages/#{cm_ref.id}") + |> json_response_and_validate_schema(200) + + assert result["id"] == cm_ref.id + refute MessageReference.get_by_id(cm_ref.id) + assert Object.get_by_id(object.id) + end + end + + describe "GET /api/v1/pleroma/chats/:id/messages" do + setup do: oauth_access(["read:chats"]) + + test "it paginates", %{conn: conn, user: user} do + recipient = insert(:user) + + Enum.each(1..30, fn _ -> + {:ok, _} = CommonAPI.post_chat_message(user, recipient, "hey") + end) + + chat = Chat.get(user.id, recipient.ap_id) + + result = + conn + |> get("/api/v1/pleroma/chats/#{chat.id}/messages") + |> json_response_and_validate_schema(200) + + assert length(result) == 20 + + result = + conn + |> get("/api/v1/pleroma/chats/#{chat.id}/messages?max_id=#{List.last(result)["id"]}") + |> json_response_and_validate_schema(200) + + assert length(result) == 10 + end + + test "it returns the messages for a given chat", %{conn: conn, user: user} do + other_user = insert(:user) + third_user = insert(:user) + + {:ok, _} = CommonAPI.post_chat_message(user, other_user, "hey") + {:ok, _} = CommonAPI.post_chat_message(user, third_user, "hey") + {:ok, _} = CommonAPI.post_chat_message(user, other_user, "how are you?") + {:ok, _} = CommonAPI.post_chat_message(other_user, user, "fine, how about you?") + + chat = Chat.get(user.id, other_user.ap_id) + + result = + conn + |> get("/api/v1/pleroma/chats/#{chat.id}/messages") + |> json_response_and_validate_schema(200) + + result + |> Enum.each(fn message -> + assert message["chat_id"] == chat.id |> to_string() + end) + + assert length(result) == 3 + + # Trying to get the chat of a different user + result = + conn + |> assign(:user, other_user) + |> get("/api/v1/pleroma/chats/#{chat.id}/messages") + + assert result |> json_response(404) + end + end + + describe "POST /api/v1/pleroma/chats/by-account-id/:id" do + setup do: oauth_access(["write:chats"]) + + test "it creates or returns a chat", %{conn: conn} do + other_user = insert(:user) + + result = + conn + |> post("/api/v1/pleroma/chats/by-account-id/#{other_user.id}") + |> json_response_and_validate_schema(200) + + assert result["id"] + end + end + + describe "GET /api/v1/pleroma/chats/:id" do + setup do: oauth_access(["read:chats"]) + + test "it returns a chat", %{conn: conn, user: user} do + other_user = insert(:user) + + {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + + result = + conn + |> get("/api/v1/pleroma/chats/#{chat.id}") + |> json_response_and_validate_schema(200) + + assert result["id"] == to_string(chat.id) + end + end + + describe "GET /api/v1/pleroma/chats" do + setup do: oauth_access(["read:chats"]) + + test "it does not return chats with users you blocked", %{conn: conn, user: user} do + recipient = insert(:user) + + {:ok, _} = Chat.get_or_create(user.id, recipient.ap_id) + + result = + conn + |> get("/api/v1/pleroma/chats") + |> json_response_and_validate_schema(200) + + assert length(result) == 1 + + User.block(user, recipient) + + result = + conn + |> get("/api/v1/pleroma/chats") + |> json_response_and_validate_schema(200) + + assert length(result) == 0 + end + + test "it returns all chats", %{conn: conn, user: user} do + Enum.each(1..30, fn _ -> + recipient = insert(:user) + {:ok, _} = Chat.get_or_create(user.id, recipient.ap_id) + end) + + result = + conn + |> get("/api/v1/pleroma/chats") + |> json_response_and_validate_schema(200) + + assert length(result) == 30 + end + + test "it return a list of chats the current user is participating in, in descending order of updates", + %{conn: conn, user: user} do + har = insert(:user) + jafnhar = insert(:user) + tridi = insert(:user) + + {:ok, chat_1} = Chat.get_or_create(user.id, har.ap_id) + :timer.sleep(1000) + {:ok, _chat_2} = Chat.get_or_create(user.id, jafnhar.ap_id) + :timer.sleep(1000) + {:ok, chat_3} = Chat.get_or_create(user.id, tridi.ap_id) + :timer.sleep(1000) + + # bump the second one + {:ok, chat_2} = Chat.bump_or_create(user.id, jafnhar.ap_id) + + result = + conn + |> get("/api/v1/pleroma/chats") + |> json_response_and_validate_schema(200) + + ids = Enum.map(result, & &1["id"]) + + assert ids == [ + chat_2.id |> to_string(), + chat_3.id |> to_string(), + chat_1.id |> to_string() + ] + end + end +end diff --git a/test/web/pleroma_api/controllers/conversation_controller_test.exs b/test/web/pleroma_api/controllers/conversation_controller_test.exs new file mode 100644 index 000000000..e6d0b3e37 --- /dev/null +++ b/test/web/pleroma_api/controllers/conversation_controller_test.exs @@ -0,0 +1,136 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.ConversationControllerTest do + use Pleroma.Web.ConnCase + + alias Pleroma.Conversation.Participation + alias Pleroma.Repo + alias Pleroma.User + alias Pleroma.Web.CommonAPI + + import Pleroma.Factory + + test "/api/v1/pleroma/conversations/:id" do + user = insert(:user) + %{user: other_user, conn: conn} = oauth_access(["read:statuses"]) + + {:ok, _activity} = + CommonAPI.post(user, %{status: "Hi @#{other_user.nickname}!", visibility: "direct"}) + + [participation] = Participation.for_user(other_user) + + result = + conn + |> get("/api/v1/pleroma/conversations/#{participation.id}") + |> json_response_and_validate_schema(200) + + assert result["id"] == participation.id |> to_string() + end + + test "/api/v1/pleroma/conversations/:id/statuses" do + user = insert(:user) + %{user: other_user, conn: conn} = oauth_access(["read:statuses"]) + third_user = insert(:user) + + {:ok, _activity} = + CommonAPI.post(user, %{status: "Hi @#{third_user.nickname}!", visibility: "direct"}) + + {:ok, activity} = + CommonAPI.post(user, %{status: "Hi @#{other_user.nickname}!", visibility: "direct"}) + + [participation] = Participation.for_user(other_user) + + {:ok, activity_two} = + CommonAPI.post(other_user, %{ + status: "Hi!", + in_reply_to_status_id: activity.id, + in_reply_to_conversation_id: participation.id + }) + + result = + conn + |> get("/api/v1/pleroma/conversations/#{participation.id}/statuses") + |> json_response_and_validate_schema(200) + + assert length(result) == 2 + + id_one = activity.id + id_two = activity_two.id + assert [%{"id" => ^id_one}, %{"id" => ^id_two}] = result + + {:ok, %{id: id_three}} = + CommonAPI.post(other_user, %{ + status: "Bye!", + in_reply_to_status_id: activity.id, + in_reply_to_conversation_id: participation.id + }) + + assert [%{"id" => ^id_two}, %{"id" => ^id_three}] = + conn + |> get("/api/v1/pleroma/conversations/#{participation.id}/statuses?limit=2") + |> json_response_and_validate_schema(:ok) + + assert [%{"id" => ^id_three}] = + conn + |> get("/api/v1/pleroma/conversations/#{participation.id}/statuses?min_id=#{id_two}") + |> json_response_and_validate_schema(:ok) + end + + test "PATCH /api/v1/pleroma/conversations/:id" do + %{user: user, conn: conn} = oauth_access(["write:conversations"]) + other_user = insert(:user) + + {:ok, _activity} = CommonAPI.post(user, %{status: "Hi", visibility: "direct"}) + + [participation] = Participation.for_user(user) + + participation = Repo.preload(participation, :recipients) + + user = User.get_cached_by_id(user.id) + assert [user] == participation.recipients + assert other_user not in participation.recipients + + query = "recipients[]=#{user.id}&recipients[]=#{other_user.id}" + + result = + conn + |> patch("/api/v1/pleroma/conversations/#{participation.id}?#{query}") + |> json_response_and_validate_schema(200) + + assert result["id"] == participation.id |> to_string + + [participation] = Participation.for_user(user) + participation = Repo.preload(participation, :recipients) + + assert user in participation.recipients + assert other_user in participation.recipients + end + + test "POST /api/v1/pleroma/conversations/read" do + user = insert(:user) + %{user: other_user, conn: conn} = oauth_access(["write:conversations"]) + + {:ok, _activity} = + CommonAPI.post(user, %{status: "Hi @#{other_user.nickname}", visibility: "direct"}) + + {:ok, _activity} = + CommonAPI.post(user, %{status: "Hi @#{other_user.nickname}", visibility: "direct"}) + + [participation2, participation1] = Participation.for_user(other_user) + assert Participation.get(participation2.id).read == false + assert Participation.get(participation1.id).read == false + assert User.get_cached_by_id(other_user.id).unread_conversation_count == 2 + + [%{"unread" => false}, %{"unread" => false}] = + conn + |> post("/api/v1/pleroma/conversations/read", %{}) + |> json_response_and_validate_schema(200) + + [participation2, participation1] = Participation.for_user(other_user) + assert Participation.get(participation2.id).read == true + assert Participation.get(participation1.id).read == true + assert User.get_cached_by_id(other_user.id).unread_conversation_count == 0 + end +end diff --git a/test/web/pleroma_api/controllers/emoji_api_controller_test.exs b/test/web/pleroma_api/controllers/emoji_pack_controller_test.exs similarity index 68% rename from test/web/pleroma_api/controllers/emoji_api_controller_test.exs rename to test/web/pleroma_api/controllers/emoji_pack_controller_test.exs index d343256fe..df58a5eb6 100644 --- a/test/web/pleroma_api/controllers/emoji_api_controller_test.exs +++ b/test/web/pleroma_api/controllers/emoji_pack_controller_test.exs @@ -2,7 +2,7 @@ # Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only -defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do +defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do use Pleroma.Web.ConnCase import Tesla.Mock @@ -28,17 +28,57 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do end test "GET /api/pleroma/emoji/packs", %{conn: conn} do - resp = conn |> get("/api/pleroma/emoji/packs") |> json_response(200) + resp = conn |> get("/api/pleroma/emoji/packs") |> json_response_and_validate_schema(200) - shared = resp["test_pack"] - assert shared["files"] == %{"blank" => "blank.png"} + assert resp["count"] == 3 + + assert resp["packs"] + |> Map.keys() + |> length() == 3 + + shared = resp["packs"]["test_pack"] + assert shared["files"] == %{"blank" => "blank.png", "blank2" => "blank2.png"} assert Map.has_key?(shared["pack"], "download-sha256") assert shared["pack"]["can-download"] assert shared["pack"]["share-files"] - non_shared = resp["test_pack_nonshared"] + non_shared = resp["packs"]["test_pack_nonshared"] assert non_shared["pack"]["share-files"] == false assert non_shared["pack"]["can-download"] == false + + resp = + conn + |> get("/api/pleroma/emoji/packs?page_size=1") + |> json_response_and_validate_schema(200) + + assert resp["count"] == 3 + + packs = Map.keys(resp["packs"]) + + assert length(packs) == 1 + + [pack1] = packs + + resp = + conn + |> get("/api/pleroma/emoji/packs?page_size=1&page=2") + |> json_response_and_validate_schema(200) + + assert resp["count"] == 3 + packs = Map.keys(resp["packs"]) + assert length(packs) == 1 + [pack2] = packs + + resp = + conn + |> get("/api/pleroma/emoji/packs?page_size=1&page=3") + |> json_response_and_validate_schema(200) + + assert resp["count"] == 3 + packs = Map.keys(resp["packs"]) + assert length(packs) == 1 + [pack3] = packs + assert [pack1, pack2, pack3] |> Enum.uniq() |> length() == 3 end describe "GET /api/pleroma/emoji/packs/remote" do @@ -46,7 +86,7 @@ test "shareable instance", %{admin_conn: admin_conn, conn: conn} do resp = conn |> get("/api/pleroma/emoji/packs") - |> json_response(200) + |> json_response_and_validate_schema(200) mock(fn %{method: :get, url: "https://example.com/.well-known/nodeinfo"} -> @@ -60,10 +100,8 @@ test "shareable instance", %{admin_conn: admin_conn, conn: conn} do end) assert admin_conn - |> get("/api/pleroma/emoji/packs/remote", %{ - url: "https://example.com" - }) - |> json_response(200) == resp + |> get("/api/pleroma/emoji/packs/remote?url=https://example.com") + |> json_response_and_validate_schema(200) == resp end test "non shareable instance", %{admin_conn: admin_conn} do @@ -76,8 +114,8 @@ test "non shareable instance", %{admin_conn: admin_conn} do end) assert admin_conn - |> get("/api/pleroma/emoji/packs/remote", %{url: "https://example.com"}) - |> json_response(500) == %{ + |> get("/api/pleroma/emoji/packs/remote?url=https://example.com") + |> json_response_and_validate_schema(500) == %{ "error" => "The requested instance does not support sharing emoji packs" } end @@ -99,7 +137,7 @@ test "download shared pack", %{conn: conn} do test "non existing pack", %{conn: conn} do assert conn |> get("/api/pleroma/emoji/packs/test_pack_for_import/archive") - |> json_response(:not_found) == %{ + |> json_response_and_validate_schema(:not_found) == %{ "error" => "Pack test_pack_for_import does not exist" } end @@ -107,7 +145,7 @@ test "non existing pack", %{conn: conn} do test "non downloadable pack", %{conn: conn} do assert conn |> get("/api/pleroma/emoji/packs/test_pack_nonshared/archive") - |> json_response(:forbidden) == %{ + |> json_response_and_validate_schema(:forbidden) == %{ "error" => "Pack test_pack_nonshared cannot be downloaded from this instance, either pack sharing was disabled for this pack or some files are missing" } @@ -132,7 +170,7 @@ test "shared pack from remote and non shared from fallback-src", %{ } -> conn |> get("/api/pleroma/emoji/packs/test_pack") - |> json_response(200) + |> json_response_and_validate_schema(200) |> json() %{ @@ -150,7 +188,7 @@ test "shared pack from remote and non shared from fallback-src", %{ } -> conn |> get("/api/pleroma/emoji/packs/test_pack_nonshared") - |> json_response(200) + |> json_response_and_validate_schema(200) |> json() %{ @@ -161,23 +199,25 @@ test "shared pack from remote and non shared from fallback-src", %{ end) assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> post("/api/pleroma/emoji/packs/download", %{ url: "https://example.com", name: "test_pack", as: "test_pack2" }) - |> json_response(200) == "ok" + |> json_response_and_validate_schema(200) == "ok" assert File.exists?("#{@emoji_path}/test_pack2/pack.json") assert File.exists?("#{@emoji_path}/test_pack2/blank.png") assert admin_conn |> delete("/api/pleroma/emoji/packs/test_pack2") - |> json_response(200) == "ok" + |> json_response_and_validate_schema(200) == "ok" refute File.exists?("#{@emoji_path}/test_pack2") assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> post( "/api/pleroma/emoji/packs/download", %{ @@ -186,14 +226,14 @@ test "shared pack from remote and non shared from fallback-src", %{ as: "test_pack_nonshared2" } ) - |> json_response(200) == "ok" + |> json_response_and_validate_schema(200) == "ok" assert File.exists?("#{@emoji_path}/test_pack_nonshared2/pack.json") assert File.exists?("#{@emoji_path}/test_pack_nonshared2/blank.png") assert admin_conn |> delete("/api/pleroma/emoji/packs/test_pack_nonshared2") - |> json_response(200) == "ok" + |> json_response_and_validate_schema(200) == "ok" refute File.exists?("#{@emoji_path}/test_pack_nonshared2") end @@ -208,6 +248,7 @@ test "nonshareable instance", %{admin_conn: admin_conn} do end) assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> post( "/api/pleroma/emoji/packs/download", %{ @@ -216,7 +257,7 @@ test "nonshareable instance", %{admin_conn: admin_conn} do as: "test_pack2" } ) - |> json_response(500) == %{ + |> json_response_and_validate_schema(500) == %{ "error" => "The requested instance does not support sharing emoji packs" } end @@ -233,10 +274,8 @@ test "checksum fail", %{admin_conn: admin_conn} do method: :get, url: "https://example.com/api/pleroma/emoji/packs/pack_bad_sha" } -> - %Tesla.Env{ - status: 200, - body: Pleroma.Emoji.Pack.load_pack("pack_bad_sha") |> Jason.encode!() - } + {:ok, pack} = Pleroma.Emoji.Pack.load_pack("pack_bad_sha") + %Tesla.Env{status: 200, body: Jason.encode!(pack)} %{ method: :get, @@ -249,12 +288,13 @@ test "checksum fail", %{admin_conn: admin_conn} do end) assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> post("/api/pleroma/emoji/packs/download", %{ url: "https://example.com", name: "pack_bad_sha", as: "pack_bad_sha2" }) - |> json_response(:internal_server_error) == %{ + |> json_response_and_validate_schema(:internal_server_error) == %{ "error" => "SHA256 for the pack doesn't match the one sent by the server" } end @@ -271,19 +311,18 @@ test "other error", %{admin_conn: admin_conn} do method: :get, url: "https://example.com/api/pleroma/emoji/packs/test_pack" } -> - %Tesla.Env{ - status: 200, - body: Pleroma.Emoji.Pack.load_pack("test_pack") |> Jason.encode!() - } + {:ok, pack} = Pleroma.Emoji.Pack.load_pack("test_pack") + %Tesla.Env{status: 200, body: Jason.encode!(pack)} end) assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> post("/api/pleroma/emoji/packs/download", %{ url: "https://example.com", name: "test_pack", as: "test_pack2" }) - |> json_response(:internal_server_error) == %{ + |> json_response_and_validate_schema(:internal_server_error) == %{ "error" => "The pack was not set as shared and there is no fallback src to download from" } @@ -311,8 +350,9 @@ test "other error", %{admin_conn: admin_conn} do test "for a pack without a fallback source", ctx do assert ctx[:admin_conn] + |> put_req_header("content-type", "multipart/form-data") |> patch("/api/pleroma/emoji/packs/test_pack", %{"metadata" => ctx[:new_data]}) - |> json_response(200) == ctx[:new_data] + |> json_response_and_validate_schema(200) == ctx[:new_data] assert Jason.decode!(File.read!(ctx[:pack_file]))["pack"] == ctx[:new_data] end @@ -332,12 +372,13 @@ test "for a pack with a fallback source", ctx do Map.put( new_data, "fallback-src-sha256", - "74409E2674DAA06C072729C6C8426C4CB3B7E0B85ED77792DB7A436E11D76DAF" + "1967BB4E42BCC34BCC12D57BE7811D3B7BE52F965BCE45C87BD377B9499CE11D" ) assert ctx[:admin_conn] + |> put_req_header("content-type", "multipart/form-data") |> patch("/api/pleroma/emoji/packs/test_pack", %{metadata: new_data}) - |> json_response(200) == new_data_with_sha + |> json_response_and_validate_schema(200) == new_data_with_sha assert Jason.decode!(File.read!(ctx[:pack_file]))["pack"] == new_data_with_sha end @@ -355,8 +396,9 @@ test "when the fallback source doesn't have all the files", ctx do new_data = Map.put(ctx[:new_data], "fallback-src", "https://nonshared-pack") assert ctx[:admin_conn] + |> put_req_header("content-type", "multipart/form-data") |> patch("/api/pleroma/emoji/packs/test_pack", %{metadata: new_data}) - |> json_response(:bad_request) == %{ + |> json_response_and_validate_schema(:bad_request) == %{ "error" => "The fallback archive does not have all files specified in pack.json" } end @@ -376,6 +418,7 @@ test "when the fallback source doesn't have all the files", ctx do test "create shortcode exists", %{admin_conn: admin_conn} do assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> post("/api/pleroma/emoji/packs/test_pack/files", %{ shortcode: "blank", filename: "dir/blank.png", @@ -384,7 +427,7 @@ test "create shortcode exists", %{admin_conn: admin_conn} do path: "#{@emoji_path}/test_pack/blank.png" } }) - |> json_response(:conflict) == %{ + |> json_response_and_validate_schema(:conflict) == %{ "error" => "An emoji with the \"blank\" shortcode already exists" } end @@ -393,25 +436,31 @@ test "don't rewrite old emoji", %{admin_conn: admin_conn} do on_exit(fn -> File.rm_rf!("#{@emoji_path}/test_pack/dir/") end) assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> post("/api/pleroma/emoji/packs/test_pack/files", %{ - shortcode: "blank2", + shortcode: "blank3", filename: "dir/blank.png", file: %Plug.Upload{ filename: "blank.png", path: "#{@emoji_path}/test_pack/blank.png" } }) - |> json_response(200) == %{"blank" => "blank.png", "blank2" => "dir/blank.png"} + |> json_response_and_validate_schema(200) == %{ + "blank" => "blank.png", + "blank2" => "blank2.png", + "blank3" => "dir/blank.png" + } assert File.exists?("#{@emoji_path}/test_pack/dir/blank.png") assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> patch("/api/pleroma/emoji/packs/test_pack/files", %{ shortcode: "blank", new_shortcode: "blank2", new_filename: "dir_2/blank_3.png" }) - |> json_response(:conflict) == %{ + |> json_response_and_validate_schema(:conflict) == %{ "error" => "New shortcode \"blank2\" is already used. If you want to override emoji use 'force' option" } @@ -421,28 +470,35 @@ test "rewrite old emoji with force option", %{admin_conn: admin_conn} do on_exit(fn -> File.rm_rf!("#{@emoji_path}/test_pack/dir_2/") end) assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> post("/api/pleroma/emoji/packs/test_pack/files", %{ - shortcode: "blank2", + shortcode: "blank3", filename: "dir/blank.png", file: %Plug.Upload{ filename: "blank.png", path: "#{@emoji_path}/test_pack/blank.png" } }) - |> json_response(200) == %{"blank" => "blank.png", "blank2" => "dir/blank.png"} + |> json_response_and_validate_schema(200) == %{ + "blank" => "blank.png", + "blank2" => "blank2.png", + "blank3" => "dir/blank.png" + } assert File.exists?("#{@emoji_path}/test_pack/dir/blank.png") assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> patch("/api/pleroma/emoji/packs/test_pack/files", %{ - shortcode: "blank2", - new_shortcode: "blank3", + shortcode: "blank3", + new_shortcode: "blank4", new_filename: "dir_2/blank_3.png", force: true }) - |> json_response(200) == %{ + |> json_response_and_validate_schema(200) == %{ "blank" => "blank.png", - "blank3" => "dir_2/blank_3.png" + "blank2" => "blank2.png", + "blank4" => "dir_2/blank_3.png" } assert File.exists?("#{@emoji_path}/test_pack/dir_2/blank_3.png") @@ -450,6 +506,7 @@ test "rewrite old emoji with force option", %{admin_conn: admin_conn} do test "with empty filename", %{admin_conn: admin_conn} do assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> post("/api/pleroma/emoji/packs/test_pack/files", %{ shortcode: "blank2", filename: "", @@ -458,52 +515,59 @@ test "with empty filename", %{admin_conn: admin_conn} do path: "#{@emoji_path}/test_pack/blank.png" } }) - |> json_response(:bad_request) == %{ + |> json_response_and_validate_schema(:bad_request) == %{ "error" => "pack name, shortcode or filename cannot be empty" } end test "add file with not loaded pack", %{admin_conn: admin_conn} do assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> post("/api/pleroma/emoji/packs/not_loaded/files", %{ - shortcode: "blank2", + shortcode: "blank3", filename: "dir/blank.png", file: %Plug.Upload{ filename: "blank.png", path: "#{@emoji_path}/test_pack/blank.png" } }) - |> json_response(:bad_request) == %{ + |> json_response_and_validate_schema(:bad_request) == %{ "error" => "pack \"not_loaded\" is not found" } end test "remove file with not loaded pack", %{admin_conn: admin_conn} do assert admin_conn - |> delete("/api/pleroma/emoji/packs/not_loaded/files", %{shortcode: "blank3"}) - |> json_response(:bad_request) == %{"error" => "pack \"not_loaded\" is not found"} + |> delete("/api/pleroma/emoji/packs/not_loaded/files?shortcode=blank3") + |> json_response_and_validate_schema(:bad_request) == %{ + "error" => "pack \"not_loaded\" is not found" + } end test "remove file with empty shortcode", %{admin_conn: admin_conn} do assert admin_conn - |> delete("/api/pleroma/emoji/packs/not_loaded/files", %{shortcode: ""}) - |> json_response(:bad_request) == %{ + |> delete("/api/pleroma/emoji/packs/not_loaded/files?shortcode=") + |> json_response_and_validate_schema(:bad_request) == %{ "error" => "pack name or shortcode cannot be empty" } end test "update file with not loaded pack", %{admin_conn: admin_conn} do assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> patch("/api/pleroma/emoji/packs/not_loaded/files", %{ shortcode: "blank4", new_shortcode: "blank3", new_filename: "dir_2/blank_3.png" }) - |> json_response(:bad_request) == %{"error" => "pack \"not_loaded\" is not found"} + |> json_response_and_validate_schema(:bad_request) == %{ + "error" => "pack \"not_loaded\" is not found" + } end test "new with shortcode as file with update", %{admin_conn: admin_conn} do assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> post("/api/pleroma/emoji/packs/test_pack/files", %{ shortcode: "blank4", filename: "dir/blank.png", @@ -512,24 +576,36 @@ test "new with shortcode as file with update", %{admin_conn: admin_conn} do path: "#{@emoji_path}/test_pack/blank.png" } }) - |> json_response(200) == %{"blank" => "blank.png", "blank4" => "dir/blank.png"} + |> json_response_and_validate_schema(200) == %{ + "blank" => "blank.png", + "blank4" => "dir/blank.png", + "blank2" => "blank2.png" + } assert File.exists?("#{@emoji_path}/test_pack/dir/blank.png") assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> patch("/api/pleroma/emoji/packs/test_pack/files", %{ shortcode: "blank4", new_shortcode: "blank3", new_filename: "dir_2/blank_3.png" }) - |> json_response(200) == %{"blank3" => "dir_2/blank_3.png", "blank" => "blank.png"} + |> json_response_and_validate_schema(200) == %{ + "blank3" => "dir_2/blank_3.png", + "blank" => "blank.png", + "blank2" => "blank2.png" + } refute File.exists?("#{@emoji_path}/test_pack/dir/") assert File.exists?("#{@emoji_path}/test_pack/dir_2/blank_3.png") assert admin_conn - |> delete("/api/pleroma/emoji/packs/test_pack/files", %{shortcode: "blank3"}) - |> json_response(200) == %{"blank" => "blank.png"} + |> delete("/api/pleroma/emoji/packs/test_pack/files?shortcode=blank3") + |> json_response_and_validate_schema(200) == %{ + "blank" => "blank.png", + "blank2" => "blank2.png" + } refute File.exists?("#{@emoji_path}/test_pack/dir_2/") @@ -546,13 +622,15 @@ test "new with shortcode from url", %{admin_conn: admin_conn} do end) assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> post("/api/pleroma/emoji/packs/test_pack/files", %{ shortcode: "blank_url", file: "https://test-blank/blank_url.png" }) - |> json_response(200) == %{ + |> json_response_and_validate_schema(200) == %{ "blank_url" => "blank_url.png", - "blank" => "blank.png" + "blank" => "blank.png", + "blank2" => "blank2.png" } assert File.exists?("#{@emoji_path}/test_pack/blank_url.png") @@ -564,40 +642,52 @@ test "new without shortcode", %{admin_conn: admin_conn} do on_exit(fn -> File.rm_rf!("#{@emoji_path}/test_pack/shortcode.png") end) assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> post("/api/pleroma/emoji/packs/test_pack/files", %{ file: %Plug.Upload{ filename: "shortcode.png", path: "#{Pleroma.Config.get([:instance, :static_dir])}/add/shortcode.png" } }) - |> json_response(200) == %{"shortcode" => "shortcode.png", "blank" => "blank.png"} + |> json_response_and_validate_schema(200) == %{ + "shortcode" => "shortcode.png", + "blank" => "blank.png", + "blank2" => "blank2.png" + } end test "remove non existing shortcode in pack.json", %{admin_conn: admin_conn} do assert admin_conn - |> delete("/api/pleroma/emoji/packs/test_pack/files", %{shortcode: "blank2"}) - |> json_response(:bad_request) == %{"error" => "Emoji \"blank2\" does not exist"} + |> delete("/api/pleroma/emoji/packs/test_pack/files?shortcode=blank3") + |> json_response_and_validate_schema(:bad_request) == %{ + "error" => "Emoji \"blank3\" does not exist" + } end test "update non existing emoji", %{admin_conn: admin_conn} do assert admin_conn + |> put_req_header("content-type", "multipart/form-data") |> patch("/api/pleroma/emoji/packs/test_pack/files", %{ - shortcode: "blank2", - new_shortcode: "blank3", + shortcode: "blank3", + new_shortcode: "blank4", new_filename: "dir_2/blank_3.png" }) - |> json_response(:bad_request) == %{"error" => "Emoji \"blank2\" does not exist"} + |> json_response_and_validate_schema(:bad_request) == %{ + "error" => "Emoji \"blank3\" does not exist" + } end test "update with empty shortcode", %{admin_conn: admin_conn} do - assert admin_conn - |> patch("/api/pleroma/emoji/packs/test_pack/files", %{ - shortcode: "blank", - new_filename: "dir_2/blank_3.png" - }) - |> json_response(:bad_request) == %{ - "error" => "new_shortcode or new_filename cannot be empty" - } + assert %{ + "error" => "Missing field: new_shortcode." + } = + admin_conn + |> put_req_header("content-type", "multipart/form-data") + |> patch("/api/pleroma/emoji/packs/test_pack/files", %{ + shortcode: "blank", + new_filename: "dir_2/blank_3.png" + }) + |> json_response_and_validate_schema(:bad_request) end end @@ -605,18 +695,19 @@ test "update with empty shortcode", %{admin_conn: admin_conn} do test "creating and deleting a pack", %{admin_conn: admin_conn} do assert admin_conn |> post("/api/pleroma/emoji/packs/test_created") - |> json_response(200) == "ok" + |> json_response_and_validate_schema(200) == "ok" assert File.exists?("#{@emoji_path}/test_created/pack.json") assert Jason.decode!(File.read!("#{@emoji_path}/test_created/pack.json")) == %{ "pack" => %{}, - "files" => %{} + "files" => %{}, + "files_count" => 0 } assert admin_conn |> delete("/api/pleroma/emoji/packs/test_created") - |> json_response(200) == "ok" + |> json_response_and_validate_schema(200) == "ok" refute File.exists?("#{@emoji_path}/test_created/pack.json") end @@ -629,7 +720,7 @@ test "if pack exists", %{admin_conn: admin_conn} do assert admin_conn |> post("/api/pleroma/emoji/packs/test_created") - |> json_response(:conflict) == %{ + |> json_response_and_validate_schema(:conflict) == %{ "error" => "A pack named \"test_created\" already exists" } @@ -639,20 +730,26 @@ test "if pack exists", %{admin_conn: admin_conn} do test "with empty name", %{admin_conn: admin_conn} do assert admin_conn |> post("/api/pleroma/emoji/packs/ ") - |> json_response(:bad_request) == %{"error" => "pack name cannot be empty"} + |> json_response_and_validate_schema(:bad_request) == %{ + "error" => "pack name cannot be empty" + } end end test "deleting nonexisting pack", %{admin_conn: admin_conn} do assert admin_conn |> delete("/api/pleroma/emoji/packs/non_existing") - |> json_response(:not_found) == %{"error" => "Pack non_existing does not exist"} + |> json_response_and_validate_schema(:not_found) == %{ + "error" => "Pack non_existing does not exist" + } end test "deleting with empty name", %{admin_conn: admin_conn} do assert admin_conn |> delete("/api/pleroma/emoji/packs/ ") - |> json_response(:bad_request) == %{"error" => "pack name cannot be empty"} + |> json_response_and_validate_schema(:bad_request) == %{ + "error" => "pack name cannot be empty" + } end test "filesystem import", %{admin_conn: admin_conn, conn: conn} do @@ -661,16 +758,16 @@ test "filesystem import", %{admin_conn: admin_conn, conn: conn} do File.rm!("#{@emoji_path}/test_pack_for_import/pack.json") end) - resp = conn |> get("/api/pleroma/emoji/packs") |> json_response(200) + resp = conn |> get("/api/pleroma/emoji/packs") |> json_response_and_validate_schema(200) - refute Map.has_key?(resp, "test_pack_for_import") + refute Map.has_key?(resp["packs"], "test_pack_for_import") assert admin_conn |> get("/api/pleroma/emoji/packs/import") - |> json_response(200) == ["test_pack_for_import"] + |> json_response_and_validate_schema(200) == ["test_pack_for_import"] - resp = conn |> get("/api/pleroma/emoji/packs") |> json_response(200) - assert resp["test_pack_for_import"]["files"] == %{"blank" => "blank.png"} + resp = conn |> get("/api/pleroma/emoji/packs") |> json_response_and_validate_schema(200) + assert resp["packs"]["test_pack_for_import"]["files"] == %{"blank" => "blank.png"} File.rm!("#{@emoji_path}/test_pack_for_import/pack.json") refute File.exists?("#{@emoji_path}/test_pack_for_import/pack.json") @@ -686,11 +783,11 @@ test "filesystem import", %{admin_conn: admin_conn, conn: conn} do assert admin_conn |> get("/api/pleroma/emoji/packs/import") - |> json_response(200) == ["test_pack_for_import"] + |> json_response_and_validate_schema(200) == ["test_pack_for_import"] - resp = conn |> get("/api/pleroma/emoji/packs") |> json_response(200) + resp = conn |> get("/api/pleroma/emoji/packs") |> json_response_and_validate_schema(200) - assert resp["test_pack_for_import"]["files"] == %{ + assert resp["packs"]["test_pack_for_import"]["files"] == %{ "blank" => "blank.png", "blank2" => "blank.png", "foo" => "blank.png" @@ -700,7 +797,8 @@ test "filesystem import", %{admin_conn: admin_conn, conn: conn} do describe "GET /api/pleroma/emoji/packs/:name" do test "shows pack.json", %{conn: conn} do assert %{ - "files" => %{"blank" => "blank.png"}, + "files" => files, + "files_count" => 2, "pack" => %{ "can-download" => true, "description" => "Test description", @@ -712,19 +810,45 @@ test "shows pack.json", %{conn: conn} do } = conn |> get("/api/pleroma/emoji/packs/test_pack") - |> json_response(200) + |> json_response_and_validate_schema(200) + + assert files == %{"blank" => "blank.png", "blank2" => "blank2.png"} + + assert %{ + "files" => files, + "files_count" => 2 + } = + conn + |> get("/api/pleroma/emoji/packs/test_pack?page_size=1") + |> json_response_and_validate_schema(200) + + assert files |> Map.keys() |> length() == 1 + + assert %{ + "files" => files, + "files_count" => 2 + } = + conn + |> get("/api/pleroma/emoji/packs/test_pack?page_size=1&page=2") + |> json_response_and_validate_schema(200) + + assert files |> Map.keys() |> length() == 1 end test "non existing pack", %{conn: conn} do assert conn |> get("/api/pleroma/emoji/packs/non_existing") - |> json_response(:not_found) == %{"error" => "Pack non_existing does not exist"} + |> json_response_and_validate_schema(:not_found) == %{ + "error" => "Pack non_existing does not exist" + } end test "error name", %{conn: conn} do assert conn |> get("/api/pleroma/emoji/packs/ ") - |> json_response(:bad_request) == %{"error" => "pack name cannot be empty"} + |> json_response_and_validate_schema(:bad_request) == %{ + "error" => "pack name cannot be empty" + } end end end diff --git a/test/web/pleroma_api/controllers/emoji_reaction_controller_test.exs b/test/web/pleroma_api/controllers/emoji_reaction_controller_test.exs new file mode 100644 index 000000000..e1bb5ebfe --- /dev/null +++ b/test/web/pleroma_api/controllers/emoji_reaction_controller_test.exs @@ -0,0 +1,132 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.EmojiReactionControllerTest do + use Oban.Testing, repo: Pleroma.Repo + use Pleroma.Web.ConnCase + + alias Pleroma.Object + alias Pleroma.Tests.ObanHelpers + alias Pleroma.User + alias Pleroma.Web.CommonAPI + + import Pleroma.Factory + + test "PUT /api/v1/pleroma/statuses/:id/reactions/:emoji", %{conn: conn} do + user = insert(:user) + other_user = insert(:user) + + {:ok, activity} = CommonAPI.post(user, %{status: "#cofe"}) + + result = + conn + |> assign(:user, other_user) + |> assign(:token, insert(:oauth_token, user: other_user, scopes: ["write:statuses"])) + |> put("/api/v1/pleroma/statuses/#{activity.id}/reactions/☕") + |> json_response_and_validate_schema(200) + + # We return the status, but this our implementation detail. + assert %{"id" => id} = result + assert to_string(activity.id) == id + + assert result["pleroma"]["emoji_reactions"] == [ + %{"name" => "☕", "count" => 1, "me" => true} + ] + + # Reacting with a non-emoji + assert conn + |> assign(:user, other_user) + |> assign(:token, insert(:oauth_token, user: other_user, scopes: ["write:statuses"])) + |> put("/api/v1/pleroma/statuses/#{activity.id}/reactions/x") + |> json_response_and_validate_schema(400) + end + + test "DELETE /api/v1/pleroma/statuses/:id/reactions/:emoji", %{conn: conn} do + user = insert(:user) + other_user = insert(:user) + + {:ok, activity} = CommonAPI.post(user, %{status: "#cofe"}) + {:ok, _reaction_activity} = CommonAPI.react_with_emoji(activity.id, other_user, "☕") + + ObanHelpers.perform_all() + + result = + conn + |> assign(:user, other_user) + |> assign(:token, insert(:oauth_token, user: other_user, scopes: ["write:statuses"])) + |> delete("/api/v1/pleroma/statuses/#{activity.id}/reactions/☕") + + assert %{"id" => id} = json_response_and_validate_schema(result, 200) + assert to_string(activity.id) == id + + ObanHelpers.perform_all() + + object = Object.get_by_ap_id(activity.data["object"]) + + assert object.data["reaction_count"] == 0 + end + + test "GET /api/v1/pleroma/statuses/:id/reactions", %{conn: conn} do + user = insert(:user) + other_user = insert(:user) + doomed_user = insert(:user) + + {:ok, activity} = CommonAPI.post(user, %{status: "#cofe"}) + + result = + conn + |> get("/api/v1/pleroma/statuses/#{activity.id}/reactions") + |> json_response_and_validate_schema(200) + + assert result == [] + + {:ok, _} = CommonAPI.react_with_emoji(activity.id, other_user, "🎅") + {:ok, _} = CommonAPI.react_with_emoji(activity.id, doomed_user, "🎅") + + User.perform(:delete, doomed_user) + + result = + conn + |> get("/api/v1/pleroma/statuses/#{activity.id}/reactions") + |> json_response_and_validate_schema(200) + + [%{"name" => "🎅", "count" => 1, "accounts" => [represented_user], "me" => false}] = result + + assert represented_user["id"] == other_user.id + + result = + conn + |> assign(:user, other_user) + |> assign(:token, insert(:oauth_token, user: other_user, scopes: ["read:statuses"])) + |> get("/api/v1/pleroma/statuses/#{activity.id}/reactions") + |> json_response_and_validate_schema(200) + + assert [%{"name" => "🎅", "count" => 1, "accounts" => [_represented_user], "me" => true}] = + result + end + + test "GET /api/v1/pleroma/statuses/:id/reactions/:emoji", %{conn: conn} do + user = insert(:user) + other_user = insert(:user) + + {:ok, activity} = CommonAPI.post(user, %{status: "#cofe"}) + + result = + conn + |> get("/api/v1/pleroma/statuses/#{activity.id}/reactions/🎅") + |> json_response_and_validate_schema(200) + + assert result == [] + + {:ok, _} = CommonAPI.react_with_emoji(activity.id, other_user, "🎅") + {:ok, _} = CommonAPI.react_with_emoji(activity.id, other_user, "☕") + + assert [%{"name" => "🎅", "count" => 1, "accounts" => [represented_user], "me" => false}] = + conn + |> get("/api/v1/pleroma/statuses/#{activity.id}/reactions/🎅") + |> json_response_and_validate_schema(200) + + assert represented_user["id"] == other_user.id + end +end diff --git a/test/web/pleroma_api/controllers/mascot_controller_test.exs b/test/web/pleroma_api/controllers/mascot_controller_test.exs index 617831b02..e2ead6e15 100644 --- a/test/web/pleroma_api/controllers/mascot_controller_test.exs +++ b/test/web/pleroma_api/controllers/mascot_controller_test.exs @@ -16,9 +16,12 @@ test "mascot upload" do filename: "sound.mp3" } - ret_conn = put(conn, "/api/v1/pleroma/mascot", %{"file" => non_image_file}) + ret_conn = + conn + |> put_req_header("content-type", "multipart/form-data") + |> put("/api/v1/pleroma/mascot", %{"file" => non_image_file}) - assert json_response(ret_conn, 415) + assert json_response_and_validate_schema(ret_conn, 415) file = %Plug.Upload{ content_type: "image/jpg", @@ -26,9 +29,12 @@ test "mascot upload" do filename: "an_image.jpg" } - conn = put(conn, "/api/v1/pleroma/mascot", %{"file" => file}) + conn = + conn + |> put_req_header("content-type", "multipart/form-data") + |> put("/api/v1/pleroma/mascot", %{"file" => file}) - assert %{"id" => _, "type" => image} = json_response(conn, 200) + assert %{"id" => _, "type" => image} = json_response_and_validate_schema(conn, 200) end test "mascot retrieving" do @@ -37,7 +43,7 @@ test "mascot retrieving" do # When user hasn't set a mascot, we should just get pleroma tan back ret_conn = get(conn, "/api/v1/pleroma/mascot") - assert %{"url" => url} = json_response(ret_conn, 200) + assert %{"url" => url} = json_response_and_validate_schema(ret_conn, 200) assert url =~ "pleroma-fox-tan-smol" # When a user sets their mascot, we should get that back @@ -47,9 +53,12 @@ test "mascot retrieving" do filename: "an_image.jpg" } - ret_conn = put(conn, "/api/v1/pleroma/mascot", %{"file" => file}) + ret_conn = + conn + |> put_req_header("content-type", "multipart/form-data") + |> put("/api/v1/pleroma/mascot", %{"file" => file}) - assert json_response(ret_conn, 200) + assert json_response_and_validate_schema(ret_conn, 200) user = User.get_cached_by_id(user.id) @@ -58,7 +67,7 @@ test "mascot retrieving" do |> assign(:user, user) |> get("/api/v1/pleroma/mascot") - assert %{"url" => url, "type" => "image"} = json_response(conn, 200) + assert %{"url" => url, "type" => "image"} = json_response_and_validate_schema(conn, 200) assert url =~ "an_image" end end diff --git a/test/web/pleroma_api/controllers/notification_controller_test.exs b/test/web/pleroma_api/controllers/notification_controller_test.exs new file mode 100644 index 000000000..bb4fe6c49 --- /dev/null +++ b/test/web/pleroma_api/controllers/notification_controller_test.exs @@ -0,0 +1,68 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.NotificationControllerTest do + use Pleroma.Web.ConnCase + + alias Pleroma.Notification + alias Pleroma.Repo + alias Pleroma.Web.CommonAPI + + import Pleroma.Factory + + describe "POST /api/v1/pleroma/notifications/read" do + setup do: oauth_access(["write:notifications"]) + + test "it marks a single notification as read", %{user: user1, conn: conn} do + user2 = insert(:user) + {:ok, activity1} = CommonAPI.post(user2, %{status: "hi @#{user1.nickname}"}) + {:ok, activity2} = CommonAPI.post(user2, %{status: "hi @#{user1.nickname}"}) + {:ok, [notification1]} = Notification.create_notifications(activity1) + {:ok, [notification2]} = Notification.create_notifications(activity2) + + response = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/pleroma/notifications/read", %{id: notification1.id}) + |> json_response_and_validate_schema(:ok) + + assert %{"pleroma" => %{"is_seen" => true}} = response + assert Repo.get(Notification, notification1.id).seen + refute Repo.get(Notification, notification2.id).seen + end + + test "it marks multiple notifications as read", %{user: user1, conn: conn} do + user2 = insert(:user) + {:ok, _activity1} = CommonAPI.post(user2, %{status: "hi @#{user1.nickname}"}) + {:ok, _activity2} = CommonAPI.post(user2, %{status: "hi @#{user1.nickname}"}) + {:ok, _activity3} = CommonAPI.post(user2, %{status: "HIE @#{user1.nickname}"}) + + [notification3, notification2, notification1] = Notification.for_user(user1, %{limit: 3}) + + [response1, response2] = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/pleroma/notifications/read", %{max_id: notification2.id}) + |> json_response_and_validate_schema(:ok) + + assert %{"pleroma" => %{"is_seen" => true}} = response1 + assert %{"pleroma" => %{"is_seen" => true}} = response2 + assert Repo.get(Notification, notification1.id).seen + assert Repo.get(Notification, notification2.id).seen + refute Repo.get(Notification, notification3.id).seen + end + + test "it returns error when notification not found", %{conn: conn} do + response = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/pleroma/notifications/read", %{ + id: 22_222_222_222_222 + }) + |> json_response_and_validate_schema(:bad_request) + + assert response == %{"error" => "Cannot get notification"} + end + end +end diff --git a/test/web/pleroma_api/controllers/pleroma_api_controller_test.exs b/test/web/pleroma_api/controllers/pleroma_api_controller_test.exs deleted file mode 100644 index cfd1dbd24..000000000 --- a/test/web/pleroma_api/controllers/pleroma_api_controller_test.exs +++ /dev/null @@ -1,302 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do - use Oban.Testing, repo: Pleroma.Repo - use Pleroma.Web.ConnCase - - alias Pleroma.Conversation.Participation - alias Pleroma.Notification - alias Pleroma.Object - alias Pleroma.Repo - alias Pleroma.Tests.ObanHelpers - alias Pleroma.User - alias Pleroma.Web.CommonAPI - - import Pleroma.Factory - - test "PUT /api/v1/pleroma/statuses/:id/reactions/:emoji", %{conn: conn} do - user = insert(:user) - other_user = insert(:user) - - {:ok, activity} = CommonAPI.post(user, %{status: "#cofe"}) - - result = - conn - |> assign(:user, other_user) - |> assign(:token, insert(:oauth_token, user: other_user, scopes: ["write:statuses"])) - |> put("/api/v1/pleroma/statuses/#{activity.id}/reactions/☕") - |> json_response(200) - - # We return the status, but this our implementation detail. - assert %{"id" => id} = result - assert to_string(activity.id) == id - - assert result["pleroma"]["emoji_reactions"] == [ - %{"name" => "☕", "count" => 1, "me" => true} - ] - end - - test "DELETE /api/v1/pleroma/statuses/:id/reactions/:emoji", %{conn: conn} do - user = insert(:user) - other_user = insert(:user) - - {:ok, activity} = CommonAPI.post(user, %{status: "#cofe"}) - {:ok, _reaction_activity} = CommonAPI.react_with_emoji(activity.id, other_user, "☕") - - ObanHelpers.perform_all() - - result = - conn - |> assign(:user, other_user) - |> assign(:token, insert(:oauth_token, user: other_user, scopes: ["write:statuses"])) - |> delete("/api/v1/pleroma/statuses/#{activity.id}/reactions/☕") - - assert %{"id" => id} = json_response(result, 200) - assert to_string(activity.id) == id - - ObanHelpers.perform_all() - - object = Object.get_by_ap_id(activity.data["object"]) - - assert object.data["reaction_count"] == 0 - end - - test "GET /api/v1/pleroma/statuses/:id/reactions", %{conn: conn} do - user = insert(:user) - other_user = insert(:user) - doomed_user = insert(:user) - - {:ok, activity} = CommonAPI.post(user, %{status: "#cofe"}) - - result = - conn - |> get("/api/v1/pleroma/statuses/#{activity.id}/reactions") - |> json_response(200) - - assert result == [] - - {:ok, _} = CommonAPI.react_with_emoji(activity.id, other_user, "🎅") - {:ok, _} = CommonAPI.react_with_emoji(activity.id, doomed_user, "🎅") - - User.perform(:delete, doomed_user) - - result = - conn - |> get("/api/v1/pleroma/statuses/#{activity.id}/reactions") - |> json_response(200) - - [%{"name" => "🎅", "count" => 1, "accounts" => [represented_user], "me" => false}] = result - - assert represented_user["id"] == other_user.id - - result = - conn - |> assign(:user, other_user) - |> assign(:token, insert(:oauth_token, user: other_user, scopes: ["read:statuses"])) - |> get("/api/v1/pleroma/statuses/#{activity.id}/reactions") - |> json_response(200) - - assert [%{"name" => "🎅", "count" => 1, "accounts" => [_represented_user], "me" => true}] = - result - end - - test "GET /api/v1/pleroma/statuses/:id/reactions/:emoji", %{conn: conn} do - user = insert(:user) - other_user = insert(:user) - - {:ok, activity} = CommonAPI.post(user, %{status: "#cofe"}) - - result = - conn - |> get("/api/v1/pleroma/statuses/#{activity.id}/reactions/🎅") - |> json_response(200) - - assert result == [] - - {:ok, _} = CommonAPI.react_with_emoji(activity.id, other_user, "🎅") - {:ok, _} = CommonAPI.react_with_emoji(activity.id, other_user, "☕") - - result = - conn - |> get("/api/v1/pleroma/statuses/#{activity.id}/reactions/🎅") - |> json_response(200) - - [%{"name" => "🎅", "count" => 1, "accounts" => [represented_user], "me" => false}] = result - - assert represented_user["id"] == other_user.id - end - - test "/api/v1/pleroma/conversations/:id" do - user = insert(:user) - %{user: other_user, conn: conn} = oauth_access(["read:statuses"]) - - {:ok, _activity} = - CommonAPI.post(user, %{status: "Hi @#{other_user.nickname}!", visibility: "direct"}) - - [participation] = Participation.for_user(other_user) - - result = - conn - |> get("/api/v1/pleroma/conversations/#{participation.id}") - |> json_response(200) - - assert result["id"] == participation.id |> to_string() - end - - test "/api/v1/pleroma/conversations/:id/statuses" do - user = insert(:user) - %{user: other_user, conn: conn} = oauth_access(["read:statuses"]) - third_user = insert(:user) - - {:ok, _activity} = - CommonAPI.post(user, %{status: "Hi @#{third_user.nickname}!", visibility: "direct"}) - - {:ok, activity} = - CommonAPI.post(user, %{status: "Hi @#{other_user.nickname}!", visibility: "direct"}) - - [participation] = Participation.for_user(other_user) - - {:ok, activity_two} = - CommonAPI.post(other_user, %{ - status: "Hi!", - in_reply_to_status_id: activity.id, - in_reply_to_conversation_id: participation.id - }) - - result = - conn - |> get("/api/v1/pleroma/conversations/#{participation.id}/statuses") - |> json_response(200) - - assert length(result) == 2 - - id_one = activity.id - id_two = activity_two.id - assert [%{"id" => ^id_one}, %{"id" => ^id_two}] = result - - {:ok, %{id: id_three}} = - CommonAPI.post(other_user, %{ - status: "Bye!", - in_reply_to_status_id: activity.id, - in_reply_to_conversation_id: participation.id - }) - - assert [%{"id" => ^id_two}, %{"id" => ^id_three}] = - conn - |> get("/api/v1/pleroma/conversations/#{participation.id}/statuses?limit=2") - |> json_response(:ok) - - assert [%{"id" => ^id_three}] = - conn - |> get("/api/v1/pleroma/conversations/#{participation.id}/statuses?min_id=#{id_two}") - |> json_response(:ok) - end - - test "PATCH /api/v1/pleroma/conversations/:id" do - %{user: user, conn: conn} = oauth_access(["write:conversations"]) - other_user = insert(:user) - - {:ok, _activity} = CommonAPI.post(user, %{status: "Hi", visibility: "direct"}) - - [participation] = Participation.for_user(user) - - participation = Repo.preload(participation, :recipients) - - user = User.get_cached_by_id(user.id) - assert [user] == participation.recipients - assert other_user not in participation.recipients - - result = - conn - |> patch("/api/v1/pleroma/conversations/#{participation.id}", %{ - "recipients" => [user.id, other_user.id] - }) - |> json_response(200) - - assert result["id"] == participation.id |> to_string - - [participation] = Participation.for_user(user) - participation = Repo.preload(participation, :recipients) - - assert user in participation.recipients - assert other_user in participation.recipients - end - - test "POST /api/v1/pleroma/conversations/read" do - user = insert(:user) - %{user: other_user, conn: conn} = oauth_access(["write:conversations"]) - - {:ok, _activity} = - CommonAPI.post(user, %{status: "Hi @#{other_user.nickname}", visibility: "direct"}) - - {:ok, _activity} = - CommonAPI.post(user, %{status: "Hi @#{other_user.nickname}", visibility: "direct"}) - - [participation2, participation1] = Participation.for_user(other_user) - assert Participation.get(participation2.id).read == false - assert Participation.get(participation1.id).read == false - assert User.get_cached_by_id(other_user.id).unread_conversation_count == 2 - - [%{"unread" => false}, %{"unread" => false}] = - conn - |> post("/api/v1/pleroma/conversations/read", %{}) - |> json_response(200) - - [participation2, participation1] = Participation.for_user(other_user) - assert Participation.get(participation2.id).read == true - assert Participation.get(participation1.id).read == true - assert User.get_cached_by_id(other_user.id).unread_conversation_count == 0 - end - - describe "POST /api/v1/pleroma/notifications/read" do - setup do: oauth_access(["write:notifications"]) - - test "it marks a single notification as read", %{user: user1, conn: conn} do - user2 = insert(:user) - {:ok, activity1} = CommonAPI.post(user2, %{status: "hi @#{user1.nickname}"}) - {:ok, activity2} = CommonAPI.post(user2, %{status: "hi @#{user1.nickname}"}) - {:ok, [notification1]} = Notification.create_notifications(activity1) - {:ok, [notification2]} = Notification.create_notifications(activity2) - - response = - conn - |> post("/api/v1/pleroma/notifications/read", %{"id" => "#{notification1.id}"}) - |> json_response(:ok) - - assert %{"pleroma" => %{"is_seen" => true}} = response - assert Repo.get(Notification, notification1.id).seen - refute Repo.get(Notification, notification2.id).seen - end - - test "it marks multiple notifications as read", %{user: user1, conn: conn} do - user2 = insert(:user) - {:ok, _activity1} = CommonAPI.post(user2, %{status: "hi @#{user1.nickname}"}) - {:ok, _activity2} = CommonAPI.post(user2, %{status: "hi @#{user1.nickname}"}) - {:ok, _activity3} = CommonAPI.post(user2, %{status: "HIE @#{user1.nickname}"}) - - [notification3, notification2, notification1] = Notification.for_user(user1, %{limit: 3}) - - [response1, response2] = - conn - |> post("/api/v1/pleroma/notifications/read", %{"max_id" => "#{notification2.id}"}) - |> json_response(:ok) - - assert %{"pleroma" => %{"is_seen" => true}} = response1 - assert %{"pleroma" => %{"is_seen" => true}} = response2 - assert Repo.get(Notification, notification1.id).seen - assert Repo.get(Notification, notification2.id).seen - refute Repo.get(Notification, notification3.id).seen - end - - test "it returns error when notification not found", %{conn: conn} do - response = - conn - |> post("/api/v1/pleroma/notifications/read", %{"id" => "22222222222222"}) - |> json_response(:bad_request) - - assert response == %{"error" => "Cannot get notification"} - end - end -end diff --git a/test/web/pleroma_api/controllers/scrobble_controller_test.exs b/test/web/pleroma_api/controllers/scrobble_controller_test.exs index 1b945040c..f39c07ac6 100644 --- a/test/web/pleroma_api/controllers/scrobble_controller_test.exs +++ b/test/web/pleroma_api/controllers/scrobble_controller_test.exs @@ -12,14 +12,16 @@ test "works correctly" do %{conn: conn} = oauth_access(["write"]) conn = - post(conn, "/api/v1/pleroma/scrobble", %{ + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/pleroma/scrobble", %{ "title" => "lain radio episode 1", "artist" => "lain", "album" => "lain radio", "length" => "180000" }) - assert %{"title" => "lain radio episode 1"} = json_response(conn, 200) + assert %{"title" => "lain radio episode 1"} = json_response_and_validate_schema(conn, 200) end end @@ -29,28 +31,28 @@ test "works correctly" do {:ok, _activity} = CommonAPI.listen(user, %{ - "title" => "lain radio episode 1", - "artist" => "lain", - "album" => "lain radio" + title: "lain radio episode 1", + artist: "lain", + album: "lain radio" }) {:ok, _activity} = CommonAPI.listen(user, %{ - "title" => "lain radio episode 2", - "artist" => "lain", - "album" => "lain radio" + title: "lain radio episode 2", + artist: "lain", + album: "lain radio" }) {:ok, _activity} = CommonAPI.listen(user, %{ - "title" => "lain radio episode 3", - "artist" => "lain", - "album" => "lain radio" + title: "lain radio episode 3", + artist: "lain", + album: "lain radio" }) conn = get(conn, "/api/v1/pleroma/accounts/#{user.id}/scrobbles") - result = json_response(conn, 200) + result = json_response_and_validate_schema(conn, 200) assert length(result) == 3 end diff --git a/test/web/pleroma_api/views/chat/message_reference_view_test.exs b/test/web/pleroma_api/views/chat/message_reference_view_test.exs new file mode 100644 index 000000000..e5b165255 --- /dev/null +++ b/test/web/pleroma_api/views/chat/message_reference_view_test.exs @@ -0,0 +1,61 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.Chat.MessageReferenceViewTest do + use Pleroma.DataCase + + alias Pleroma.Chat + alias Pleroma.Chat.MessageReference + alias Pleroma.Object + alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.CommonAPI + alias Pleroma.Web.PleromaAPI.Chat.MessageReferenceView + + import Pleroma.Factory + + test "it displays a chat message" do + user = insert(:user) + recipient = insert(:user) + + file = %Plug.Upload{ + content_type: "image/jpg", + path: Path.absname("test/fixtures/image.jpg"), + filename: "an_image.jpg" + } + + {:ok, upload} = ActivityPub.upload(file, actor: user.ap_id) + {:ok, activity} = CommonAPI.post_chat_message(user, recipient, "kippis :firefox:") + + chat = Chat.get(user.id, recipient.ap_id) + + object = Object.normalize(activity) + + cm_ref = MessageReference.for_chat_and_object(chat, object) + + chat_message = MessageReferenceView.render("show.json", chat_message_reference: cm_ref) + + assert chat_message[:id] == cm_ref.id + assert chat_message[:content] == "kippis :firefox:" + assert chat_message[:account_id] == user.id + assert chat_message[:chat_id] + assert chat_message[:created_at] + assert chat_message[:unread] == false + assert match?([%{shortcode: "firefox"}], chat_message[:emojis]) + + {:ok, activity} = CommonAPI.post_chat_message(recipient, user, "gkgkgk", media_id: upload.id) + + object = Object.normalize(activity) + + cm_ref = MessageReference.for_chat_and_object(chat, object) + + chat_message_two = MessageReferenceView.render("show.json", chat_message_reference: cm_ref) + + assert chat_message_two[:id] == cm_ref.id + assert chat_message_two[:content] == "gkgkgk" + assert chat_message_two[:account_id] == recipient.id + assert chat_message_two[:chat_id] == chat_message[:chat_id] + assert chat_message_two[:attachment] + assert chat_message_two[:unread] == true + end +end diff --git a/test/web/pleroma_api/views/chat_view_test.exs b/test/web/pleroma_api/views/chat_view_test.exs new file mode 100644 index 000000000..14eecb1bd --- /dev/null +++ b/test/web/pleroma_api/views/chat_view_test.exs @@ -0,0 +1,48 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.ChatViewTest do + use Pleroma.DataCase + + alias Pleroma.Chat + alias Pleroma.Chat.MessageReference + alias Pleroma.Object + alias Pleroma.Web.CommonAPI + alias Pleroma.Web.CommonAPI.Utils + alias Pleroma.Web.MastodonAPI.AccountView + alias Pleroma.Web.PleromaAPI.Chat.MessageReferenceView + alias Pleroma.Web.PleromaAPI.ChatView + + import Pleroma.Factory + + test "it represents a chat" do + user = insert(:user) + recipient = insert(:user) + + {:ok, chat} = Chat.get_or_create(user.id, recipient.ap_id) + + represented_chat = ChatView.render("show.json", chat: chat) + + assert represented_chat == %{ + id: "#{chat.id}", + account: AccountView.render("show.json", user: recipient), + unread: 0, + last_message: nil, + updated_at: Utils.to_masto_date(chat.updated_at) + } + + {:ok, chat_message_creation} = CommonAPI.post_chat_message(user, recipient, "hello") + + chat_message = Object.normalize(chat_message_creation, false) + + {:ok, chat} = Chat.get_or_create(user.id, recipient.ap_id) + + represented_chat = ChatView.render("show.json", chat: chat) + + cm_ref = MessageReference.for_chat_and_object(chat, chat_message) + + assert represented_chat[:last_message] == + MessageReferenceView.render("show.json", chat_message_reference: cm_ref) + end +end diff --git a/test/web/pleroma_api/views/scrobble_view_test.exs b/test/web/pleroma_api/views/scrobble_view_test.exs new file mode 100644 index 000000000..6bdb56509 --- /dev/null +++ b/test/web/pleroma_api/views/scrobble_view_test.exs @@ -0,0 +1,20 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.StatusViewTest do + use Pleroma.DataCase + + alias Pleroma.Web.PleromaAPI.ScrobbleView + + import Pleroma.Factory + + test "successfully renders a Listen activity (pleroma extension)" do + listen_activity = insert(:listen) + + status = ScrobbleView.render("show.json", activity: listen_activity) + + assert status.length == listen_activity.data["object"]["length"] + assert status.title == listen_activity.data["object"]["title"] + end +end diff --git a/test/web/preload/instance_test.exs b/test/web/preload/instance_test.exs new file mode 100644 index 000000000..42a0d87bc --- /dev/null +++ b/test/web/preload/instance_test.exs @@ -0,0 +1,37 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Preload.Providers.InstanceTest do + use Pleroma.DataCase + alias Pleroma.Web.Preload.Providers.Instance + + setup do: {:ok, Instance.generate_terms(nil)} + + test "it renders the info", %{"/api/v1/instance": info} do + assert %{ + description: description, + email: "admin@example.com", + registrations: true + } = info + + assert String.equivalent?(description, "Pleroma: An efficient and flexible fediverse server") + end + + test "it renders the panel", %{"/instance/panel.html": panel} do + assert String.contains?( + panel, + "

Welcome to Pleroma!

" + ) + end + + test "it renders the node_info", %{"/nodeinfo/2.0": nodeinfo} do + %{ + metadata: metadata, + version: "2.0" + } = nodeinfo + + assert metadata.private == false + assert metadata.suggestions == %{enabled: false} + end +end diff --git a/test/web/preload/status_net_test.exs b/test/web/preload/status_net_test.exs new file mode 100644 index 000000000..ab6823a7e --- /dev/null +++ b/test/web/preload/status_net_test.exs @@ -0,0 +1,14 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Preload.Providers.StatusNetTest do + use Pleroma.DataCase + alias Pleroma.Web.Preload.Providers.StatusNet + + setup do: {:ok, StatusNet.generate_terms(nil)} + + test "it renders the info", %{"/api/statusnet/config.json": info} do + assert info =~ "Pleroma" + end +end diff --git a/test/web/preload/timeline_test.exs b/test/web/preload/timeline_test.exs new file mode 100644 index 000000000..da6a3aded --- /dev/null +++ b/test/web/preload/timeline_test.exs @@ -0,0 +1,74 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Preload.Providers.TimelineTest do + use Pleroma.DataCase + import Pleroma.Factory + + alias Pleroma.Web.CommonAPI + alias Pleroma.Web.Preload.Providers.Timelines + + @public_url :"/api/v1/timelines/public" + + describe "unauthenticated timeliness when restricted" do + setup do + svd_config = Pleroma.Config.get([:restrict_unauthenticated, :timelines]) + Pleroma.Config.put([:restrict_unauthenticated, :timelines], %{local: true, federated: true}) + + on_exit(fn -> + Pleroma.Config.put([:restrict_unauthenticated, :timelines], svd_config) + end) + + :ok + end + + test "return nothing" do + tl_data = Timelines.generate_terms(%{}) + + refute Map.has_key?(tl_data, "/api/v1/timelines/public") + end + end + + describe "unauthenticated timeliness when unrestricted" do + setup do + svd_config = Pleroma.Config.get([:restrict_unauthenticated, :timelines]) + + Pleroma.Config.put([:restrict_unauthenticated, :timelines], %{ + local: false, + federated: false + }) + + on_exit(fn -> + Pleroma.Config.put([:restrict_unauthenticated, :timelines], svd_config) + end) + + {:ok, user: insert(:user)} + end + + test "returns the timeline when not restricted" do + assert Timelines.generate_terms(%{}) + |> Map.has_key?(@public_url) + end + + test "returns public items", %{user: user} do + {:ok, _} = CommonAPI.post(user, %{status: "it's post 1!"}) + {:ok, _} = CommonAPI.post(user, %{status: "it's post 2!"}) + {:ok, _} = CommonAPI.post(user, %{status: "it's post 3!"}) + + assert Timelines.generate_terms(%{}) + |> Map.fetch!(@public_url) + |> Enum.count() == 3 + end + + test "does not return non-public items", %{user: user} do + {:ok, _} = CommonAPI.post(user, %{status: "it's post 1!", visibility: "unlisted"}) + {:ok, _} = CommonAPI.post(user, %{status: "it's post 2!", visibility: "direct"}) + {:ok, _} = CommonAPI.post(user, %{status: "it's post 3!"}) + + assert Timelines.generate_terms(%{}) + |> Map.fetch!(@public_url) + |> Enum.count() == 1 + end + end +end diff --git a/test/web/preload/user_test.exs b/test/web/preload/user_test.exs new file mode 100644 index 000000000..99232cdfa --- /dev/null +++ b/test/web/preload/user_test.exs @@ -0,0 +1,33 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Preload.Providers.UserTest do + use Pleroma.DataCase + import Pleroma.Factory + alias Pleroma.Web.Preload.Providers.User + + describe "returns empty when user doesn't exist" do + test "nil user specified" do + refute User.generate_terms(%{user: nil}) + |> Map.has_key?("/api/v1/accounts") + end + + test "missing user specified" do + refute User.generate_terms(%{user: :not_a_user}) + |> Map.has_key?("/api/v1/accounts") + end + end + + describe "specified user exists" do + setup do + user = insert(:user) + + {:ok, User.generate_terms(%{user: user})} + end + + test "account is rendered", %{"/api/v1/accounts": accounts} do + assert %{acct: user, username: user} = accounts + end + end +end diff --git a/test/web/push/impl_test.exs b/test/web/push/impl_test.exs index 2acd0939f..b48952b29 100644 --- a/test/web/push/impl_test.exs +++ b/test/web/push/impl_test.exs @@ -5,8 +5,10 @@ defmodule Pleroma.Web.Push.ImplTest do use Pleroma.DataCase + alias Pleroma.Notification alias Pleroma.Object alias Pleroma.User + alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.CommonAPI alias Pleroma.Web.Push.Impl alias Pleroma.Web.Push.Subscription @@ -60,7 +62,8 @@ test "performs sending notifications" do notif = insert(:notification, user: user, - activity: activity + activity: activity, + type: "mention" ) assert Impl.perform(notif) == {:ok, [:ok, :ok]} @@ -126,7 +129,7 @@ test "renders title and body for create activity" do ) == "@Bob: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sagittis fini..." - assert Impl.format_title(%{activity: activity}) == + assert Impl.format_title(%{activity: activity, type: "mention"}) == "New Mention" end @@ -136,9 +139,10 @@ test "renders title and body for follow activity" do {:ok, _, _, activity} = CommonAPI.follow(user, other_user) object = Object.normalize(activity, false) - assert Impl.format_body(%{activity: activity}, user, object) == "@Bob has followed you" + assert Impl.format_body(%{activity: activity, type: "follow"}, user, object) == + "@Bob has followed you" - assert Impl.format_title(%{activity: activity}) == + assert Impl.format_title(%{activity: activity, type: "follow"}) == "New Follower" end @@ -151,13 +155,13 @@ test "renders title and body for announce activity" do "Lorem ipsum dolor sit amet, consectetur :firefox: adipiscing elit. Fusce sagittis finibus turpis." }) - {:ok, announce_activity, _} = CommonAPI.repeat(activity.id, user) + {:ok, announce_activity} = CommonAPI.repeat(activity.id, user) object = Object.normalize(activity) assert Impl.format_body(%{activity: announce_activity}, user, object) == "@#{user.nickname} repeated: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sagittis fini..." - assert Impl.format_title(%{activity: announce_activity}) == + assert Impl.format_title(%{activity: announce_activity, type: "reblog"}) == "New Repeat" end @@ -173,9 +177,10 @@ test "renders title and body for like activity" do {:ok, activity} = CommonAPI.favorite(user, activity.id) object = Object.normalize(activity) - assert Impl.format_body(%{activity: activity}, user, object) == "@Bob has favorited your post" + assert Impl.format_body(%{activity: activity, type: "favourite"}, user, object) == + "@Bob has favorited your post" - assert Impl.format_title(%{activity: activity}) == + assert Impl.format_title(%{activity: activity, type: "favourite"}) == "New Favorite" end @@ -193,6 +198,46 @@ test "renders title for create activity with direct visibility" do end describe "build_content/3" do + test "builds content for chat messages" do + user = insert(:user) + recipient = insert(:user) + + {:ok, chat} = CommonAPI.post_chat_message(user, recipient, "hey") + object = Object.normalize(chat, false) + [notification] = Notification.for_user(recipient) + + res = Impl.build_content(notification, user, object) + + assert res == %{ + body: "@#{user.nickname}: hey", + title: "New Chat Message" + } + end + + test "builds content for chat messages with no content" do + user = insert(:user) + recipient = insert(:user) + + file = %Plug.Upload{ + content_type: "image/jpg", + path: Path.absname("test/fixtures/image.jpg"), + filename: "an_image.jpg" + } + + {:ok, upload} = ActivityPub.upload(file, actor: user.ap_id) + + {:ok, chat} = CommonAPI.post_chat_message(user, recipient, nil, media_id: upload.id) + object = Object.normalize(chat, false) + [notification] = Notification.for_user(recipient) + + res = Impl.build_content(notification, user, object) + + assert res == %{ + body: "@#{user.nickname}: (Attachment)", + title: "New Chat Message" + } + end + test "hides details for notifications when privacy option enabled" do user = insert(:user, nickname: "Bob") user2 = insert(:user, nickname: "Rob", notification_settings: %{privacy_option: true}) @@ -218,7 +263,7 @@ test "hides details for notifications when privacy option enabled" do status: "Lorem ipsum dolor sit amet, consectetur :firefox: adipiscing elit. Fusce sagittis finibus turpis." }) - notif = insert(:notification, user: user2, activity: activity) + notif = insert(:notification, user: user2, activity: activity, type: "mention") actor = User.get_cached_by_ap_id(notif.activity.data["actor"]) object = Object.normalize(activity) @@ -281,7 +326,7 @@ test "returns regular content for notifications with privacy option disabled" do {:ok, activity} = CommonAPI.favorite(user, activity.id) - notif = insert(:notification, user: user2, activity: activity) + notif = insert(:notification, user: user2, activity: activity, type: "favourite") actor = User.get_cached_by_ap_id(notif.activity.data["actor"]) object = Object.normalize(activity) diff --git a/test/web/rich_media/parser_test.exs b/test/web/rich_media/parser_test.exs index e54a13bc8..420a612c6 100644 --- a/test/web/rich_media/parser_test.exs +++ b/test/web/rich_media/parser_test.exs @@ -60,19 +60,19 @@ test "returns error when no metadata present" do test "doesn't just add a title" do assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/non-ogp") == {:error, - "Found metadata was invalid or incomplete: %{url: \"http://example.com/non-ogp\"}"} + "Found metadata was invalid or incomplete: %{\"url\" => \"http://example.com/non-ogp\"}"} end test "parses ogp" do assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/ogp") == {:ok, %{ - image: "http://ia.media-imdb.com/images/rock.jpg", - title: "The Rock", - description: + "image" => "http://ia.media-imdb.com/images/rock.jpg", + "title" => "The Rock", + "description" => "Directed by Michael Bay. With Sean Connery, Nicolas Cage, Ed Harris, John Spencer.", - type: "video.movie", - url: "http://example.com/ogp" + "type" => "video.movie", + "url" => "http://example.com/ogp" }} end @@ -80,12 +80,12 @@ test "falls back to when ogp:title is missing" do assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/ogp-missing-title") == {:ok, %{ - image: "http://ia.media-imdb.com/images/rock.jpg", - title: "The Rock (1996)", - description: + "image" => "http://ia.media-imdb.com/images/rock.jpg", + "title" => "The Rock (1996)", + "description" => "Directed by Michael Bay. With Sean Connery, Nicolas Cage, Ed Harris, John Spencer.", - type: "video.movie", - url: "http://example.com/ogp-missing-title" + "type" => "video.movie", + "url" => "http://example.com/ogp-missing-title" }} end @@ -93,12 +93,12 @@ test "parses twitter card" do assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/twitter-card") == {:ok, %{ - card: "summary", - site: "@flickr", - image: "https://farm6.staticflickr.com/5510/14338202952_93595258ff_z.jpg", - title: "Small Island Developing States Photo Submission", - description: "View the album on Flickr.", - url: "http://example.com/twitter-card" + "card" => "summary", + "site" => "@flickr", + "image" => "https://farm6.staticflickr.com/5510/14338202952_93595258ff_z.jpg", + "title" => "Small Island Developing States Photo Submission", + "description" => "View the album on Flickr.", + "url" => "http://example.com/twitter-card" }} end @@ -106,27 +106,28 @@ test "parses OEmbed" do assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/oembed") == {:ok, %{ - author_name: "‮‭‬bees‬", - author_url: "https://www.flickr.com/photos/bees/", - cache_age: 3600, - flickr_type: "photo", - height: "768", - html: + "author_name" => "‮‭‬bees‬", + "author_url" => "https://www.flickr.com/photos/bees/", + "cache_age" => 3600, + "flickr_type" => "photo", + "height" => "768", + "html" => "<a data-flickr-embed=\"true\" href=\"https://www.flickr.com/photos/bees/2362225867/\" title=\"Bacon Lollys by ‮‭‬bees‬, on Flickr\"><img src=\"https://farm4.staticflickr.com/3040/2362225867_4a87ab8baf_b.jpg\" width=\"1024\" height=\"768\" alt=\"Bacon Lollys\"></a><script async src=\"https://embedr.flickr.com/assets/client-code.js\" charset=\"utf-8\"></script>", - license: "All Rights Reserved", - license_id: 0, - provider_name: "Flickr", - provider_url: "https://www.flickr.com/", - thumbnail_height: 150, - thumbnail_url: "https://farm4.staticflickr.com/3040/2362225867_4a87ab8baf_q.jpg", - thumbnail_width: 150, - title: "Bacon Lollys", - type: "photo", - url: "http://example.com/oembed", - version: "1.0", - web_page: "https://www.flickr.com/photos/bees/2362225867/", - web_page_short_url: "https://flic.kr/p/4AK2sc", - width: "1024" + "license" => "All Rights Reserved", + "license_id" => 0, + "provider_name" => "Flickr", + "provider_url" => "https://www.flickr.com/", + "thumbnail_height" => 150, + "thumbnail_url" => + "https://farm4.staticflickr.com/3040/2362225867_4a87ab8baf_q.jpg", + "thumbnail_width" => 150, + "title" => "Bacon Lollys", + "type" => "photo", + "url" => "http://example.com/oembed", + "version" => "1.0", + "web_page" => "https://www.flickr.com/photos/bees/2362225867/", + "web_page_short_url" => "https://flic.kr/p/4AK2sc", + "width" => "1024" }} end diff --git a/test/web/rich_media/parsers/twitter_card_test.exs b/test/web/rich_media/parsers/twitter_card_test.exs index 87c767c15..219f005a2 100644 --- a/test/web/rich_media/parsers/twitter_card_test.exs +++ b/test/web/rich_media/parsers/twitter_card_test.exs @@ -7,8 +7,7 @@ defmodule Pleroma.Web.RichMedia.Parsers.TwitterCardTest do alias Pleroma.Web.RichMedia.Parsers.TwitterCard test "returns error when html not contains twitter card" do - assert TwitterCard.parse([{"html", [], [{"head", [], []}, {"body", [], []}]}], %{}) == - {:error, "No twitter card metadata found"} + assert TwitterCard.parse([{"html", [], [{"head", [], []}, {"body", [], []}]}], %{}) == %{} end test "parses twitter card with only name attributes" do @@ -17,15 +16,21 @@ test "parses twitter card with only name attributes" do |> Floki.parse_document!() assert TwitterCard.parse(html, %{}) == - {:ok, - %{ - "app:id:googleplay": "com.nytimes.android", - "app:name:googleplay": "NYTimes", - "app:url:googleplay": "nytimes://reader/id/100000006583622", - site: nil, - title: - "She Was Arrested at 14. Then Her Photo Went to a Facial Recognition Database. - The New York Times" - }} + %{ + "app:id:googleplay" => "com.nytimes.android", + "app:name:googleplay" => "NYTimes", + "app:url:googleplay" => "nytimes://reader/id/100000006583622", + "site" => nil, + "description" => + "With little oversight, the N.Y.P.D. has been using powerful surveillance technology on photos of children and teenagers.", + "image" => + "https://static01.nyt.com/images/2019/08/01/nyregion/01nypd-juveniles-promo/01nypd-juveniles-promo-facebookJumbo.jpg", + "type" => "article", + "url" => + "https://www.nytimes.com/2019/08/01/nyregion/nypd-facial-recognition-children-teenagers.html", + "title" => + "She Was Arrested at 14. Then Her Photo Went to a Facial Recognition Database." + } end test "parses twitter card with only property attributes" do @@ -34,19 +39,19 @@ test "parses twitter card with only property attributes" do |> Floki.parse_document!() assert TwitterCard.parse(html, %{}) == - {:ok, - %{ - card: "summary_large_image", - description: - "With little oversight, the N.Y.P.D. has been using powerful surveillance technology on photos of children and teenagers.", - image: - "https://static01.nyt.com/images/2019/08/01/nyregion/01nypd-juveniles-promo/01nypd-juveniles-promo-videoSixteenByNineJumbo1600.jpg", - "image:alt": "", - title: - "She Was Arrested at 14. Then Her Photo Went to a Facial Recognition Database.", - url: - "https://www.nytimes.com/2019/08/01/nyregion/nypd-facial-recognition-children-teenagers.html" - }} + %{ + "card" => "summary_large_image", + "description" => + "With little oversight, the N.Y.P.D. has been using powerful surveillance technology on photos of children and teenagers.", + "image" => + "https://static01.nyt.com/images/2019/08/01/nyregion/01nypd-juveniles-promo/01nypd-juveniles-promo-videoSixteenByNineJumbo1600.jpg", + "image:alt" => "", + "title" => + "She Was Arrested at 14. Then Her Photo Went to a Facial Recognition Database.", + "url" => + "https://www.nytimes.com/2019/08/01/nyregion/nypd-facial-recognition-children-teenagers.html", + "type" => "article" + } end test "parses twitter card with name & property attributes" do @@ -55,23 +60,23 @@ test "parses twitter card with name & property attributes" do |> Floki.parse_document!() assert TwitterCard.parse(html, %{}) == - {:ok, - %{ - "app:id:googleplay": "com.nytimes.android", - "app:name:googleplay": "NYTimes", - "app:url:googleplay": "nytimes://reader/id/100000006583622", - card: "summary_large_image", - description: - "With little oversight, the N.Y.P.D. has been using powerful surveillance technology on photos of children and teenagers.", - image: - "https://static01.nyt.com/images/2019/08/01/nyregion/01nypd-juveniles-promo/01nypd-juveniles-promo-videoSixteenByNineJumbo1600.jpg", - "image:alt": "", - site: nil, - title: - "She Was Arrested at 14. Then Her Photo Went to a Facial Recognition Database.", - url: - "https://www.nytimes.com/2019/08/01/nyregion/nypd-facial-recognition-children-teenagers.html" - }} + %{ + "app:id:googleplay" => "com.nytimes.android", + "app:name:googleplay" => "NYTimes", + "app:url:googleplay" => "nytimes://reader/id/100000006583622", + "card" => "summary_large_image", + "description" => + "With little oversight, the N.Y.P.D. has been using powerful surveillance technology on photos of children and teenagers.", + "image" => + "https://static01.nyt.com/images/2019/08/01/nyregion/01nypd-juveniles-promo/01nypd-juveniles-promo-videoSixteenByNineJumbo1600.jpg", + "image:alt" => "", + "site" => nil, + "title" => + "She Was Arrested at 14. Then Her Photo Went to a Facial Recognition Database.", + "url" => + "https://www.nytimes.com/2019/08/01/nyregion/nypd-facial-recognition-children-teenagers.html", + "type" => "article" + } end test "respect only first title tag on the page" do @@ -84,14 +89,17 @@ test "respect only first title tag on the page" do File.read!("test/fixtures/margaret-corbin-grave-west-point.html") |> Floki.parse_document!() assert TwitterCard.parse(html, %{}) == - {:ok, - %{ - site: "@atlasobscura", - title: - "The Missing Grave of Margaret Corbin, Revolutionary War Veteran - Atlas Obscura", - card: "summary_large_image", - image: image_path - }} + %{ + "site" => "@atlasobscura", + "title" => "The Missing Grave of Margaret Corbin, Revolutionary War Veteran", + "card" => "summary_large_image", + "image" => image_path, + "description" => + "She's the only woman veteran honored with a monument at West Point. But where was she buried?", + "site_name" => "Atlas Obscura", + "type" => "article", + "url" => "http://www.atlasobscura.com/articles/margaret-corbin-grave-west-point" + } end test "takes first founded title in html head if there is html markup error" do @@ -100,14 +108,20 @@ test "takes first founded title in html head if there is html markup error" do |> Floki.parse_document!() assert TwitterCard.parse(html, %{}) == - {:ok, - %{ - site: nil, - title: - "She Was Arrested at 14. Then Her Photo Went to a Facial Recognition Database. - The New York Times", - "app:id:googleplay": "com.nytimes.android", - "app:name:googleplay": "NYTimes", - "app:url:googleplay": "nytimes://reader/id/100000006583622" - }} + %{ + "site" => nil, + "title" => + "She Was Arrested at 14. Then Her Photo Went to a Facial Recognition Database.", + "app:id:googleplay" => "com.nytimes.android", + "app:name:googleplay" => "NYTimes", + "app:url:googleplay" => "nytimes://reader/id/100000006583622", + "description" => + "With little oversight, the N.Y.P.D. has been using powerful surveillance technology on photos of children and teenagers.", + "image" => + "https://static01.nyt.com/images/2019/08/01/nyregion/01nypd-juveniles-promo/01nypd-juveniles-promo-facebookJumbo.jpg", + "type" => "article", + "url" => + "https://www.nytimes.com/2019/08/01/nyregion/nypd-facial-recognition-children-teenagers.html" + } end end diff --git a/test/web/streamer/streamer_test.exs b/test/web/streamer/streamer_test.exs index 95b7d1420..245f6e63f 100644 --- a/test/web/streamer/streamer_test.exs +++ b/test/web/streamer/streamer_test.exs @@ -7,11 +7,15 @@ defmodule Pleroma.Web.StreamerTest do import Pleroma.Factory + alias Pleroma.Chat + alias Pleroma.Chat.MessageReference alias Pleroma.Conversation.Participation alias Pleroma.List + alias Pleroma.Object alias Pleroma.User alias Pleroma.Web.CommonAPI alias Pleroma.Web.Streamer + alias Pleroma.Web.StreamerView @moduletag needs_streamer: true, capture_log: true @@ -106,7 +110,26 @@ test "it streams boosts of the user in the 'user' stream", %{user: user} do other_user = insert(:user) {:ok, activity} = CommonAPI.post(other_user, %{status: "hey"}) - {:ok, announce, _} = CommonAPI.repeat(activity.id, user) + {:ok, announce} = CommonAPI.repeat(activity.id, user) + + assert_receive {:render_with_user, Pleroma.Web.StreamerView, "update.json", ^announce} + refute Streamer.filtered_by_user?(user, announce) + end + + test "it streams boosts of mastodon user in the 'user' stream", %{user: user} do + Streamer.get_topic_and_add_socket("user", user) + + other_user = insert(:user) + {:ok, activity} = CommonAPI.post(other_user, %{status: "hey"}) + + data = + File.read!("test/fixtures/mastodon-announce.json") + |> Poison.decode!() + |> Map.put("object", activity.data["object"]) + |> Map.put("actor", user.ap_id) + + {:ok, %Pleroma.Activity{data: _data, local: false} = announce} = + Pleroma.Web.ActivityPub.Transmogrifier.handle_incoming(data) assert_receive {:render_with_user, Pleroma.Web.StreamerView, "update.json", ^announce} refute Streamer.filtered_by_user?(user, announce) @@ -126,6 +149,57 @@ test "it sends notify to in the 'user:notification' stream", %{user: user, notif refute Streamer.filtered_by_user?(user, notify) end + test "it sends chat messages to the 'user:pleroma_chat' stream", %{user: user} do + other_user = insert(:user) + + {:ok, create_activity} = CommonAPI.post_chat_message(other_user, user, "hey cirno") + object = Object.normalize(create_activity, false) + chat = Chat.get(user.id, other_user.ap_id) + cm_ref = MessageReference.for_chat_and_object(chat, object) + cm_ref = %{cm_ref | chat: chat, object: object} + + Streamer.get_topic_and_add_socket("user:pleroma_chat", user) + Streamer.stream("user:pleroma_chat", {user, cm_ref}) + + text = StreamerView.render("chat_update.json", %{chat_message_reference: cm_ref}) + + assert text =~ "hey cirno" + assert_receive {:text, ^text} + end + + test "it sends chat messages to the 'user' stream", %{user: user} do + other_user = insert(:user) + + {:ok, create_activity} = CommonAPI.post_chat_message(other_user, user, "hey cirno") + object = Object.normalize(create_activity, false) + chat = Chat.get(user.id, other_user.ap_id) + cm_ref = MessageReference.for_chat_and_object(chat, object) + cm_ref = %{cm_ref | chat: chat, object: object} + + Streamer.get_topic_and_add_socket("user", user) + Streamer.stream("user", {user, cm_ref}) + + text = StreamerView.render("chat_update.json", %{chat_message_reference: cm_ref}) + + assert text =~ "hey cirno" + assert_receive {:text, ^text} + end + + test "it sends chat message notifications to the 'user:notification' stream", %{user: user} do + other_user = insert(:user) + + {:ok, create_activity} = CommonAPI.post_chat_message(other_user, user, "hey") + + notify = + Repo.get_by(Pleroma.Notification, user_id: user.id, activity_id: create_activity.id) + |> Repo.preload(:activity) + + Streamer.get_topic_and_add_socket("user:notification", user) + Streamer.stream("user:notification", notify) + assert_receive {:render_with_user, _, _, ^notify} + refute Streamer.filtered_by_user?(user, notify) + end + test "it doesn't send notify to the 'user:notification' stream when a user is blocked", %{ user: user } do @@ -427,7 +501,7 @@ test "it filters muted reblogs" do {:ok, create_activity} = CommonAPI.post(user3, %{status: "I'm kawen"}) Streamer.get_topic_and_add_socket("user", user1) - {:ok, announce_activity, _} = CommonAPI.repeat(create_activity.id, user2) + {:ok, announce_activity} = CommonAPI.repeat(create_activity.id, user2) assert_receive {:render_with_user, _, _, ^announce_activity} assert Streamer.filtered_by_user?(user1, announce_activity) end @@ -440,7 +514,7 @@ test "it filters reblog notification for reblog-muted actors" do {:ok, create_activity} = CommonAPI.post(user1, %{status: "I'm kawen"}) Streamer.get_topic_and_add_socket("user", user1) - {:ok, _favorite_activity, _} = CommonAPI.repeat(create_activity.id, user2) + {:ok, _announce_activity} = CommonAPI.repeat(create_activity.id, user2) assert_receive {:render_with_user, _, "notification.json", notif} assert Streamer.filtered_by_user?(user1, notif) diff --git a/test/workers/cron/new_users_digest_worker_test.exs b/test/workers/cron/new_users_digest_worker_test.exs index 54cf0ca46..ee589bb55 100644 --- a/test/workers/cron/new_users_digest_worker_test.exs +++ b/test/workers/cron/new_users_digest_worker_test.exs @@ -28,6 +28,7 @@ test "it sends new users digest emails" do assert email.html_body =~ user.nickname assert email.html_body =~ user2.nickname assert email.html_body =~ "cofe" + assert email.html_body =~ "#{Pleroma.Web.Endpoint.url()}/static/logo.png" end test "it doesn't fail when admin has no email" do diff --git a/test/workers/cron/purge_expired_activities_worker_test.exs b/test/workers/cron/purge_expired_activities_worker_test.exs index 5864f9e5f..b1db59fdf 100644 --- a/test/workers/cron/purge_expired_activities_worker_test.exs +++ b/test/workers/cron/purge_expired_activities_worker_test.exs @@ -11,7 +11,9 @@ defmodule Pleroma.Workers.Cron.PurgeExpiredActivitiesWorkerTest do import Pleroma.Factory import ExUnit.CaptureLog - setup do: clear_config([ActivityExpiration, :enabled]) + setup do + clear_config([ActivityExpiration, :enabled]) + end test "deletes an expiration activity" do Pleroma.Config.put([ActivityExpiration, :enabled], true) @@ -36,6 +38,32 @@ test "deletes an expiration activity" do refute Pleroma.Repo.get(Pleroma.ActivityExpiration, expiration.id) end + test "works with ActivityExpirationPolicy" do + Pleroma.Config.put([ActivityExpiration, :enabled], true) + + clear_config([:mrf, :policies], Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy) + + user = insert(:user) + + days = Pleroma.Config.get([:mrf_activity_expiration, :days], 365) + + {:ok, %{id: id} = activity} = Pleroma.Web.CommonAPI.post(user, %{status: "cofe"}) + + past_date = + NaiveDateTime.utc_now() |> Timex.shift(days: -days) |> NaiveDateTime.truncate(:second) + + activity + |> Repo.preload(:expiration) + |> Map.get(:expiration) + |> Ecto.Changeset.change(%{scheduled_at: past_date}) + |> Repo.update!() + + Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker.perform(:ops, :pid) + + assert [%{data: %{"type" => "Delete", "deleted_activity_id" => ^id}}] = + Pleroma.Repo.all(Pleroma.Activity) + end + describe "delete_activity/1" do test "adds log message if activity isn't find" do assert capture_log([level: :error], fn ->